다음을 통해 공유


ID3DXPRTEngine::ComputeVolumeSamples 메서드

이전 광원 바운스에서 지정된 위치에서 인시던트 광채를 나타내는 SH(구형 고조파) 기본 벡터로 직접 조명의 프로젝션을 계산합니다.

구문

HRESULT ComputeVolumeSamples(
  [in]            LPD3DXPRTBUFFER pSurfDataIn,
  [in]            UINT            Order,
  [in]            UINT            NumVolSamples.xml,
  [in]      const D3DXVECTOR3     *pSampleLocs,
  [in, out]       LPD3DXPRTBUFFER pDataOut
);

매개 변수

pSurfDataIn [in]

형식: LPD3DXPRTBUFFER

이전 광원에서 3D 개체를 나타내는 입력 ID3DXPRTBuffer 개체에 대한 포인터입니다.

주문 [in]

형식: UINT

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

NumVolSamples.xml [in]

형식: UINT

샘플 위치 수입니다.

pSampleLocs [in]

형식: const D3DXVECTOR3*

각 샘플의 위치입니다. pSampleLocs가 NULL인 경우 ComputeVolumeSamples는 모든 메시 꼭짓점에서 전송 매트릭스를 계산합니다. 그러나 pSampleLocs가 NULL이 아닌 경우 구를 샘플링해야 합니다(ID3DXPRTEngine::SetSamplingInfo에서 UseSphere = TRUE 및 UseCosine = FALSE 설정); 그렇지 않으면 ComputeVolumeSamples는 D3DERR_INVALIDCALL 반환합니다.

pDataOut [in, out]

형식: LPD3DXPRTBUFFER

이전 조명에서 SH 기본 벡터로 반송되는 직접 조명을 투영하는 출력 ID3DXPRTBuffer 개체에 대한 포인터입니다. 이 버퍼에는 시뮬레이션에 할당된 적절한 수의 색 채널이 있어야 합니다.

반환 값

형식: HRESULT

메서드가 성공하면 반환 값이 D3D_OK. 메서드가 실패하면 반환 값은 D3DERR_INVALIDCALL, E_OUTOFMEMORY 중 하나일 수 있습니다.

설명

이 메서드는 원본 광원 함수의 빛이 장면(pSurfDataIn)을 나타내는 표면에서 반사되고 pSampleLocs로 지정된 공간의 각 지점에 도착하는 방법을 계산합니다. SH 계수는 전송된 인시던트 광채에 대한 원본 광채의 각 pSampleLocs 지점에서 매핑을 나타냅니다.

요구 사항

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

추가 정보

ID3DXPRTEngine

ID3DXPRTEngine::ComputeVolumeSamplesDirectSH