조명의 수학

Direct3D 조명 모델은 주변, 확산, 반사 및 발광 조명을 포함합니다. 따라서 광범위한 조명 상황을 해결하기에 충분한 유연성이 있습니다. 한 장면에 비치는 빛의 총량을 전역 조명이라고 합니다.

전역 조명은 다음과 같이 계산합니다.

global_illumination = ambient_lighting + diffuse_lighting + specular_lighting + emissive_lighting;

주변 광원은 일정한 조명입니다. 주변 광원은 모든 방향에서 일정하며 개체의 모든 픽셀에 동일한 색을 지정합니다. 따라서 계산이 빠르지만 개체가 편평해 보이고 사실성이 떨어집니다.

확산 조명은 조명 방향과 개체 표면 법선 모두에 따라 달라집니다. 확산 조명은 조명 방향 및 표면 법선 벡터의 변화로 인해 개체 표면 전반에 걸쳐 달라집니다. 각 개체 꼭짓점마다 달라지기 때문에 확산 조명을 계산하는 데 시간이 더 오래 걸리지만, 개체에 그늘을 드리워 3차원(3D) 깊이를 만들어낸다는 것이 확산 조명 사용의 이점이기도 합니다.

반사 조명은 빛이 개체 표면에 닿았다가 카메라를 향해 반사하면서 발생하는 밝은 반사 하이라이트를 말합니다. 반사 조명은 확산 조명보다 더 강하며, 개체 표면에서 보다 빠르게 감소합니다. 반사 조명은 확산 조명보다 계산이 오래 걸리지만, 반사 조명을 사용하는 이점은 표면에 상당한 디테일을 추가할 수 있다는 것입니다.

발광 조명은 개체(예: 불빛)에서 발산하는 빛입니다. 발광은 렌더링된 개체가 자체 발광하는 것처럼 보이게 합니다. 발광은 개체의 색에 영향을 미칩니다. 예를 들어 어두운 재료를 밝게 만들고 발산되는 색을 부분적으로 띠게 만들 수 있습니다.

이러한 유형의 각 조명을 3D 장면에 적용하여 사실적인 조명을 얻을 수 있습니다. 주변, 발광, 확산 구성 요소에 대해 계산한 값은 확산 꼭짓점 색으로 출력되고, 반사 조명 구성 요소에 대한 값은 반사 꼭짓점 색으로 출력됩니다. 주변, 확산, 반사 광원 값은 특정 광원의 감쇠 및 스포트라이트 계수에 영향을 받을 수 있습니다. 감쇠 및 스포트라이트 계수를 참조하세요.

더 사실적인 조명 효과를 얻기 위해 광원을 추가하지만, 장면은 렌더링하는 데 시간이 더 많이 걸립니다. 디자이너가 원하는 모든 효과를 얻기 위해 일부 게임은 일반적으로 사용하는 것보다 더 강력한 CPU를 사용합니다. 이러한 경우에는 텍스처 맵을 사용함과 동시에 조명 맵과 환경 맵을 사용하여 장면에 조명을 추가하는 방법으로 조명 계산의 수를 줄이는 것이 일반적입니다.

조명은 카메라 공간에서 계산됩니다. 카메라 공간 변형을 참조하세요. 일반 벡터가 이미 정규화되어 있고, 꼭짓점 혼합이 필요하지 않으며, 변환 매트릭스가 직교하는 등 특수 조건이 존재하는 경우에는 모델 공간에서 최적화된 조명을 계산할 수 있습니다.

월드 매트릭스의 반전을 사용하여 광원의 위치 및 방향을 카메라 위치와 함께 모델 공간으로 변환하는 방법을 통해 모든 조명 계산은 모델 공간에서 이루어집니다. 결과적으로 세계 또는 보기 매트릭스가 비균등 크기 조정을 도입하는 경우, 그 결과로 얻는 조명은 부정확할 수 있습니다.

이 섹션의 내용

주제 설명

주변 조명

주변 광원은 장면에 일정한 조명을 제공합니다. 또한 꼭짓점 법선, 조명 방향, 조명 위치 또는 감쇠를 비롯한 다른 조명 요소의 영향을 받지 않기 때문에 모든 개체 꼭짓점을 동일하게 비춥니다. 주변 광원은 모든 방향에서 일정하며 개체의 모든 픽셀에 동일한 색을 지정합니다. 따라서 계산이 빠르지만 개체가 편평해 보이고 사실성이 떨어집니다.

확산 조명

확산 조명은 조명 방향과 개체 표면 법선 모두에 따라 달라집니다. 확산 조명은 조명 방향 및 표면 법선 벡터의 변화로 인해 개체 표면 전반에 걸쳐 달라집니다. 각 개체 꼭짓점마다 달라지기 때문에 확산 조명을 계산하는 데 시간이 더 오래 걸리지만, 개체에 그늘을 드리워 3차원(3D) 깊이를 만들어낸다는 것이 확산 조명 사용의 이점이기도 합니다.

반사 조명

반사 조명은 빛이 개체 표면에 닿았다가 카메라를 향해 반사하면서 발생하는 밝은 반사 하이라이트를 말합니다. 반사 조명은 확산 조명보다 더 강하며, 개체 표면에서 보다 빠르게 감소합니다. 반사 조명은 확산 조명보다 계산이 오래 걸리지만, 반사 조명을 사용하는 이점은 표면에 상당한 디테일을 추가할 수 있다는 것입니다.

발광 조명

발광 조명은 개체(예: 불빛)에서 발산하는 빛입니다. 발광은 렌더링된 개체가 자체 발광하는 것처럼 보이게 합니다. 발광은 개체의 색에 영향을 미칩니다. 예를 들어 어두운 재료를 밝게 만들고 발산되는 색을 부분적으로 띠게 만들 수 있습니다.

카메라 공간 변환

카메라 공간의 꼭짓점은 개체 꼭짓점을 세계 좌표 뷰 매트릭스로 변환하여 컴퓨팅됩니다.

감쇠 및 스포트라이트 계수

전역 조명 수식의 확산 및 반사 조명 구성 요소에는 조명 감쇠와 스포트라이트 원뿔을 설명하는 용어가 있습니다.

 

조명과 재료