UnityShader入门精要-unity shader基础

Unity中的shader

assets-create-shader创建,共有四个模板可供选择:

standard surface shader 包含标准光照模型的表面着色器模板

unlit shader 不包含光照但包含雾效的基本顶点片元着色器

imageeffect shader实现屏幕后处理效果的基本模板

computeshader 旨在利用GPU并行性进行一些与常规渲染流水线无关的计算

Unity Shader 的结构

Properties属性

在properties中的定义会显示在材质面板中,便于在面板中调整

Properties{
Name("name",PropertyType)=DefaultValue;
}

Subshader

每个shader文件至少要有一个subshader语句块,依次扫描可用的,如果都不可用就使用Fallback语义指定的。subshader下有Tags标签语句块与RenderSetup状态语句块,可以设置显卡的各种状态与搭起shader和引擎间桥梁。完整的渲染流程在Pass语句块中定义,pass过多会造成渲染性能的下降。

UsePass:可以使用该命令服用其他unity shader中的pass

GrabPass:该pass负责抓取屏幕并将结果存储在一张纹理中

UnityShader的形式

表面着色器:

unity自创的一种着色器代码类型,给unity提供一个表面着色器后在背后会被转换成对应的顶点片元着色器,unity帮助处理了许多光照细节。表面着色器被定义在subshader语句块中的 CGPROGRAM和ENDCG之间,其代码用CG/HLSL编写嵌入其中。

顶点、片元着色器、

unity shader形式的选择:各种多个光源-表面着色器,光照数目少--顶点片元,自定义渲染效果-顶点片元。

属性、内置文件(常用结构体、帮助函数)、语义

见p108-111,后续会详细说明。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值