VertexShader(이하 vs 또는 VS) 와 FragmentShader(이하 fs 또는 FS)를
OpenGL Application 으로 읽어들이는 가장 간단한 방법에 대해 알아 보았다.
// VertexShader.vs
void main(){
gl_Position= ftransform();
}
void main(){
gl_Position= ftransform();
}
// FragmentShader.fs
void main(){
gl_FragColor= vec4(1, 0, 0, 1);
}
void main(){
gl_FragColor= vec4(1, 0, 0, 1);
}
위의 vs 와 fs의 기능은 매우 간단하다.
glVertex3f(...) 등으로 렌더링 파이프 라인에 넣어진 버텍스는 vs 에 따라 projection, view 를 거친후
red 색상으로 화면에 출력해 준다.
그렇다면 실제 응용프로그램에서 지정된 색상 즉,
gl.glColor3f(1, 1, 0);
glut.glutSolidTeapot(1);
과 같이 선언되었을 때, 이 색상으로 출력하기 위해서는 어떻게 해야 할까?
// VertexShader.vs
void main(){
gl_FrontColor= gl_Color;
gl_Position= ftransform();
}
void main(){
gl_FrontColor= gl_Color;
gl_Position= ftransform();
}
// FragmentShader.fs
void main(){
gl_FragColor= gl_Color;
}
void main(){
gl_FragColor= gl_Color;
}
vs 와 fs가 이와같이 선언되어 있다면,
출력결과는 응용프로그램에서 지정한 색상을 따르게 된다.
'Computer > JOGL' 카테고리의 다른 글
9. GLSL -- 툰 셰이딩 (0) | 2007.08.03 |
---|---|
8. GLSL -- Animation (0) | 2007.08.03 |
6. GLSL -- HelloWorld (0) | 2007.08.03 |
5. Text (0) | 2007.07.31 |
4. Color Cube (0) | 2007.07.30 |