Unity shader 初探

shader第一行:自定义shader所属的目录(随便取名,随便指定),这里的目录非shader文件所在的目录,而是类似于shader ID,供外部选择时使用!

当这一行修改成其他名字时,unity所有用到该shader的地方都会做对应修改
Shader的结构:

用在Properties中的shader中的变量类型:

Unity中的三种Shader类型:
  • Surface Shaders: 做光照和阴影效果的最佳选择。针对Unity lighting pipeline做了高度抽象,比如顶点结构已经预定义好。在图像效果或者其他特殊效果上,最好不要用这种,因为里面会做很多无端的光照计算。
  • Vertex and Fragment Shaders :最灵活、最强大、写起来最麻烦的那种最正统Shader。
  • Fixed Function Shaders : 主要针对老硬件和简单的手机平台
类似于Microsoft's .Fx files 和 NVIDIA的CgFX,Unity使用ShaderLab。无论哪一种shader类型,均包装在ShaderLab中。
对于Surface Shaders,宏定义如:#pragma surface surf BasicDiffuse

其中surf为指定的surfaceFunction;BaseicDiffuse为指定的LightingModel。实际对应的函数名称前必须加Lighting,对应上面即:LightingBasicDiffuse

Material没什么好说的,就是和特定shader关联,并控制shader code中的参数。需要被控制的参数全部定义在shader中的Properties区域块中
unity3D的三种渲染通道类型:Deferred Lighting,Forward Rendering,Vertex Lit。
  • 通过Camera Inspector面板中Rendering Path来指定,其中有一项是“Use Player Setting”,选择这项,则在Edit -> Project Setting -> Player中Inspector面板下指定

  • Deferred Lighting。延迟光照。在Pro版本中才有

  • Forward Lighting。表现效果要取决于shader和场景中的光源。。Vertex-Lit。简单的顶点光照

最好的帮助文档永远是官方文档:http://docs.unity3d.com/Documentation/Components/SL-Reference.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值