2011-08-23 6 views
1

+/- 1.0의 정점/보통 값을 갖는 가운데에 질감이있는 큐브로 구성된 매우 간단한 OpenGL 프로그램을 작성한 후 고정 파이프 라이팅 모델의 동작에 관한 두 가지 질문이 있습니다.OpenGL 주변 조명

1) 글로벌 앰비언트 라이트를 {1.0, 1.0, 1.0, 1.0}으로 설정하면 왜 내 오브젝트가 완전히 빛나지 않습니다. 이러한 설정을 통해 조명이 비활성화 된 것처럼 (즉, 모든 서페이스가 최대 강도로 렌더링되는 것처럼) 모델을 렌더링 할 것으로 예상했을 것입니다.

2) {0.0, 0.0, 2.0}의 모델 바로 앞에 확산 빛을 배치하면 모든 것이 올바르게 렌더링되는 것처럼 보입니다. 그러나 빛을 {0.0, 0.0, 200.0} 조명이 비활성화 된 것처럼 렌더링됩니다 (즉, 모든 서페이스가 최대 강도로 렌더링됩니다).

답변

3

실제 설치 코드를 게시하지 않았으므로 실제로 할 수있는 것은 모두 추측입니다.

1 : 주변 광 강도는 주위 표면 색으로 변조됩니다. 재질을 올바르게 설정하지 않은 경우이 값은 이 아니며이 확산 표면색과 동일해야합니다. 물론 코드를 게시하지 않았으므로 코드를 올바르게 작성했는지 여부를 말할 수는 없습니다.

2 : 나는 무슨 일이 일어나고 있는지를 볼 필요가 있지만, 이것은 어떤 종류의 강도 저하를 일으키지 않았기 때문에 발생했을 가능성이 높습니다. 효과적으로, 빛이 멀어지면, the normals are more likely to be closer to facing it than if it is close to the surface이기 때문에 밝게 나타납니다. 점 광원은 멀리 이동할 때 지향성 광이됩니다. 따라서 감쇠를 사용해야합니다.

+0

답변 해 주셔서 감사합니다. Nicol. 주변 광 강도와 관련하여 빛이 비활성화 된 것처럼 큐브를 렌더링하는 빛/재료 값의 예를 나에게 줄 수 있습니까? {1.0, 1.0, 1.0, 1.0} 두 가지 모두 속임수일까요? 주변 광량에 관계없이 {0.0, 0.0, 0.0, 1.0}의 재료 값으로 입방체가 검정색으로 렌더링됩니까? – Taliadon

+0

_many_ "재료 값"이 있습니다. 어느 쪽이 특별히 당신을 언급하고 있습니까? –

+0

예를 들어 광원이 정의되지 않았으며 glLightModel 명령을 통해 전역 앰비언트 라이트를 {1.0, 1.0, 1.0, 1.0}으로 설정한다고 가정 해 보겠습니다. {1.0, 1.0, 1.0, 1.0}의 주변 meterial 값이 트릭을 수행합니까? – Taliadon