之前我们介绍的一些Shader效果都是在surf函数中做文章,也就是对渲染过程中的片段进行操作,实现的是模型表面的一些显示效果。然而,Unity Shader还提供对顶点阶段进行控制,来实现顶点的位置,颜色,法线等信息的修改。
一个简单的例子
之前我们给过一个完整的Shader,用#pragma可以指定顶点函数。我们可以写一个简单的顶点函数,它什么也没有做:
Shader "Custom/VertShader" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
#pragma surface surf Lambert vertex:MyVert
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
};
void MyVert(inout appdata_full v, out Input IN)
{
}
void surf (Input IN, inout SurfaceOutput o) {
half4 c = tex2D (_MainTex, IN