unity shader 入门之路(一)创建一个shader |
您所在的位置:网站首页 › 顶点shader › unity shader 入门之路(一)创建一个shader |
今天动手写第一个shader
1.取消天空盒子 为了更好地显示效果
2.创建一个shader
命名为Chapter5-SimpleShader 3.创建一个材质球 命名为SimpleShaderMat 最后共有两个
4.创建一个球体 放在视野中央 然后将shader赋予材质球 将材质球拖到球体上
5.到了写代码的时候了 Shader "Custom/Chapter5-SimpleShader" { SubShader{ pass { CGPROGRAM #pragma vertex vert #pragma fragment farg float4 vert(float4 v:POSITION) :SV_POSITION{ return mul(UNITY_MATRIX_MVP,v); } float4 farg() : SV_Target{ return fixed4(1.0,1.0,1.0,1.0); } ENDCG } } } 代码很简单,但是VS2015貌似不支持shader的编写,没有提示代码什么的,很难受。6.保存代码后就可以看到效果了(如果你的代码写的有问题 )
报错的shader
没报错的shader
第一个shader圆满完成,接着来看看这些代码都是什么意思。 1. #pragma vertex vert #pragma fragment farg 首先,vertex代表我们定义的顶点着色器,我们将顶点着色器代码写在这个函数里,fragment代表我们定义的片元着色器,我们将片元着色器代码写在这个函数里。2. float4 vert(float4 v:POSITION) :SV_POSITION{ return mul(UNITY_MATRIX_MVP,v);这段代码是逐顶点执行的,这里的POSITION是CG/HLSL中的语义,这些将告诉unity把模型的顶点坐标填充到输入参数V中,SV_POSITION则是顶点着色器的输出是裁剪空间中的顶点坐标。 顶点着色器中只包含了一行代码,把顶点坐标从模型空间转换到裁剪空间中。 3. float4 farg() : SV_Target{ return fixed4(1.0,1.0,1.0,1.0); frag函数并没有输出,片元着色器的代码很简单,返回了一个表示白色的fixed4类型的变量(fixed4(1.0,1.0,1.0,1.0)),(0,0,0)表示黑色,(1,1,1)表示白色。今天到此为止。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |