DirectX Graphics 프로그래밍 가이드 고도의 주제 프레임 버퍼 포그(안개:fog)의 종류 포그(안개:fog)색   [목차열람] [주소복사] [슬롯비우기]
포그(안개:fog)색
 
Microsoft DirectX 9.0

포그(안개:fog)색


픽셀 포그(안개:fog) 및 정점 포그(안개:fog)의 양쪽 모두의 포그(안개:fog)색은,D3DRS_FOGCOLOR 렌더링 스테이트를 사용해 설정한다. 렌더링 스테이트값은, RGBA 색으로서 지정하는 임의의 RGB 색이다. 알파 성분은 무시된다.

다음의 C++ 코드는, 포그(안개:fog)색을 흰색으로 설정한다.

/* For this example, the d3dDevice variable is
 * a valid pointer to an IDirect3DDevice9 interface.
 */
HRESULT hr;
hr = d3dDevice->SetRenderState(
                    D3DRS_FOGCOLOR,
                    0x00FFFFFF); // Highest 8 bits are not used.
if(FAILED(hr))
    return hr;

포그(안개:fog)의 적용은, 고정 기능 파이프라인을 사용하는 경우와 프로그래밍 가능한 파이프라인을 사용하는 경우와는 다르다.

  1. 드라이버가 D3DPMISCCAPS_FOGANDSPECULARALPHA 를 지원 하고 있는 경우
    • 고정 기능 파이프라인을 사용하는 경우로,D3DRS_FOGCOLOR 를 설정했을 경우는, 픽셀 셰이더의 v1.w 는 포그(안개:fog) 렌더링 스테이트로 설정한 값과 동일해진다.
    • 프로그래밍 가능한 파이프라인을 사용하는 경우는, 정점 셰이더로 명시적으로 oD1.w 를 기술하고 있는 경우에서도, 픽셀 셰이더의 v1.w 는 0 이 된다.
  2. 드라이버가 D3DPMISCCAPS_FOGANDSPECULARALPHA 를 지원 하고 있지 않는 경우
    • 고정 기능 파이프라인을 사용하는 경우로,D3DRS_FOGCOLOR 를 설정했을 경우는, 픽셀 셰이더의 v1.w 는 포그(안개:fog) 렌더링 스테이트로 설정한 값과 동일해진다.
    • 정점 셰이더로 oFog 가 명시적으로 기술되고 있는 경우는, 픽셀 셰이더의 v1.w 는, 0 ~ 1 에 제한된 oFog 와 동일해진다.
    • 위에의 2 개의 어느 것에도 해당하지 않는 경우는, 정점 셰이더로 명시적으로 oD1.w 를 기술하고 있는 경우에서도, 픽셀 셰이더의 v1.w 는 0 이 된다.

더 자세한 정보는, 「D3DPMISCCAPS 」를 참조할것.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP