ID3DXPRTEngine::ComputeSSAdaptive 메서드
ID3DXPRTEngine::SetMeshMaterials에서 설정한 적응 샘플링 및 재질 속성을 사용하여 하위 표면 산란으로 인한 광도를 종료하도록 원본 광채를 매핑하는 전송 벡터를 계산합니다. 메서드는 PRT(사전 계산된 광도 전송) 신호를 보다 정확하게 근사화하기 위해 메시에 새 꼭짓점과 얼굴을 생성합니다. 이 메서드는 메시 개체의 꼭짓점당 정의된 재질에만 사용할 수 있습니다.
구문
HRESULT ComputeSSAdaptive(
[in] LPD3DXPRTBUFFER pDataIn,
[in] FLOAT AdaptiveThresh,
[in] FLOAT MinEdgeLength,
[in] UINT MaxSubdiv,
[in, out] LPD3DXPRTBUFFER pDataOut,
[in, out] LPD3DXPRTBUFFER pDataTotal
);
매개 변수
-
pDataIn [in]
-
형식: LPD3DXPRTBUFFER
이전 광원에서 3D 개체를 나타내는 입력 ID3DXPRTBuffer 개체에 대한 포인터입니다. 이 입력 버퍼에는 시뮬레이션에 할당된 적절한 수의 색 채널이 있어야 합니다.
-
AdaptiveThresh [in]
-
형식: FLOAT
메시 꼭짓점 및 얼굴을 세분화하는 데 사용할 PRT 벡터의 임계값입니다. 1e-6f 미만이면 기본값인 1e-6f가 지정됩니다.
-
MinEdgeLength [in]
-
형식: FLOAT
적응 샘플링에서 생성되는 최소 얼굴 가장자리 길이입니다. 메서드가 값이 너무 작다고 판단하면 모델 종속 값이 지정됩니다.
-
MaxSubdiv [in]
-
형식: UINT
적응 샘플링에 사용할 얼굴의 최대 세분화 수준입니다. 0이면 기본값 4가 지정됩니다.
-
pDataOut [in, out]
-
형식: LPD3DXPRTBUFFER
표면 분산 광원의 단일 바운스를 모델링하는 출력 ID3DXPRTBuffer 개체에 대한 포인터입니다. 이 출력 버퍼에는 시뮬레이션에 할당된 적절한 수의 색 채널이 있어야 합니다.
-
pDataTotal [in, out]
-
형식: LPD3DXPRTBUFFER
모든 이전 pDataOut 출력의 실행 합계인 선택적 ID3DXPRTBuffer 개체에 대한 포인터입니다. NULL일 수 있습니다.
반환 값
형식: HRESULT
메서드가 성공하면 반환 값이 D3D_OK. 메서드가 실패하면 반환 값은 D3DERR_INVALIDCALL, E_OUTOFMEMORY 중 하나일 수 있습니다.
설명
하위 표면 분산을 모델링하려면 ID3DXPRTEngine::ComputeDirectLightingSHAdaptive 메서드가 호출된 후 각 광원 바운스에 대해 이 메서드를 호출합니다.
이 메서드의 출력에는 albedo가 포함되지 않으며 들어오는 광원만 시뮬레이터에 통합됩니다. albedo를 곱하지 않으면 원본 광채보다 더 미세한 크기로 albedo 변형을 모델링하여 압축에서 더 정확한 결과를 얻을 수 있습니다.
ID3DXPRTEngine::MultiplyAlbedo를 호출하여 각 PRT 벡터를 albedo에 곱합니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|
추가 정보