ShaderLab
真正的Shader需要开发者与很多文件与设置打交道,才能呈现出想要的效果;而Unity Shader为我们提供了一层抽象,ShaderLab是Unity提供的一种专门为Unity Shader服务的语言。在Unity Shader的帮助下,开发者只需要使用ShaderLab编写Unity Shader文件,就可以完成所有的工作。

Unity Shader的结构
Unity为我们提供了如下几种Unity Shader模板

Standard Surface Shader: 会创建一个包含标准光照模型的表面着色器模板。
Unlit Shader: 会创建一个不含光照的基本顶点/片元着色器。
Image Effect Shader: 会为我们实现各种屏幕后处理效果提供一个模板。
Compute Shader: 会产生一种特殊的Shader文件,这类Shader旨在利用GPU的并行性来进行一些与常规渲染流水线无关的计算。
Ray Tracing Shader: 会创建一个光线追踪着色器。
下面以顶点/片元着色器(Unlit Shader)为例讲解Unity Shader的基本结构。
// 当前Shader的名称,斜杠可以控制当前Shader显示在材质面板下拉列表的位置
Shader "Unlit/MyShader"
{
// 属性块
Properties
{
//....
}
SubShader
{
//标签(key-value),可选
Tags {
}
// 渲染设置,可选
Cull off
//....
Pass
{
Name "MyPass"
Tags{
}
// 渲染设置 也可以在Pass通道中定义
// .....
// CG语言代码,主要是顶点/片元着色器
CGPROGRAM
// ....
ENDCG
}
}
Fallb

最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



