안개 수식(Direct3D 9)

C++ 애플리케이션은 Microsoft Direct3D가 먼 거리에서 안개 효과를 계산하는 방법을 변경하여 안개가 장면의 개체 색에 미치는 영향을 제어할 수 있습니다. D3DFOGMODE 열거형 형식에는 3개의 안개 수식을 식별하는 멤버가 포함되어 있습니다. 모든 수식은 애플리케이션이 설정하는 매개 변수를 고려하여 안개 계수를 거리 함수로 계산합니다.

선형 안개

다음 D3DFOG_LINEAR 수식을 사용하여 설정합니다.

direct3d 선형 안개의 수식

where

  • start는 안개 효과가 시작되는 거리입니다.
  • end는 안개 효과가 더 이상 증가하지 않는 거리입니다.
  • d는 깊이 또는 뷰포인트와의 거리를 나타냅니다. 범위 기반 안개의 경우 d 값은 카메라 위치와 꼭짓점 사이의 거리입니다. 범위 기반이 아닌 안개의 경우 d 값은 카메라 공간에서 Z 좌표의 절대값입니다.

지수 안개

선형 및 지수 수식은 픽셀 안개와 꼭짓점 안개 모두에 지원됩니다.

다음 D3DFOG_EXP 수식으로 설정됩니다.

direct3d 지수 안개의 수식

where

  • e는 자연 로그(약 2.71828)의 기반입니다.
  • 밀도는 0.0에서 1.0까지의 임의 안개 밀도입니다.
  • d는 앞에서 설명한 대로 깊이 또는 뷰포인트와의 거리를 나타냅니다.

다음 D3DFOG_EXP2 수식으로 설정됩니다.

direct3d 지수 2 안개의 수식

where

  • e는 위에서 설명한 대로 자연 로그의 기반입니다.
  • 밀도는 위에서 설명한 대로 0.0에서 1.0까지의 범위가 될 수 있는 임의 안개 밀도입니다.
  • d는 위에서 설명한 대로 깊이 또는 뷰포인트와의 거리를 나타냅니다.

참고

시스템은 꼭짓점에 대한 반사 색의 알파 구성 요소에 안개 요소를 저장합니다. 애플리케이션이 자체 변환 및 조명을 수행하는 경우 렌더링 중에 시스템에서 적용할 안개 계수 값을 수동으로 삽입할 수 있습니다.

 

다음 그래프에서는 수식 매개 변수와 같이 공통 값을 사용하여 이러한 수식을 보여 줍니다.

거리 및 색 양에 대한 안개 수식 그래프

D3DFOG_LINEAR 시작 시 1.0, 종료 시 0.0입니다. 근거리 또는 먼 평면을 기준으로 측정되지 않습니다.

Direct3D는 안개 효과를 계산할 때 다음 혼합 수식의 앞의 수식 중 하나에서 안개 계수 를 사용합니다.

direct3d에 대한 안개 효과의 수식

이 수식은 안개 계수 f에 의해 현재 다각형 C의 색을 효과적으로 스케일링하고 안개 계수의 비트 역으로 스케일링된 안개 색 C에 제품을 추가합니다. 결과 색 값은 안개 색과 원래 색을 거리의 요소로 혼합한 것입니다. 이 수식은 Microsoft DirectX 7.0 이상에서 지원되는 모든 디바이스에 적용됩니다. 레거시 램프 디바이스의 경우 안개 계수는 확산 및 반사 색 구성 요소를 0.0 및 1.0 범위(포함)로 고정합니다. 안개 계수는 일반적으로 가까운 평면의 경우 1.0에서 시작하여 먼 평면에서 0.0으로 감소합니다.

안개 유형