JOGL-007 VertexShader and FragmentShader on GLSL
Post

JOGL-007 VertexShader and FragmentShader on GLSL

앞서 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가 이와 같이 선언되어 있다면, 출력결과는 응용프로그램에서 지정한 색상을 따르게 된다.