【摘要】:Unity 3D提供了丰富的内嵌Shader,基本能够满足普通的开发需求。在Unity 3D中,开发者可以编写3种类型的shader。此类shader可以非常灵活地实现需要的效果,但同时也需要编写更多的代码,并且很难与Unity 3D的管线进行集成。
Unity 3D提供了丰富的内嵌Shader,基本能够满足普通的开发需求。但是和所有内嵌的、标准的东西一样,它们看起来有些普通,当内嵌的Shader已经无法满足要求时,便需要开发者编写自己的Shader。
编写Shader需要对OpenGL或者DirectX的渲染状态有基本的了解,以及一些关于固定功能管线、可编程管线等编程语言的知识。
在Unity 3D中,开发者可以编写3种类型的shader。
1.表面着色器
通常情况下开发者都会使用这类Shader,其可以与灯光、阴影、投影器进行交互。表面着色器(surface shaders)的抽象层次比较高,可以容易地以简洁的方式实现复杂的着色器效果。表面着色器可同时正常工作在前向渲染及延迟渲染模式下。(www.xing528.com)
2.顶点和片元着色器
如果需要一些表面着色器无法处理的效果,或者编写的shader不需要与灯光进行交互,或者想要的只是全屏图像效果,那么便可以使用顶点和片元着色器(vertex and fragment shaders)。此类shader可以非常灵活地实现需要的效果,但同时也需要编写更多的代码,并且很难与Unity 3D的管线进行集成。
3.固定功能管线着色器
如果要运行在不支持可编程管线的老旧硬件上,那便需要此种shader了。固定功能管线着色器(fixed function shaders)可以作为片段着色器或者表面着色器的备用选择,在硬件无法运行复杂shader时,还可以通过固定功能管线着色器来绘制出一些基本的内容。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。