[Unity ShaderLab] Shader知识要点(持续更新)

Shader知识要点

  • SV_POSITION与POSITION

    SV 是 System Value的意思

    POSITION 顶点的坐标

    SV_POSITION 是默认固定的系统值,不得改变

  • SV_Target与Color

    COLOR 顶点颜色

    SV_TARGET 是系统值,表示该函数返回的是用于下一个阶段OutPut Merger的颜色值,这里只简单的做了颜色值得传递。

  • Billboard

    顶点矩阵转换
    mul(UNITY_MATRIX_P,mul(UNITY_MATRIX_MV,float4(0,0,0,1)) + float4(IN.vertex.x,IN.vertex.y,0,0));

  • ZWRITE && ZTEST

    ZWRITE表示是否将深度写入GBuffer中

    • ZWRITE ON 表示写入
    • ZWRITE OFF 表示不写入

    ZTEST表示是否将颜色写入GBUFFER中

    ZTEST将要渲染物体的深度与ZWRITE中写入的深度进行比较,符合要求则渲染,不符合则不渲染

    • Less
    • Greater
    • LEqual
    • GEqual
    • Equal
    • NotEqual
    • Alway
  • Alpha Blend

    混合公式:

    float4 result = SrcFactor * fragment_output + DstFactor * pixel_color;

    fragment_output 是指片段着色器输出的颜色值

    pixel_color 是指颜色缓存中已经存在的颜色值

    Blend One Zero One代表SrcFactor等于一,DstFactor等于零
    相当于 Blend float4(1.0) * fragment_color + float4(0.0) * pixel_color,
    因此只会输出当前片段着色器的颜色值

    等多代号

    选项代号与之等价的代码
    Onefloat4(1.0)
    Zerofloat4(0.0)
    SrcColorfragment_output
    SrcAlphafloat4(fragment_output.a)
    DstColorpixel_color
    DstAlphafloat4(pixel_color.a)
    OneMinusSrcColorfloat4(1.0) - fragment_output
    OneMinusSrcAlphafloat4(1.0 - fragment_output.a)
    OneMinusDstColorfloat4(1.0) - pixel_color
    OneMinusDstAlphafloat4(1.0 - pixel_color.a)
  • Time && _SinTime && _CosTime

    _Time && _SinTime && _CosTime float4类型,xyzw分别代表不同的值

    字段类型描述与分量取值
    _Timefloat4Time (t/20, t, t2, t3), use to animate things inside the shaders.
    _SinTimefloat4Sine of time: (t/8, t/4, t/2, t).
    _CosTimefloat4Cosine of time: (t/8, t/4, t/2, t).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值