DirectX Graphics 프로그래밍 가이드 고정 기능 파이프라인 라이트와 머트리얼 Direct3D 의 조명 모델과 자연광의 비교   [목차열람] [주소복사] [슬롯비우기]
Direct3D 의 조명 모델과 자연광의 비교
 
Microsoft DirectX 9.0

Direct3D 의 조명 모델과 자연광의 비교


자연계에서는, 광원으로부터 방사된 빛은, 몇천이나 몇백만은 아닌으로 해도, 몇백의 물체에 반사한 끝에 우리의 눈에 닿는다. 빛은 반사할 때마다, 그 일부가 물체의 표면에 흡수되거나 주위에 확산해, 그 나머지가 다른 표면이나 우리에 이른다. 이 과정은, 빛이 감쇠해 사라져 없어지는지, 또는 우리가 빛이 닿은 것을 지각할 때까지 반복된다.

자연광의 움직임을 완전하게 시뮬레이트 하는 계산에는, 너무 방대한 시간이 걸리기 (위해)때문에, 리얼타임 3D 그래픽스로 사용할 수 없는 것은 명백하다. 거기서, 속도를 고려해, Microsoft® Direct3D® 의 조명 모델에서는 자연광의 움직임을 대략적으로 시뮬레이트 한다. Direct3D 에서는, 최종적인 색을 생성 하는 색성분, 적·록·청에 의해 빛을 그린다.

Direct3D 에서는, 빛이 표면에 반사했을 때, 빛의 색과 표면 자체를 수학적으로 처리하는 것으로, 최종적으로 스크린에 드로잉(Drawing) 되는 색을 생성 한다. Direct3D 로 사용하는 알고리즘에 관한 특정의 정보에 대해서는, 「조명의 수학적 계산」을 참조할것.

Direct3D 의 조명 모델은, 크게 나누어 앰비언트 라이트와 다이렉트 라이트의 2 개가 있다. 이것들은 서로 다른 속성을 가져, 표면의 머트리얼과의 상호작용도 다르다. 앰비언트 라이트는, 방향도 광원도 가지지 않고, 환경내를 산란하고 있는 빛으로, 환경빛이라고도 말한다. 앰비언트 라이트의 강도는, 어느 위치에 있어도 하위 레벨로 유지된다. 앰비언트 라이트의 적절한 예로서는, 카메라맨이 사용하는 간접조명이 있다. Direct3D 의 앰비언트 라이트에게는, 자연광과 같이, 실제의 방향이나 광원은 없다. 어느 색과 강도뿐이다. 실제, 앰비언트 라이트의 레벨은, 장면(scene)내의 미츠를 출발하는 개체와는 전혀 관계하지 않는다. 앰비언트 라이트는 스펙큐러 반사를 일으키지 않는다.

다이렉트 라이트는, 장면(scene)내의 광원이 생성하는 빛이다. 다이렉트 라이트에게는 항상 색과 강도가 있어, 특정의 방향으로 나아간다. 다이렉트 라이트는, 표면의 머트리얼과 상호작용 해 스펙큐러 하이라이트를 낳아, 그 방향은 gouraud shading등의 쉐이딩 알고리즘으로 계수로서 사용된다. 다이렉트 라이트의 반사는, 장면(scene)의 앰비언트 라이트의 레벨에 영향을 주지 않는다. 장면(scene)내의 다이렉트 라이트를 생성하는 광원에는 다양한 특성이 있어, 거기에 따라 장면(scene)를 어떻게 비출지가 다르다. 더 자세한 정보는, 「라이트와 머트리얼」을 참조할것.

게다가 다각형의 머트리얼에는, 다각형이 빛을 어떻게 반사할까를 결정하는 속성이 있다. 머트리얼이 어떻게 앰비언트 라이트를 반사하는지를 나타내는 단일의 반사 속성을 설정해, 머트리얼의 스펙큐러 반사율 및 디퓨즈 반사율을 결정하는 각각의 속성을 설정한다. 더 자세한 정보는, 「머트리얼」을 참조할것.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP