SSISO Community

시소당

[OpenGL] Uniform, Attribute, Varying

  • Uniform
Application에서 OpenGL ES API를 통해 Shader로 전달되는 읽기 전용 값을 저장하는 변수. Uniform 변수는 Vertex Shader와 Fragment Shader에서 공유되며 주로 Matrix, Lighting Parameter, Color 등의 값을 저장하는데 사용된다.

uniform mat4 viewProjMatrix;
uniform mat4 viewMatrix;
uniform vec3 lightPosition;

glGetUniformLocation
glUniform-
 
  • Attribute 
Vertex Shader에서만 사용가능한 타입으로 Vertex 각각의 정보를 전달하기 위해 사용된다. 일반적으로 Position, Normal, Texture Coordinate, Color 등의 정보가  전달된다.

attribute vec4 a_position;
attribute vec2 a_texCoord0;

glVertexAttribPointer
glBindAttribLocation

  • Varying 
Vertex Shader의 Output이자 Fragment Shader의 Input으로 사용될 변수를 지정하는 데 사용된다. Application 쪽에선 건드릴 수 없는 변수이므로 관련 API 또한 존재하지 않는다.

varying vec2 texCoord;
varying vec4 color;


출처: https://dalbom.tistory.com/6 [개발해봄]

70 view

4.0 stars