Freigeben über


ID3DXPRTEngine::ComputeVolumeSamplesDirectSH-Methode

Berechnet eine Projektion entfernter Beleuchtung in sphärische harmonische Basisvektoren (SH), die die Einfallsstrahlung an bestimmten Stellen darstellen.

Syntax

HRESULT ComputeVolumeSamplesDirectSH(
  [in]            UINT            OrderIn,
  [in]            UINT            OrderOut,
  [in]            UINT            NumVolSamples.xml,
  [in]      const D3DXVECTOR3     *pSampleLocs,
  [in, out]       LPD3DXPRTBUFFER pDataOut
);

Parameter

OrderIn [in]

Typ: UINT

Reihenfolge der SH-Darstellung der fernen Beleuchtung. Muss im Bereich der D3DXSH_MINORDER liegen, um D3DXSH_MAXORDER zu D3DXSH_MAXORDER, einschließlich. Der Grad der Auswertung ist OrderIn - 1.

OrderOut [in]

Typ: UINT

Reihenfolge der SH-Darstellung der lokalen Beleuchtung. Muss im Bereich der D3DXSH_MINORDER liegen, um D3DXSH_MAXORDER zu D3DXSH_MAXORDER, einschließlich. Der Grad der Auswertung ist OrderOut - 1.

NumVolSamples.xml [in]

Typ: UINT

Anzahl der Beispielspeicherorte.

pSampleLocs [in]

Typ: const D3DXVECTOR3*

Position für jedes Beispiel.

pDataOut [ein, aus]

Typ: LPD3DXPRTBUFFER

Zeiger auf ein ID3DXPRTBuffer-Ausgabeobjekt , das die entfernte Beleuchtung in SH-Basisvektoren projiziert. Dieser Puffer muss über die richtige Anzahl von Farbkanälen verfügen, die für die Simulation zugewiesen sind. Diese Methode generiert OrderIn² * OrderOut"² Skalare pro Kanal an jedem Beispielstandort.

Rückgabewert

Typ: HRESULT

Wenn die Methode erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Methode fehlschlägt, kann der Rückgabewert einer der folgenden sein: D3DERR_INVALIDCALL, E_OUTOFMEMORY.

Bemerkungen

Diese Methode berechnet, wie Licht von einer entfernten Quelle an jedem Punkt im durch pSampleLocs angegebenen Raum ankommt. Die SH-Koeffizienten stellen an jedem pSampleLocs-Punkt die Zuordnung der Quellstrahlung zur übertragenen Incidentstrahlung dar.

Um diese Methode erfolgreich zu verwenden, müssen Sie die Stichprobenentnahme für eine Kugel mit UseSphere = TRUE und UseCosine = FALSE in ID3DXPRTEngine::SetSamplingInfo festlegen; Andernfalls gibt diese Methode einen Fehler mit D3DERR_INVALIDCALL zurück.

Anforderungen

Anforderung Wert
Header
D3DX9Mesh.h
Bibliothek
D3dx9.lib

Siehe auch

ID3DXPRTEngine

ID3DXPRTEngine::ComputeVolumeSamples