美文网首页
模型数据从哪里来_03

模型数据从哪里来_03

作者: Rayson | 来源:发表于2020-06-02 16:39 被阅读0次

使用POSITION语义得到了模型的顶点位置,如果我们想得到更多的模型数据该怎么办呢?
我们想得到例如:
1.每个顶点的纹理坐标和法线方向。
2.纹理坐标访问纹理,法线可用于计算光照。
因此我们要为顶点着色器定义一个新的输入参数,这个参数不再是一个简单的数据类型,而是一个结构体。修改代码如下:

//漫反射
// 逐顶点光照
Shader "yy/SimpleShader" {
    SubShader{
        Pass{
            CGPROGRAM
                #pragma vertex vert
                #pragma fragment frag
                //定义一个结构体来定义顶点着色器的输入
                //把数据从应用阶段传递到顶点着色器中
                struct a2v{
                    //POSITION告诉Unity 用模型空间的顶点坐标填充vertex变量
                    float4 vertex:POSITION;
                    //NORMAL告诉Unity 用模型空间的顶点坐标填充normal变量
                    float3 normal:NORMAL;
                    //TEXCOORD0告诉Unity 用模型空间的顶点坐标填充texcoord变量
                    float4 texcoord:TEXCOORD0;
                }

                float4 vert(a2v v):SV_POSITION{
                    //使用v.vertex来访问模型空间的顶点坐标
                    return UnityObjectToClipPos(v.vertex);
                }
                fixed4 frag():SV_Target
                {
                    return fixed4(1.0,1.0,1.0,1.0);
                }
            ENDCG
        }

    }
}

相关文章

网友评论

      本文标题:模型数据从哪里来_03

      本文链接:https://www.haomeiwen.com/subject/biauzhtx.html