D3DXSHEvalHemisphereLight 함수(D3dx9math.h)

참고

D3DX(D3DX 9, D3DX 10 및 D3DX 11) 유틸리티 라이브러리는 더 이상 사용되지 않으며 Windows 스토어 앱에서는 지원되지 않습니다.

참고

이 함수를 사용하는 대신 구형 고조파 수학 라이브러리 함수 XMSHEvalHemisphereLight를 사용하는 것이 좋습니다.

구에 있는 두 색 사이의 선형 보간인 조명을 평가합니다.

구문

HRESULT D3DXSHEvalHemisphereLight(
  _In_       UINT        Order,
  _In_ const D3DXVECTOR3 *pDir,
  _In_       D3DXCOLOR   Top,
  _In_       D3DXCOLOR   Bottom,
  _In_       FLOAT       *pROut,
  _In_       FLOAT       *pGOut,
  _In_       FLOAT       *pBOut
);

매개 변수

주문 [in]

형식: UINT

SH(구형 고조파) 평가의 순서입니다. D3DXSH_MAXORDER D3DXSH_MINORDER 범위여야 합니다. 평가는 Order² 계수를 생성합니다. 평가 수준은 Order - 1입니다.

pDir [in]

형식: const D3DXVECTOR3*

SH 기본 함수를 평가할 (x, y, z) 반구 축 방향 벡터에 대한 포인터입니다. 설명 부분을 참조하세요.

위쪽 [in]

형식: D3DXCOLOR

하늘색입니다.

아래쪽 [in]

형식: D3DXCOLOR

지면 색입니다.

pROut [in]

형식: FLOAT*

빨간색 구성 요소의 출력 SH 벡터에 대한 포인터입니다.

pGOut [in]

형식: FLOAT*

녹색 구성 요소의 출력 SH 벡터에 대한 포인터입니다.

pBOut [in]

형식: FLOAT*

파란색 구성 요소의 출력 SH 벡터에 대한 포인터입니다.

반환 값

형식: HRESULT

함수가 성공하면 반환 값이 D3D_OK. 함수가 실패하면 반환 값은 D3DERR_INVALIDCALL 수 있습니다.

설명

보간은 구의 표면이 아닌 두 점 사이에 선형으로 수행됩니다(즉, 축이 (0,0,1)이면 지근 각도가 아니라 Z로 선형입니다). 결과 구형 조명 함수는 그림자가 없는 완벽하게 확산된 표면의 점과 pDir 방향을 가리키는 표준이 1의 값으로 종료 광채를 발생시킬 수 있도록 정규화됩니다(위쪽 색이 흰색이고 아래쪽 색이 검은색인 경우). Top이 "하늘"의 강도를 나타내고 Bottom가 "지상"의 강도를 나타내는 매우 간단한 모델입니다.

다음 그림과 같이 단위 반경이 있는 구에서 방향은 단순히 theta, 오른쪽 방향의 z축에 대한 각도 및 z의 각도인 phi로 지정할 수 있습니다.

단위 반지름이 있는 구 그림

다음 수식은 단위 구의 카티전(x, y, z)과 구형(theta, phi) 좌표 간의 관계를 보여 줍니다. 각도 세타는 0에서 2 pi의 범위에 따라 다르지만 phi는 0에서 pi까지 다릅니다.

카티시안과 구형 좌표 간의 관계 방정식

요구 사항

요구 사항
헤더
D3dx9math.h
라이브러리
D3dx9.lib

추가 정보

수학 함수

사전 계산된 Radiance 전송(Direct3D 9)