Freigeben über


ID3DXPRTEngine::ComputeDirectLightingSHGPU-Methode

Verwendet die GPU, um den direkten Beleuchtungsbeitrag für 3D-Objekte zu berechnen, bei denen die Quellstrahlung durch eine sphärische harmonische Näherung (SH) dargestellt wird. Die Berechnung der Beleuchtung auf der GPU ist in der Regel viel schneller als auf der CPU.

Syntax

HRESULT ComputeDirectLightingSHGPU(
  [in]      LPDIRECT3DDEVICE9 pDevice,
  [in]      UINT              Flags,
  [in]      UINT              Order,
  [in]      FLOAT             ZBias,
  [in]      FLOAT             ZAngleBias,
  [in, out] LPD3DXPRTBUFFER   pDataOut
);

Parameter

pDevice [in]

Typ: LPDIRECT3DDEVICE9

Zeiger auf das IDirect3DDevice9-Geräteobjekt , das zum Ausführen der Simulation auf der GPU verwendet wird. Das Gerät muss ps_2_0 Pixelshader unterstützen.

Hinweis

Rückruffunktionen sollten nicht das vom GPU-Simulator verwendete IDirect3DDevice9-Geräteobjekt verwenden.

 

Flaggen [in]

Typ: UINT

GPU-Simulationsparameter, der die Auflösung des Schatten-Z-Puffers definiert. Sollte auf einen der konstanten Werte von D3DXSHGPUSIMOPT festgelegt werden. Zur Angabe einer Simulation mit höherer Genauigkeit kann der D3DXSHGPUSIMOPT_HIGHQUALITY-Wert mit einem der D3DXSHGPUSIMOPT_SHADOWRESxxx-Werte kombiniert werden.

Reihenfolge [in]

Typ: UINT

Reihenfolge der SH-Auswertung. Muss im Bereich der D3DXSH_MINORDER liegen, um D3DXSH_MAXORDER inklusive. Die Auswertung generiert Order²-Koeffizienten. Der Grad der Auswertung ist Order - 1.

ZBias [in]

Typ: FLOAT

Verzerrung in normaler Richtung.

ZAngleBias [in]

Typ: FLOAT

Verzerrung in normaler Richtung, skaliert um eins minus dem Kosinus des Winkels mit dem Lichtstrahl.

pDataOut [in, out]

Typ: LPD3DXPRTBUFFER

Zeiger auf ein ID3DXPRTBuffer-Objekt . Dieser Puffer muss über die richtige Anzahl von Farbkanälen verfügen, die der Simulation zugeordnet sind.

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

Bei dieser Methode wird die Albedo nicht mit dem Lichtsignal multipliziert, und nur eingehendes Licht wird in den Simulator integriert. Wenn Sie die Albedo nicht multiplizieren, können Sie die Albedovariation in einem feineren Maßstab als die Quellstrahlung modellieren und so genauere Ergebnisse der Komprimierung erzielen.

Rufen Sie MultiplyAlbedo auf, um jeden vorberechneten PRT-Vektor (Radiance Transfer) mit dem Albedo zu multiplizieren.

Anforderungen

Anforderung Wert
Header
D3DX9Mesh.h
Bibliothek
D3dx9.lib

Siehe auch

ID3DXPRTEngine