D3DXSHEvalSphericalLight 함수(D3dx9math.h)

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

참고

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

참고

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

구문

HRESULT D3DXSHEvalSphericalLight(
  _In_        UINT        Order,
  _In_  const D3DXVECTOR3 *pPos,
  _In_        FLOAT       Radius,
  _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입니다.

pPos [in]

형식: const D3DXVECTOR3*

밝은 위치에 대한 포인터입니다.

Radius [in]

형식: FLOAT

구형 광원의 반경입니다.

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 수 있습니다.

설명

구형 광원을 평가하고 스펙트럼 SH 데이터를 반환합니다. 방향 광원처럼 조명 강도의 정규화가 없으므로 강도를 지정할 때 주의해야 합니다. 이렇게 하면 세 개의 스펙트럼 샘플이 계산됩니다. pROut 이 반환되고 pGOutpBOut 이 반환될 수 있습니다.

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

단위 반지름이 있는 구 그림

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

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

요구 사항

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

추가 정보

수학 함수

사전 계산된 방사형 전송(Direct3D 9)