[OpenGL] OpenGL 쉐이더(shader) 구현하기

OpenGL 쉐이더(shader) 구현하기 쉐이더 란? 쉐이더는 색상, 명암, 색조 등을 조절 해준다는 뜻을 가지고 있다. 쉐이더는 teapot, wireCube, sphere 등은 구현이 안되므로 직접 model 데이터를 제작해서 rgb 값을 할당 후 쉐이딩을 해줘야 한다. 쉐이딩 기법 순서 1. 삼각형을 그리기 위해서 3개의 vertex를 찍어 준다. 2. vertex 마다 다르게 색상을 준다. 3. GL_FLAT 나 GL_SMOOTH를 사용해서 RGB를 filling 해준다. 4. 결과가 나온다. GL_SMOOTH 로 쉐이딩 해주기 삼각형을 그리고 GL_SMOOTH 모드로 쉐이딩 해주는 코드. #include <GL/freeglut.h> #include <stdio.h> void draw ( void ) { glClearColor ( 1.0 f, 1.0 f, 1.0 f, 1.0 f ) ; glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ) ; glClearColor ( 1.0 , 1.0 , 1.0 , 1.0 ) ; // 배경 색상 glFrustum ( - 1 , 1 , - 1 , 1 , 1 , 100 ) ; glShadeModel ( GL_SMOOTH ) ; // GL_SMOOTH or GL_FLAT glBegin ( GL_POLYGON ) ; glColor4f ( 1.0 f, 0.0 f, 0.0 f, 1.0 f ) ; //red glVertex3f ( 0.0 , 0.5 , - 1.0 ) ; glColor4f ( 0.0 f, 1.0 f, 0.0 f, 1.0 f ) ; ...