《UnityShader入门精要》读书笔记——2.Unity Shader基础
1、Unity Shader概述
1.1、材质与Unity Shader
(1)创建一个材质。
(2)创建也给unity shader,并将它赋给材质。
(3)把材质赋给要渲染的对象。
(4)在材质面板中调整Unity shader的属性,以得到满意的效果。
UnityShader已经包含了:顶点、片元着色器、属性、渲染状态等。
1.2、Unity中材质
Unity的材质需结合GameObject的Mesh或者Particle System组件来工作。
1.3、Unity中的Shader
Unity提供4种模板
Standard Surface Shader:包含了标准光照模型(基于物理的渲染方法)的表面着色器模板
Unlit Shader:不包含光照(但包含雾效)的基本的顶点/片元着色器
Image Effect Shader:各种屏幕后处理效果的基本模板
Compute Shader:特殊shader文件,利用GPU辅助计算。
inspector界面
Default Maps:可以设置默认纹理
Show generated code:查看shader内容
Compile and show code:查看最终编译成的shader汇编指令,分析和优化着色器,可以选择编译平台。
2、Unity Shader基础:ShaderLab
Unity提供了一种专门为Untiy Shader服务的语言——ShaderLab,它是Unity为开发者提供的高层级的渲染抽象层。
一个Unity Shader的基础结构如下:
Shader "ShaderName" { Properties { // 属性 } SubShader { // 显卡A使用的子着色器 } SubShader { // 显卡B使用的子着色器 } Fallback "VertexLit" }
Unity在背后会根据平台编译成真正的代码和Shader文件,开发者只需和Unity Shader打交道即可。
3、Unity Shader的结构
3.1、Shader名字
3.2、Shader属性(Properties)
3.3、SubShader
3.4、Fallback
3.5、ShadeLab其他语义?
4、Untiy Shader形式
4.1、表面着色器
4.2、顶点片元着色器
4.3、固定函数着色器
5、答疑解惑
5.1、Unity Shader != 真正的Shader
5.2、Unity Shader和Cg/HLSL之间的关系
5.3、Unity Shader之GLSL实现
6、扩展阅读