ID3DXPRTEngine::ComputeSSAdaptive-Methode

Berechnet einen Übertragungsvektor, der die Quellradiusquelle zuweist, um die Auslassungsfläche zu beenden, die sich aus der Streuung der Unterfläche ergibt. Dazu werden adaptive Stichproben und Materialeigenschaften verwendet, die von ID3DXPRTEngine::SetMeshMaterialsfestgelegt wurden. Die -Methode generiert neue Scheitelpunkte und Gesichter im Netz, um das PRT-Signal (Precomputed Radiance Transfer) genauer anzunähern. Diese Methode kann nur für Materialien verwendet werden, die pro Scheitelpunkt in einem Gittermodellobjekt 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 lichten Hüpfen darstellt. Diesem Eingabepuffer muss die richtige Anzahl von Farbkanälen für die Simulation zugeordnet sein.

AdaptiveThresh [ In]

Typ: FLOAT

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

MinEdgeLength [ In]

Typ: FLOAT

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

MaxSubdiv [ In]

Typ: UINT

Maximale Unterteilungsebene eines Gesichts, die bei der adaptiven Stichprobenentnahme verwendet wird. Bei 0 (null) wird der Standardwert 4 angegeben.

pDataOut [ in, out]

Typ: LPD3DXPRTBUFFER

Zeiger auf ein ID3DXPRTBuffer-Ausgabeobjekt, das eine einzelne Abprallfläche des Lichts mit Streufläche modelliert. Diesem Ausgabepuffer muss die richtige Anzahl von Farbkanälen für die Simulation zugeordnet sein.

pDataTotal [ in, out]

Typ: LPD3DXPRTBUFFER

Zeiger auf ein optionales ID3DXPRTBuffer-Objekt, das die laufende Summe aller vorherigen pDataOut-Ausgaben ist. Kann NULL sein.

Rückgabewert

Typ: HRESULT

Wenn die Methode erfolgreich ist, lautet der Rückgabewert D3D _ OK. Wenn die Methode fehlschlägt, kann der Rückgabewert einer der folgenden Werte sein: D3DERR _ INVALIDCALL, E _ OUTOFMEMORY.

Bemerkungen

Rufen Sie diese Methode für jede Lichtpralltaste auf, nachdem eine ID3DXPRTEngine::ComputeDirectLightingSHAdaptive-Methode aufgerufen wurde, um das Streudiagramm der Unterfläche zu modellieren.

Die Ausgabe dieser Methode enthält nicht albedo, und nur eingehendes Licht ist in den Simulator integriert. Indem Sie den Albedo nicht multiplizieren, können Sie albedo-Variationen in einem feineren Maßstab als die Quellleistung modellieren und so genauere Ergebnisse der Komprimierung erzielen.

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

Requirements (Anforderungen)

Anforderung Wert
Header
D3DX9Mesh.h
Bibliothek
D3dx9.lib

Weitere Informationen

ID3DXPRTEngine

ID3DXPRTEngine::ComputeButnce

ID3DXPRTEngine::ComputeSS