1.顶点数据
    image.png
    2.结构 struct
    包含
    image.png
    struct 是一个关键字 用来声明一个包裹组 结构体
    appdata 应用数据

    1. struct appdata
    2. {
    3. float4 pos:POSITION
    4. };

    *注意第四行的;符号

    3.语义
    用来告诉shader 谁是谁
    image.png

    float4 pos : POSITION ;
    数据类型 变量名 语义 结尾

    1. (可读性)<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.

    1. Shader "WSP/FrameWork1"
    2. {
    3. SubShader
    4. {
    5. pass
    6. {
    7. CGPROGRAM
    8. #pragma vertex vert
    9. #pragma fragment frag
    10. //struct结构 声明一个名字为appdata(应用数据)的结构体 这里为输入
    11. struct appdata
    12. {
    13. //内容是一个语义为: POSITION 的顶点位置变量 名字命为pos
    14. float4 pos : POSITION;
    15. //内容是一个语义为: COLOR 的顶点颜色变量 名字命为color
    16. float4 Color : COLOR;
    17. };
    18. //struct结构 声明一个名字为v2f的结构体 v2f为 vertex to fragmengt 顶点到片断
    19. struct v2f
    20. {
    21. //内容是一个语义为: SV_POSITION 的变量 名字命为pos SV是Unity用来做全平台适用的
    22. float4 pos : SV_POSITION;
    23. };
    24. //顶点着色器输入的内容为 appdata的结构 命名为v 输出值为v2f的结构
    25. v2f vert(appdata v)
    26. {
    27. }
    28. //片断着色器输入v2f的变量 结构命名为i 由于片断着色器输出的是颜色信息 所以数据类型为float4 这里为输出
    29. //系统变量SV_TARGET的语义
    30. float4 frag(v2f i):SV_TARGET
    31. {
    32. }
    33. ENDCG
    34. }
    35. }
    36. }

    6.整体关系
    image.png