앞서 VertexShader
(이하 vs
) 와 FragmentShader
(이하 fs
)를
OpenGL Application 으로 읽어들이는 가장 간단한 방법에 대해 알아 보았다.
1
2
3
void main() {
gl_Position = ftransform();
}
1
2
3
void main() {
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
위의 vs와 fs의 기능은 매우 간단하다. glVertex3f(…) 등으로 렌더링 파이프 라인에 넣어진 버텍스는 vs에 따라 projection, view 를 거친 후 red 색상으로 화면에 출력된다.
그렇다면 실제 응용프로그램에서 지정된 색상 즉,
1
2
gl.glColor3f(1, 1, 0);
glut.glutSolidTeapot(1);
과 같이 선언되었을 때, 이 색상으로 출력하기 위해서는 어떻게 해야 할까?
1
2
3
4
5
void main(){
gl_FrontColor= gl_Color;
gl_Position= ftransform();
}
1
2
3
void main(){
gl_FragColor= gl_Color;
}
vs 와 fs가 이와 같이 선언되어 있다면, 출력결과는 응용프로그램에서 지정한 색상을 따르게 된다.