美文网首页
模型,顶点着色器,片元着色器的关系

模型,顶点着色器,片元着色器的关系

作者: 鬼鬼_de | 来源:发表于2019-07-12 11:32 被阅读0次

模型,顶点着色器,片元着色器的关系

Shader "Custom/Test" {
    SubShader{
        Pass{
        CGPROGRAM
        #pragma vertex vert
        #pragma fragment frag

        struct a2v {
            float4 vertex : POSITION;   
            float3 normal:NORMAL;   
            float4 texcoord:TEXCOORD0;
        };

        struct v2f {
            float4 pos : SV_POSITION;
            fixed3 color : COLOR0;
        };

        v2f vert(a2v v) : SV_POSITION{
            v2f o;
            o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
            o.color = v.normal * 0.5 + fixed3(0.5, 0.5, 0.5);
            return o;
        }

        fixed4 frag(v2f i) : SV_Target{
            return fixed4(i.color,1.0f);
        }
        ENDCG
        }
    }
}

结构体a2v,里面塞进了顶点着色器需要的模型数据。模型的数据传递给顶点着色器,然后在顶点着色器里面编程,来计算各种必要的信息,输出到结构体v2f里面,给接下来的片元着色器准备好数据。

struct a2v {
    float4 vertex : POSITION; 
    float3 normal : NORMAL; 
    float4 tangent : TANGENT;
    float4 texcoord : TEXCOORD0;
    fixed4 color : COLOR;
};

结构体v2f,把顶点着色器输出的数据整好,然后传递给片元着色器。在片元着色器里面进行复杂的计算,得到正确的颜色,最后输出到渲染目标中。

struct v2f {
    float4 pos : SV_POSITION;
    fixed3 color : COLOR0;
    float4 texcoord : TEXCOORD0;
};
顶点着色器,片元着色器的数据来源与去向

TEXCOORD 还可以用于储存各种向量,例如灯光方向,视角方向等

学习资料:《unity shader入门精要》

相关文章

  • 模型,顶点着色器,片元着色器的关系

    模型,顶点着色器,片元着色器的关系 结构体a2v,里面塞进了顶点着色器需要的模型数据。模型的数据传递给顶点着色器,...

  • 七:GLSL灰度,翻转,马赛克滤镜

    默认 顶点着色器代码: 片元着色器代码: 灰度滤镜 顶点着色器代码不变,片元着色器代码: 颠倒滤镜 顶点着色器代码...

  • OpenGL ES 着色器语言GLSL

    在OpenGL ES中着色器分为顶点着色器和片元着色器。顶点着色器是针对每个顶点执行一次,用于确定顶点的位置。片元...

  • 八:GLSL 动态滤镜

    默认 顶点着色器代码: 片元着色器代码: 缩放滤镜 原理:通过修改顶点着色器中的顶点和纹理的映射关系实现缩放。 算...

  • WebGL 3D概念讲解(着色器)

    着色器 1、顶点着色器 2、片元着色器

  • OpenGL ES纹理翻转方法

    1.顶点取反1 顶点着色器 片元着色器 2.顶点取反2 顶点着色器 rotateMatrix Z轴旋转矩阵 片元着...

  • OpenGL ES(九)-自定义滤镜(分屏滤镜)

    分屏滤镜(2) 顶点着色器源码: 片元着色器源码: 分屏滤镜(3) 顶点着色器不变片元着色器源码: 分屏滤镜(4)...

  • WebGL编程指南入门基础篇

    WebGL编程指南入门基础篇 着色器介绍 着色器分为顶点着色器 跟 片元着色器 顶点着色器描述顶点特性,包括位置,...

  • 13-1.GLSL-分屏滤镜分析

    全屏 顶点着色器 代码 片元着色器Normal.fsh代码 实现分屏只需要修改片元着色器,无需修改顶点着色器Nor...

  • OpenGL ES 之 GLSL和滤镜

    着色器的渲染过程在渲染过程中,必须存储2中着色器,分别是顶点着色器、片元着色器。顶点着色器是第一个着色器、片元着色...

网友评论

      本文标题:模型,顶点着色器,片元着色器的关系

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