vertexshader中的纹理不起作用,但fragmenthader中

时间:2019-08-17 18:50:00

标签: c# glsl shader

当我在片段着色器中调用纹理时,它的效果很好:

        public static string Vertexshader=          
    @"// 
    #version 410 core
    layout(location = 0) in vec3 Position;
    layout(location = 1) in vec3 Normal;
    layout(location = 2) in vec2 Texture;
    out vec4 WorldNormal; 
    uniform mat4 ModelMatrix;
    uniform mat4 ProjectionMatrix;
    out vec2 FS_Texture_in;
    uniform sampler2D Texture0_;
    void main(){ 
      FS_Texture_in=Texture;
      vec4 displace= WorldNormal*length(texture(Texture0_,Texture.xy).xyz);
      gl_Position = (ProjectionMatrix*ModelMatrix *(vec4(Position, 1.0)+ displace));
    }  
    ";

    public static string Fragmentshader =
    @"
    #version 410 core
    out vec4 FragColor;
    void main(void)
    {
    FragColor= vec4(1,1,1,1);
    }
    ";

当我在片段着色器中调用纹理时,它的效果很好:

 public static string Vertexshader1 =
    @"// 
    #version 410 core
    layout(location = 0) in vec3 Position;
    layout(location = 1) in vec3 Normal;
    layout(location = 2) in vec2 Texture;
    uniform mat4 ModelMatrix;
    uniform mat4 ProjectionMatrix;
    out vec2 FS_Texture_in;
    void main(){ 
    FS_Texture_in=Texture;
    gl_Position = (ProjectionMatrix*ModelMatrix *(vec4(Position, 1.0)));
    }  
    ";

    public static string Fragmentshader1 =
    @"
    #version 410 core
    out vec4 FragColor;
    in vec2 FS_Texture_in;
    uniform sampler2D Texture0_;
    void main(void)
    {
     FragColor=texture(Texture0_,FS_Texture_in);
    }
    ";

我认为它也可以在顶点着色器中使用。 请帮助我!

0 个答案:

没有答案