D3DXSHEvalDirectionalLight 함수(D3DX10.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,
  _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) 반구 축 방향 벡터에 대한 포인터입니다. 설명 부분을 참조하세요.

RIntensity [in]

형식: FLOAT

빛의 빨간색 강도입니다.

GIntensity [in]

형식: FLOAT

빛의 녹색 강도입니다.

BIntensity [in]

형식: FLOAT

빛의 파란색 강도입니다.

pROut [in]

형식: FLOAT*

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

pGOut [in]

형식: FLOAT*

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

pBOut [in]

형식: FLOAT*

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

반환 값

형식: HRESULT

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

설명

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

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

단위 반지름이 있는 구 그림

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

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

요구 사항

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

추가 정보

수학 함수