当前位置:   article > 正文

【UnityShader】渐变纹理_unityshader给物体颜色渐变

unityshader给物体颜色渐变

基础知识

  • 使用漫反射浮点值来映射到渐变图上的某一个颜色值,最终根据灯光计算后的方向来映射整个渐变纹理到物体表面。

  • 纹理其实可以用于存储任何表面属性。一种常见的用法就是使用渐变纹理来控制漫反射光照的结果。在之前计算漫反射光照时,使用的是表面法线和光照方向的点积结果与材质漫反射率来得到表面的漫反射光照。

  • 这种技术,可以保证物体的轮廓线相比于之前使用的传统漫反射更加明显,而且能够提供多种色调变化。

  • 注意:
    需要把渐变纹理的 Wrap Mode 设置为 Clamp 模式,以防止对纹理进行采样时由于浮点数精度造成的问题。在使用 fixed2(halfLambert, halfLambert) 对渐变纹理进行采样时,虽然理论上 halfLambert 的值在[0, 1]之间,但可能会有 1.00001 这样的值出现,如果使用 repeat模式,就会舍弃整数部分,只保留小树部分,得到的是 0.00001,对应了渐变图中最左边的值,即黑色。

代码实现

Shader "Custom/s7_3"
{
    Properties
    {
        _Color("Color",color)=(1,1,1,1)
        _RampTex("Ramp Tex",2D)="white"{}
        _Specular("Specular",color)=(1,1,1,1)
        _Gloss("Gloss",Range(10,256))=100
    }
    SubShader
    {
        Tags { "RenderTy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/107239
推荐阅读
相关标签
  

闽ICP备14008679号