下面是几种Shader的例子,从简单到复杂,一步一步了解 Shader 的编写机制。
目录
- Shader基本结构
- Shader中定义结构体,简化程序
- 由顶点着色器,编写漫反射Shader程序
- 由顶点着色器控制漫反射,同时增加Inspector面板控制
- 片元着色器漫反射Shader
- 半兰伯特光照模型
- 顶点着色器+高光反射
- 外部控制+高光反射
1、Shader的基本结构
什么是着色器? 着色器Shader —— 运行在图形处理单元(GPU)上的程序,可以对图形硬件的渲染功能进行设置。
Unity 使用 ShaderLab 着色语言,同时支持使用 Cg、HLSL、GLSL 编写的着色器程序。
Shader "name"
{
[Properties]
SubShader { } //可以有多个,unity会找到第一个被用户机器支持的子着色器
[Fallback] //如果没有子着色器被支持,那么会尝试使用指定的降级着色器
}
下面的例子呈现了基本属性和变量定义:
Shader "My/01 shader"{
Properties{
_Color("Color",Color) = (1,1,1,1)//颜色
_Vector("Vector",Vector) = (3,2,3,1)//向量
_Int("Int",Int) = 234//int类型
_Float("Float",
|