프로그래밍/OpenGL

조명 함수

이재만박사 2015. 8. 6. 11:35

조명 효과 사용하기


glEnable(GL_LIGHTING);


* 조명 모델의 설정

- 조명 모델은 모두 3가지

- glLightModel( ) 함수를 통해 설정

- 첫 번째 조명 인자 : GL_LIGHT_MODEL_AMBIENT



* 재질 속성의 설정

- 빛을 반사하는 정도를 설정

- 재질 속성 설정 방법은 2가지

-- 1. 각 폴리곤이나 폴리곤 셋에 대하여 glMaterial( ) 함수 호출



- 대부분의 경우 주변광과 분산광에 대한 반사도는 같게 설정된다.

- 빛이 나거나 번쩍하는 효과가 필요하지 않는 한 반사광은 설정할 필요가 없다.


-- 2. 색상 트래킹 

- 이 방식을 사용하면 재질에 대해 glColor만 호출해주면 된다. 

- 물론 그 전에 색상 트래킹을 사용 가능하도록 다음과 같이 설정해 주어야 한다.

- glEnable(GL_COLOR_MATERIAL);


- 다음은 glColorMaterial( ) 함수를 통해 glColor에서 설정한 값이 적용될 재질 인자를 지정한다.

- 예를 들어 주변광과 분산광을 폴리곤의 앞면에 적용하고자 한다면 다음과 같이 호출하면 된다.

- glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);


- 그 뒤로는 재질 속성을 설정하는 코드가 필요하다.


* 광원의 설정