在Unity中,我们需要配合使用材质和UnityShader才能达到需要的渲染效果。最常见的流程是:
- 创建一个材质;
- 创建一个UnityShader,并把它赋给上一步中创建的材质;
- 把材质赋给要渲染的对象;
- 在材质面板中调整UnityShader的属性,以得到满意的效果。
在Unity5.2及以上版本中,在Project面板创建Unity Shader时,会有以下四种模板:
- Standard Surface Shader:产生一个包含了标准光照模型的表面着色器模板;
- Unlit Shader:产生一个不包含光照但包含雾效的基本的顶点/片元着色器;
- Image Effect Shader:为我们实现各种屏幕后处理效果提供了一个基本模板;
- Compute Shader:产生一种特殊的Shader文件,旨在利用GPU的并行性来进行一些与常规渲染流水线无关的计算。
Unity
Shader本质上就是一个文本文件,在Project视图中选中某个Unity
Shader即可看到导入设置面板。通过该面板,我们可以查看该着色器是否为一个表面着色器,或者固定函数着色器,还可以查看使用的渲染队列(Render
queue)、是否关闭批处理(Disable batching)、属性列表(Properties)等。
- 如果该Shader是一个表面着色器,则Surface Shader后面会出现一个Show generated code按钮,点击该按钮打开的文件将显示Unity在背后为该表面着色器生成的顶点/片元着色器;
- 如果该Shader是一个固定函数着色器,则Fixed function后面也会出现一个Show generated code按钮,点击该按钮打开的文件将显示Unity在背后为该固定函数着色器生成的顶点/片元着色器。
- Compile and show code下拉列表可以让开发者检查该Unity Shader针对不同图像编程接口(如:OpenGL、D3D9等)最终编译成的Shader代码;直接点击Compile and show code按钮可以查看生成的底层的汇编指令。