Search code examples
c++openglglslvertex-shader

How to get a value from vec3 in vertex shader? OpenGL 3.3


I have the following vertex shader:

#version 330                                                                      
layout (location = 0) in vec3 Position;                                           
uniform mat4 gWVP;                                                                
out vec4 Color;
void main()                                                                       
{                                                                                 
    gl_Position = gWVP * vec4(Position, 1.0);                     
};

How can I get, for example, the third value of vec3? The first my thought was: "Maybe I can get it by multiplying this vector(Position) on something?" But I am not sure that something like "vertical vector type" exists. So, what is the best way? I need this value to set the color of the pixel.


Solution

  • Each vector has overloaded access to elements. In this case, using Position.z should work.