조명 수학(Direct3D 9)
Direct3D 조명 모델은 주변, 확산, 반사 및 발광 조명을 포함합니다. 따라서 광범위한 조명 상황을 해결하기에 충분한 유연성이 있습니다. 장면의 총 광원 양을 전역 조명으로 참조하고 다음 수식을 사용하여 계산합니다.
Global Illumination = Ambient Light + Diffuse Light + Specular Light + Emissive Light
주변 조명(Direct3D 9) 은 일정한 조명입니다. 모든 방향으로 상수이며 개체의 모든 픽셀에 동일한 색을 지정합니다. 따라서 계산이 빠르지만 개체가 편평해 보이고 사실성이 떨어집니다. Direct3D에서 주변 조명을 계산하는 방법을 보려면 주변 조명(Direct3D 9)을 참조하세요.
확산 조명(Direct3D 9) 은 조명 방향과 개체 표면 표준 모두에 따라 달라집니다. 변경된 조명 방향과 변화하는 표면 숫자 벡터의 결과로 개체의 표면에 따라 달라집니다. 각 개체 꼭짓점마다 달라지기 때문에 확산 조명을 계산하는 데 시간이 더 오래 걸리지만, 개체에 그늘을 드리워 3차원(3D) 깊이를 만들어낸다는 것이 확산 조명 사용의 이점이기도 합니다. Direct3D에서 확산 조명을 계산하는 방법을 보려면 확산 조명(Direct3D 9)을 참조하세요.
반사 조명(Direct3D 9) 은 빛이 개체 표면에 닿고 카메라를 향해 다시 반사할 때 발생하는 밝은 반사 하이라이트를 식별합니다. 그것은 확산 빛보다 더 강렬하고 개체 표면을 가로 질러 더 빠르게 떨어집니다. 반사 조명은 확산 조명보다 계산이 오래 걸리지만, 반사 조명을 사용하는 이점은 표면에 상당한 디테일을 추가할 수 있다는 것입니다. Direct3D에서 반사 조명을 계산하는 방법을 보려면 반사 조명(Direct3D 9)을 참조하세요.
발광 조명(Direct3D 9) 은 개체에서 내보내는 광원입니다. 예를 들어 네온입니다. Direct3D에서 발광 조명을 계산하는 방법을 보려면 발광 조명(Direct3D 9)을 참조하세요.
이러한 유형의 각 조명을 3D 장면에 적용하여 사실적인 조명을 얻을 수 있습니다. 주변, 발광, 확산 구성 요소에 대해 계산한 값은 확산 꼭짓점 색으로 출력되고, 반사 조명 구성 요소에 대한 값은 반사 꼭짓점 색으로 출력됩니다. 주변, 확산, 반사 광원 값은 특정 광원의 감쇠 및 스포트라이트 계수에 영향을 받을 수 있습니다. 감쇠 작동 방식에 대한 자세한 내용은 감쇠 및 스포트라이트 요소(Direct3D 9)를 참조하세요.
더 사실적인 조명 효과를 얻기 위해 광원을 추가하지만, 장면은 렌더링하는 데 시간이 더 많이 걸립니다. 디자이너가 원하는 모든 효과를 얻기 위해 일부 게임은 일반적으로 사용하는 것보다 더 강력한 CPU를 사용합니다. 이러한 경우에는 텍스처 맵을 사용함과 동시에 조명 맵과 환경 맵을 사용하여 장면에 조명을 추가하는 방법으로 조명 계산의 수를 줄이는 것이 일반적입니다.
조명은 카메라 공간에서 계산됩니다. 조명 변환을 계산하는 방법을 보려면 카메라 공간 변환(Direct3D 9)을 참조하세요. 특수 조건이 있는 경우 모델 공간에서 최적화된 조명을 계산할 수 있습니다. 일반 벡터가 이미 정규화되어 있습니다(D3DRS_NORMALIZENORMALS True임), 꼭짓점 혼합이 필요하지 않음, 변환 행렬은 직교 등입니다.
관련 항목