Surface Shaders的个人总结

3 篇文章 0 订阅
2 篇文章 0 订阅

在表面着色器中定制照明模型

Surface Shaders中有两个内置的光照模型:Lambert用于diffuse lighting(漫反射),BlinnPhong用于specular lighting(镜面反射).
Lighting.cginc这个文件在Unity中定义了这些模型.
如果你想使用自定义照明模型可以用Surface Shaders 做到这一点.一个灯光模型仅是一堆Cg/HLSL函数,他们匹配一些约定.

灯光模型说明

灯光模型是由具有Lighting开头的常规函数组成,您可以在着色器文件的任何地方生命它,或者其中一个包含文件.

  1. half4 Lighting<Name> (SurfaceOutput s, UnityGI gi):使用这个不依赖于视图方向的灯光模型在forward rendering中.
  2. half4 Lighting<Name> (SurfaceOutput s, half3 viewDir, UnityGI gi):依赖于视图方向的灯光模型在forward rendering中.
  3. half4 Lighting<Name>_Deferred (SurfaceOutput s, UnityGI gi, out half4 outDiffuseOcclusion, out half4 outSpecSmoothness, out half4 outNormal):在延迟光照路径中使用。
  4. half4 Lighting<Name>_PrePass (SurfaceOutput s, half4 light):在light prepass(遗留延迟的)光照路径中使用此功能。

注意:您不需要声明所有函数.照明模型要么使用视图方向,要么不使用.类似的,如果照明模型只在forward rendering中工作,则不要声明_Deferred或_Prepass函数.这确保使用它的着色器只编译forward rendering.

Custom GI

声明以下函数以自定义解码lightmap数据和调查:
1.half4 Lighting<Name>_GI (SurfaceOutput s, UnityGIInput data, inout UnityGI gi);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值