版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/iceSony/article/details/84309811
本文由@唐三十胖子出品,转载请注明出处。
文章链接:https://blog.csdn.net/iceSony/article/details/84309811这篇文章将总结和提炼《Unity Shader入门精要》的第五章“Unity Shader学习之旅”的内容,针对上一篇文章的说明与补充。
通过这篇文章,你可以知道
1)CG变量与Properities属性的对应关系
2)Unity的扩展函数
3)CG/HLSL语义介绍
一.CG变量与Properities属性的对应关系
ShaderLab自带的各种属性类型与CG的关系
当你使用的时候知道怎么调用
首先左侧代表的是我们第三篇介绍的语法编写
他们的本质是CG变量,float,half,fixed也就是一个浮点数
Float4(x,x,x,0)对应的就是一个向量或者点
Sample2D/3D代表的是纹理
二.Unity的扩展函数
Unity其实写了一堆方法,你也可以调用
在CGPROGRAM-ENDCG中写#include “Lighting.cginc”
PS:事实上有些变量或者函数是全局的你不添加也可以调用
其中最常用的调用是UnityCG.cginc,其中最常用的结构体如下
最常用的使用函数如下
三.CG/HLSL语义
语义:数据获取与输出的变量
在我们的开发中分为顶点着色器、片元着色器的语义
注意顶点着色器如果不指定处理数据类型,括号内的结构体中必须含有SV_POSITION
顶点着色器的输出,你知道片元着色器默认要加这个语义就行
文章中还介绍了Shader的DeBug方法,以后有的是机会另开篇文章专题介绍:)
包括shader编写会遇到的不同平台渲染效果不同的坑,在以后也会涉及。
至于float half fixed的使用,都是浮点数,差别就是精度;移动端多用fixed,精度低,计算量减少。