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 |
|
Bibliothek |
|
Siehe auch