unity的shader(第二章)

也可以去创建这样的一个粒子,拖上材质就是这样

之前看到的使用什么样的图形编程接口来编译我们最终的代码

我们会通过shader lab去编写我们的shader文件完成工作

fall back三个subshader都无法使用就会调用我们的fall back

untiy shader的结构是三个方面

1:通过shader语言来定义的名字

2:材质和unity shader的桥梁:properties

渲染队列,和允许gpu的实例化

这里可以看到里面定义一系列颜色,rgb,丝滑度,金属质地

1:顶点偏移着色器(cg/hlsl)是写在pass语句块中的,而不是 sub shader类:这是因为我们需要定义每个pass需要使用的shader代码。虽然这样会编写更多的代码,但是灵活性更高,同时可以控制我们渲染的细节

2:固定函数着色器已经被untiy抛弃了,因为他要做的东西非常少,只能去打开和关闭对于固定着色器的话需要我们完全使用shader lab语法现在绝大多数的gpu都支持我们可编程渲染管线,所以现在这个固定渲染管线已经很少使用了

总结:明确规定,设备不支持。在移动设备下各种光源需要注意,如果使用光照比较少,使用顶点和片源着色器是一个更好的选择

顶点偏移着色器定义了顶点和片源

而表面着色器只定义了光源

注意unity shader!=真正的shader他只是以.shader作为文件后缀的文件,

在untiy shader中能做的事情远远多于传统的shader,在传统的shader中我们只能编写顶点着色器或片源着色器。而在unity shader中我们可以需要的顶点着色器和片源着色器。传统的shader中无法设置渲染设置,比如开启混合深度测试,这些是开发者在neo的代码中进行设置的,而在untiyshader中就可以完成这些设置更方便,在传统的shader中我们需要编写冗长的代码来设置着色器的输入和输出,要小心的处理这些输入和输出的位置定义关系而在untiyshader中这里要材质来改变一些属性,对于一些模型自带的数据:比如顶点位置,纹理坐标,法线等等,untiyshader也提供了直接访问的方法不需要我们自行编码来传递这样的一个数字器。

unity shader和cg/hlsl之间的关系:正如我们之前说untiy shader是用shaderlab语言来编写,但是表面着色器、顶点/片源着色器可以在shaderlab嵌套cg/hlsl语言来编写这些着色器代码

补充:

申明用customEditor来扩展我们编辑界面

也可以去创建这样的一个粒子,拖上材质就是这样

之前看到的使用什么样的图形编程接口来编译我们最终的代码

我们会通过shader lab去编写我们的shader文件完成工作

fall back三个subshader都无法使用就会调用我们的fall back

untiy shader的结构是三个方面

1:通过shader语言来定义的名字

2:材质和unity shader的桥梁:properties

渲染队列,和允许gpu的实例化

这里可以看到里面定义一系列颜色,rgb,丝滑度,金属质地

1:顶点偏移着色器(cg/hlsl)是写在pass语句块中的,而不是 sub shader类:这是因为我们需要定义每个pass需要使用的shader代码。虽然这样会编写更多的代码,但是灵活性更高,同时可以控制我们渲染的细节

2:固定函数着色器已经被untiy抛弃了,因为他要做的东西非常少,只能去打开和关闭对于固定着色器的话需要我们完全使用shader lab语法现在绝大多数的gpu都支持我们可编程渲染管线,所以现在这个固定渲染管线已经很少使用了

总结:明确规定,设备不支持。在移动设备下各种光源需要注意,如果使用光照比较少,使用顶点和片源着色器是一个更好的选择

顶点偏移着色器定义了顶点和片源

而表面着色器只定义了光源

注意unity shader!=真正的shader他只是以.shader作为文件后缀的文件,

在untiy shader中能做的事情远远多于传统的shader,在传统的shader中我们只能编写顶点着色器或片源着色器。而在unity shader中我们可以需要的顶点着色器和片源着色器。传统的shader中无法设置渲染设置,比如开启混合深度测试,这些是开发者在neo的代码中进行设置的,而在untiyshader中就可以完成这些设置更方便,在传统的shader中我们需要编写冗长的代码来设置着色器的输入和输出,要小心的处理这些输入和输出的位置定义关系而在untiyshader中这里要材质来改变一些属性,对于一些模型自带的数据:比如顶点位置,纹理坐标,法线等等,untiyshader也提供了直接访问的方法不需要我们自行编码来传递这样的一个数字器。

unity shader和cg/hlsl之间的关系:正如我们之前说untiy shader是用shaderlab语言来编写,但是表面着色器、顶点/片源着色器可以在shaderlab嵌套cg/hlsl语言来编写这些着色器代码

补充:

申明用customEditor来扩展我们编辑界面

                                                                                                         于冯乐乐老师有感

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值