D3DXSHEvalConeLight 함수 (D3dx9math)

상수 강도의 원뿔 인 조명을 계산 하 고 spectral 구면 (구면) 데이터를 반환 합니다.

구문

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

매개 변수

순서 [ 진행]

형식: UINT

SH evaluation의 순서입니다. D3DXSH _ MINORDER 에서 D3DXSH _ maxorder (포함) 사이 여야 합니다. 평가는 주문 ² 계수를 생성 합니다. 평가 수준은 순서-1입니다.

Pdir [ 진행]

형식: Const D3DXVECTOR3 *

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

Radius [ 진행]

형식: FLOAT

원뿔의 반지름 (라디안)입니다.

Rintensity [ 진행]

형식: FLOAT

조명의 빨강 강도입니다.

Gintensity [ 진행]

형식: FLOAT

조명의 녹색 강도입니다.

Bintensity [ 진행]

형식: FLOAT

조명의 파란색 강도입니다.

Prout [ 제한이]

형식: FLOAT*

Red 구성 요소의 output SH vector에 대 한 포인터입니다.

Pgout [ 제한이]

형식: FLOAT*

녹색 구성 요소의 output SH vector에 대 한 포인터입니다.

Pout [ 제한이]

형식: FLOAT*

Blue 구성 요소의 output SH vector에 대 한 포인터입니다.

반환 값

유형: HRESULT

함수가 성공 하면 반환 값은 D3D _ OK입니다. 함수가 실패 하면 반환 값은 D3DERR invalidcall 일 수 있습니다 _ .

설명

상수 강도의 원뿔 인 조명을 계산 하 고 spectral SH 데이터를 반환 합니다. 출력 벡터가 계산 되므로, 강도 비율 R/G/B가 1 이면 광원 바로 아래에 있는 점의 종료 radiance (albedo가 1 인 확산 개체의 원뿔 방향 중심)은 1.0입니다. 3 개의 spectral 샘플을 계산 합니다. pgoutpout 이 반환 되는 동안에는 prout 이 반환 됩니다.

다음 그림에 표시 된 것 처럼 단위 반지름을 사용 하는 구에 대해 방향은 테타, 오른쪽 방향의z 축에 대 한 각도 및 화 (z의 각도)를 사용 하 여 간단 하 게 지정할 수 있습니다.

단위 반지름이 있는 구의 그림

다음 수식은 단위 구의 데카르트 (x, y, z) 및 구면 (테타, 화) 좌표 간 관계를 보여 줍니다. 각도 테타는 0에서 2 pi 사이의 범위에 따라 다르지만, 화이 0에서 pi 사이에 차이가 있습니다.

데카르트 및 구면 좌표 간의 관계 수식

요구 사항

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

참고 항목

수학 함수

Direct3D 9 (사전 계산 Radiance Transfer)