一、简介
- 着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之间不能相互通信;它们之间唯一的沟通只有通过输入和输出。
- 在最简配置下,至少都得有两个着色器:一个叫顶点着色器(vertex shader),它将作用于每个顶点上;另一个叫片段着色器(fragment shader),它将作用于每一个采样点。我们采用4倍抗锯齿,因此每个像素有四个采样点。
- 如果我们打算从一个着色器向另一个着色器发送数据,我们必须在发送方着色器中声明一个输出,在接收方着色器中声明一个类似的输入。当类型和名字都一样的时候,OpenGL就会把两个变量链接到一起,它们之间就能发送数据了(这是在链接程序对象时完成的)。
- 顶点着色器和片段着色器的处理流程:
3d模型—>Vertex shader and flagment shader【—>vertex data inputs结构体—>vertex function—>Vertex shader outputs and fragment shader inputs结构体—>flagment function】—>color
理解:首先,几何点被送到顶点处理单元,得到各个顶点的位置和数据;然后,得到的结果被送到片段处理单元,得到最终的颜色值。
二、代码
Shader "Unlit/NewUnlitShader"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
}
SubShader
{