Freigeben über


ID3DXPRTEngine::ComputeSSAdaptive-Methode

Berechnet einen Übertragungsvektor, der die Quellstrahlung der Ausstrahlung aufgrund der Streuung des Untergrunds ordnet, wobei adaptive Sampling- und Materialeigenschaften verwendet werden, die von ID3DXPRTEngine::SetMeshMaterials festgelegt werden. Die Methode generiert neue Scheitelpunkte und Flächen auf dem Gitter, um das vorberechnete PRT-Signal (Radiance Transfer) genauer anzunähern. Diese Methode kann nur für Materialien verwendet werden, die pro Vertex in einem Gitterobjekt definiert sind.

Syntax

HRESULT ComputeSSAdaptive(
  [in]      LPD3DXPRTBUFFER pDataIn,
  [in]      FLOAT           AdaptiveThresh,
  [in]      FLOAT           MinEdgeLength,
  [in]      UINT            MaxSubdiv,
  [in, out] LPD3DXPRTBUFFER pDataOut,
  [in, out] LPD3DXPRTBUFFER pDataTotal
);

Parameter

pDataIn [in]

Typ: LPD3DXPRTBUFFER

Zeiger auf ein EINGABE-ID3DXPRTBuffer-Objekt , das das 3D-Objekt aus dem vorherigen Lichtsprung darstellt. Dieser Eingabepuffer muss über die richtige Anzahl von Farbkanälen verfügen, die für die Simulation zugewiesen sind.

AdaptiveThresh [in]

Typ: FLOAT

Schwellenwert für den PRT-Vektor, der zum Unterteilen von Netzvertices und -flächen verwendet werden soll. Wenn kleiner als 1e-6f ist, wird ein Standardwert von 1e-6f angegeben.

MinEdgeLength [in]

Typ: FLOAT

Minimale Gesichtsrandlänge, die bei der adaptiven Stichprobenerstellung generiert wird. Wenn die -Methode feststellt, dass der Wert zu klein ist, wird ein modellabhängiger Wert angegeben.

MaxSubdiv [in]

Typ: UINT

Maximale Unterteilung eines Gesichts, der bei der adaptiven Stichprobenentnahme verwendet wird. Bei Null wird der Standardwert 4 angegeben.

pDataOut [ein, aus]

Typ: LPD3DXPRTBUFFER

Zeiger auf ein ID3DXPRTBuffer-Ausgabeobjekt , das einen einzelnen Absprung des unter der Oberfläche gestreuten Lichts modelliert. Dieser Ausgabepuffer muss über die richtige Anzahl von Farbkanälen verfügen, die für die Simulation zugewiesen sind.

pDataTotal [ein, aus]

Typ: LPD3DXPRTBUFFER

Zeiger auf ein optionales ID3DXPRTBuffer-Objekt , das die ausgeführte Summe aller vorherigen pDataOut-Ausgaben darstellt. Kann NULL sein.

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

Um die Unteroberflächestreuung zu modellieren, rufen Sie diese Methode für jeden Lichtsprung auf, nachdem eine ID3DXPRTEngine::ComputeDirectLightingSHAdaptive-Methode aufgerufen wurde.

Die Ausgabe dieser Methode enthält keine Albedo, und nur eingehendes Licht ist in den Simulator integriert. Wenn Sie die Albedo nicht multiplizieren, können Sie die Albedovariation in einem feineren Maßstab als die Quellstrahlung modellieren, wodurch genauere Ergebnisse der Komprimierung erzielt werden.

Rufen Sie ID3DXPRTEngine::MultiplyAlbedo auf, um jeden PRT-Vektor mit dem Albedo zu multiplizieren.

Anforderungen

Anforderung Wert
Header
D3DX9Mesh.h
Bibliothek
D3dx9.lib

Siehe auch

ID3DXPRTEngine

ID3DXPRTEngine::ComputeBounce

ID3DXPRTEngine::ComputeSS