D3DXSHEvalDirectionalLight 함수(D3dx9math.h)

참고

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

참고

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

방향 광원을 평가하고 SH(스펙트럼 구형 고조파) 데이터를 반환합니다.

구문

HRESULT D3DXSHEvalDirectionalLight(
  _In_        UINT        Order,
  _In_  const D3DXVECTOR3 *pDir,
  _In_        FLOAT       RIntensity,
  _In_        FLOAT       GIntensity,
  _In_        FLOAT       BIntensity,
  _Out_       FLOAT       *pROut,
  _Out_       FLOAT       *pGOut,
  _Out_       FLOAT       *pBOut
);

매개 변수

주문 [in]

형식: UINT

SH 평가 순서입니다. D3DXSH_MAXORDER D3DXSH_MINORDER 범위여야 합니다. 평가는 Order² 계수를 생성합니다. 평가 수준은 Order - 1입니다.

pDir [in]

형식: const D3DXVECTOR3*

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

RIntensity [in]

형식: FLOAT

빛의 빨간색 강도입니다.

GIntensity [in]

형식: FLOAT

빛의 녹색 강도입니다.

BIntensity [in]

형식: FLOAT

빛의 파란색 강도입니다.

pROut [out]

형식: FLOAT*

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

pGOut [out]

형식: FLOAT*

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

pBOut [out]

형식: FLOAT*

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

반환 값

형식: HRESULT

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

설명

출력 벡터는 강도 비율 R/G/B가 1과 같으면 albedo가 1인 확산 개체의 광원 바로 아래에 있는 점의 결과 종료 광채가 1.0이 되도록 계산됩니다. 이렇게 하면 세 가지 스펙트럼 샘플이 계산됩니다. pROut 이 반환되고 pGOutpBOut 이 반환될 수 있습니다.

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

단위 반지름이 있는 구 그림

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

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

요구 사항

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

추가 정보

수학 함수

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