做网站链接还要服务器吗买,呼伦贝尔网站建设 设计,自动生成ui界面,做网站必须要有服务器吗关于ShaderLab#xff0c;从我个人的理解上来看应该是分为三种类型。 1、Fixed function shader 固定渲染管线Shader#xff0c;基于用于高级Shader在老显卡无法显示时的Fallback#xff0c;使用的是ShaderLab语言#xff0c;属于真正的ShaderLab语言#xff0c;和我们平时… 关于ShaderLab从我个人的理解上来看应该是分为三种类型。 1、Fixed function shader 固定渲染管线Shader基于用于高级Shader在老显卡无法显示时的Fallback使用的是ShaderLab语言属于真正的ShaderLab语言和我们平时看到的shader的区别后面细说。 2、Vertex and Fragment Shader 可编程渲染管线这种Shader包含Vertex Shader和Fragment Shader也就是顶点着色器和片段着色器。顶点着色器会根据你自己的定义自动获取顶点一些相关信息。使用CG/HLSL语法小伙伴们平时应该都注意到了有时候在Shader中会出现#include UnityCG.cginc这类声明这里面就是Unity给我们做好的一个库你可以想像成C语言程序中的includeC#程序员可以想象成代码文件开头的Using引用Android程序员可以将其想象成代码开头的import引用。 3、Surface Shader unity自己最为推崇的Shader类型使用Unity预制的光照模型来进行光照运算。也是使用CG/HLSL。 Unity的三种Shader对比相同点 1、都必须从唯一一个根的Shader开始也就是本系列资料1中解释的调用函数。 2、Properties参数部分作用和语法完全相同没有任何区别没有万一。 3、具体的功能都在SubShader里去实现如果有多个Subshader那么机器不会全部执行而是最多只执行一个执行方式是从上自下开始运行硬件能够支持的第一个SubShader这样做的目的主要是为了兼容不同类型的显卡。 4、都可以贴上标签也就是Tags块例如Tags { RenderType Opaque } LOD 200 以及Lighting On等这些的具体用法咱们后面细说。 5、结束的时候都可以用Fallback来进行对备胎Shader的使用备胎的意思也就是如果所有的SubShader都不被硬件支持就会去使用Fallback所指定的Shader。 6、都可以处理基本的功能例如光照反射镜面反射等。但是顶点片段着色器和表面着色器都可以实现固定管线实现不了的高级功能例如基于UV计算的效果等。 Unity的三种Shader对比不同点 1、固定管线和顶点片段着色器的SubShader下面还有pass{}通道但是表面着色器已经将具体内容打包在光照模型里面了所以不能加上pass{}通道。 2、固定管线每句代码之后没有分号但是VF着色器Sur着色器的每句代码之后都必须加上分号这种设计也许更符号码农们的期望吧。 3、核心结构不同 固定管线的核心 Material{} 以及 SetTexture[_MainTex]{} VF着色的核心 CGPROGRAM //声明使用CG语言 #pragma vertex vert //声明顶点函数vert #pragma frament frag //声明片段函数frag #include UnityCG.cginc //导入unity的CG库 ENDCG Surface Shader的核心 CGPROGRAM //声明使用CG语言 #pragma surface surf Lambert //声明一个表面着色器函数surf并使用Unity自己的光照模型和顶点函数 //Lambert为Unity自带的光照模型函数我们也可以使用自己写的光照模型函数并且使用自己写的顶点函数 // surface 表面处理函数 光照模型函数 顶点处理:函数 //#pragma surface surf lsyLightModel vertex:vert //执行顺序 顶点处理函数 - 表面处理函数 - 光照模型函数 -颜色值 ENDCG 转载于:https://www.cnblogs.com/vsirWaiter/p/5988974.html