1.顶点数据
2.结构 struct
包含
struct 是一个关键字 用来声明一个包裹组 结构体
appdata 应用数据
struct appdata
{
float4 pos:POSITION;
};
*注意第四行的;符号
3.语义
用来告诉shader 谁是谁
float4 pos : POSITION ;
数据类型 变量名 语义 结尾
(可读性)<br />4.v2f的关系<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/12772149/1615275264986-16f552a1-fad0-4958-b7c6-b5f5a2aa1a4c.png#height=824&id=oZR5d&margin=%5Bobject%20Object%5D&name=image.png&originHeight=824&originWidth=1456&originalType=binary&ratio=1&size=1877858&status=done&style=none&width=1456)<br />应用数据输入到顶点着色器 再经过一些列运算输出到片断着色器
5.
Shader "WSP/FrameWork1"
{
SubShader
{
pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
//struct结构 声明一个名字为appdata(应用数据)的结构体 这里为输入
struct appdata
{
//内容是一个语义为: POSITION 的顶点位置变量 名字命为pos
float4 pos : POSITION;
//内容是一个语义为: COLOR 的顶点颜色变量 名字命为color
float4 Color : COLOR;
};
//struct结构 声明一个名字为v2f的结构体 v2f为 vertex to fragmengt 顶点到片断
struct v2f
{
//内容是一个语义为: SV_POSITION 的变量 名字命为pos SV是Unity用来做全平台适用的
float4 pos : SV_POSITION;
};
//顶点着色器输入的内容为 appdata的结构 命名为v 输出值为v2f的结构
v2f vert(appdata v)
{
}
//片断着色器输入v2f的变量 结构命名为i 由于片断着色器输出的是颜色信息 所以数据类型为float4 这里为输出
//系统变量SV_TARGET的语义
float4 frag(v2f i):SV_TARGET
{
}
ENDCG
}
}
}
6.整体关系