12.쉐이더

기존 방식은 고정된 파이프라인 : 인수를 바꾸어 동작에 변화를 주거나 특정 단계를 건너 뛸 수는 있지만 전체적인 과정은 고정적이다. 정점 배치, 모델뷰 변환, 투영, 클리핑, 뷰포트 변환 등과 같이 단계가 미리 정해져 있다.

쉐이더 : 그래픽 처리를 커스텀화한 프로그램이다. 고정 파이프라인을 대체한다. 버텍스 쉐이더, 프래그먼트 쉐이더의 단계를 거친다.

저수준 확장 : GPU를 직접 프로그래밍한다. 어셈블리와 유사하다. 고수준보다 먼저 발표되었지만 앞으로는 고수준에 의해 대체될 것이다.

고수준 확장 : 읽기쉬운 코드이다. C언어의 문법과 비슷하다. GLSL이라고 부른다. 쉐이더 텍스트를 문자열로 전달하고 컴파일 및 링크까지 해야 한다.

GL_ARB_fragment(vertex)_shader 확장 기능을 사용하는데 윈7에는 두 기능이 있는 것으로 조사된다. XP에서는 아마 안될 것 같다. 그럴 경우 GLEW를 사용하면 된다고 한다.

다음 사이트에 쉐이더에 대한 강좌가 있기는 한데 자기가 쓴 건 아닌 것 같고 어디서 가져와서 번역한 것 같다. 대략적인 설명은 되어 있고 몇 가지 예제도 있는 편이다.

 

http://www.gisdeveloper.co.kr/

 

수퍼 바이블 21장의 고수준 쉐이딩 예제가 컴파일 및 실행됨. 그러나 확장 기능 검색 및 타입 정의를 위해 자신이 만든 헤더 파일을 사용하므로 표준 함수로 바꿀 필요가 있다. 윈 7 에서 예제 제작 가능할 듯. OpenGLExam/Test1에 예제 만들어 볼 것