ID3DXPRTEngine-Schnittstelle
Die ID3DXPRTEngine-Schnittstelle wird verwendet, um eine vorberechnete PRT-Simulation (Radiance Transfer) zu berechnen. Die Methoden werden in der Regel offline verwendet, um Vektoren pro Scheitel oder pro Texel vor der 3D-Echtzeitmodellierung zu berechnen.
Member
Die ID3DXPRTEngine-Schnittstelle erbt von der IUnknown-Schnittstelle . ID3DXPRTEngine verfügt auch über folgende Membertypen:
Methoden
Die ID3DXPRTEngine-Schnittstelle verfügt über diese Methoden.
Methode | BESCHREIBUNG |
---|---|
ClosestRayIntersects | Verwendet effizientes Raytracing in vorberechneten PRT-Simulationen (Radiance Transfer), um zu bestimmen, ob ein Strahl ein Gitter überschneidet. Wenn eine Schnittmenge gefunden wird, gibt die Methode den Index der nächstgelegenen Gitterfläche zurück, die vom Strahl getroffen wird, und die baryzentrischen Koordinaten des Schnittpunkts. |
ComputeBounce | Berechnet die Strahlkraft der Quelle, die sich aus einem einzelnen Sprung von interreflektiertem Licht ergibt. Diese Methode kann für jede beleuchtete Szene verwendet werden, einschließlich eines sphärischen harmonischen (SH)-basierten PRT-Modells (Precomputed Radiance Transfer). |
ComputeBounceAdaptive | Berechnet die Strahlkraft der Quelle, die sich aus einem einzelnen Sprung von interreflektiertem Licht mit adaptivem Sampling ergibt. Diese Methode generiert neue Scheitelpunkte und Gesichter im Gitter, um das vorberechnete PRT-Signal (Radiance Transfer) genauer zu nähern. Diese Methode kann für jede beleuchtete Szene verwendet werden, einschließlich eines sphärischen harmonischen (SH)-basierten PRT-Modells. |
ComputeDirectLightingSH | Berechnet den direkten Beleuchtungsbeitrag zu 3D-Objekten, bei denen die Quellstrahlung durch eine sphärische harmonische Näherung (SH) dargestellt wird. |
ComputeDirectLightingSHAdaptive | Berechnet den direkten Beleuchtungsbeitrag zu 3D-Objekten, bei denen die Quellstrahlung durch eine sphärische harmonische Näherung (SH) dargestellt wird, wobei adaptive Stichproben verwendet werden. Diese Methode generiert neue Scheitelpunkte und Gesichter im Gitter, um das vorberechnete PRT-Signal (Radiance Transfer) genauer zu nähern. |
ComputeDirectLightingSHGPU | 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. |
ComputeLDPRTCoeffs | Berechnet lokal deformierbare vorberechnete Radianzübertragungskoeffizienten (LDPRT) relativ zu normalen Vektoren pro Stichprobe, um den Fehler mit den kleinsten Quadraten in Bezug auf id3DXPRTBuffer-Daten zu minimieren. Diese Koeffizienten können mit skinned oder transformierten Normalvektoren verwendet werden, um globale Effekte auf dynamische Objekte zu modellieren. |
Computess | Berechnet die Quellstrahlung, die sich aus der Streuung unter der Oberfläche ergibt, unter Verwendung von Materialeigenschaften, die von ID3DXPRTEngine::SetMeshMaterials festgelegt werden. Diese Methode kann nur für Materialien verwendet werden, die pro Vertex in einem Gitterobjekt definiert sind. |
ComputeSSAdaptive | Berechnet einen Übertragungsvektor, der die Quellradianz mit der Ausstrahlung aus der Streuung unter der Oberfläche ordnet, wobei adaptive Sampling- und Materialeigenschaften verwendet werden, die von ID3DXPRTEngine::SetMeshMaterials festgelegt werden. Die Methode generiert neue Scheitelpunkte und Gesichter im Gitter, um das vorberechnete Radiance Transfer (PRT)-Signal genauer zu nähern. Diese Methode kann nur für Materialien verwendet werden, die pro Vertex in einem Gitterobjekt definiert sind. |
ComputeSurfSamplesBounce | Berechnet vorab berechnete PRT-Stichproben (Radiance Transfer) für einen beliebigen Punkt (und einen normalen Vektor). |
ComputeSurfSamplesDirectSH | Berechnet an einem beliebigen Punkt, der nicht auf einem Gitter liegt, einen Übertragungsvektor, der die Quellstrahlung (dargestellt durch eine sphärische harmonische (SH)-Näherung) ordnet, um die Strahlkraft zu verlassen. |
ComputeVolumeSamples | Berechnet eine Projektion der direkten Beleuchtung vom vorherigen Lichtsprung in sphärische harmonische (SH)-Basisvektoren, die die Einstrahlung an bestimmten Stellen darstellen. |
ComputeVolumeSamplesDirectSH | Berechnet eine Projektion entfernter Beleuchtung in sphärische harmonische (SH)-Basisvektoren, die die Einfallstrahlung an bestimmten Stellen darstellen. |
ExtractPerVertexAlbedo | Kopiert albedo-Werte pro Scheitelpunkt aus einem Gitter. |
FreeBounceData | Gibt Arbeitsspeicher frei, der für temporäre Unzustellbarkeitssimulationsdaten verwendet wird. |
FreeSSData | Gibt Arbeitsspeicher frei, der für temporäre Simulationsdaten zur Lichtstreuung unter der Oberfläche verwendet wird. |
GetAdaptedMesh | Gibt ein Gitter mit Änderungen zurück, die sich aus der adaptiven räumlichen Stichprobenentnahme ergeben. Das zurückgegebene Gitter enthält nur Positionen, Normaldaten und Texturkoordinaten (sofern definiert). |
GetNumFaces | Ruft die Anzahl der Gesichter im Gitter ab, einschließlich aller neuen Gesichter, die als Ergebnis der adaptiven räumlichen Stichprobenentnahme hinzugefügt wurden. |
GetNumVerts | Ruft die Anzahl der Scheitelpunkte im Gitter ab, einschließlich aller neuen Scheitelpunkte, die als Ergebnis adaptiver räumlicher Stichproben hinzugefügt wurden. |
GetVertexAlbedo | Ruft albedo-Werte der Gittervertices ab. |
MultiplyAlbedo | Multipliziert jeden vorberechneten Radianzübertragungsvektor (PRT) mit der Albedo pro Vertex. |
ResampleBuffer | Resamplest einen ID3DXPRTBuffer-Eingabepuffer und speichert ihn in einem Ausgabepuffer. Diese Methode kann verwendet werden, um einen Vertexpuffer in einen Texturpuffer zu konvertieren und umgekehrt. Es kann auch verwendet werden, um Einzelkanalpuffer in 3-Kanal-Puffer zu konvertieren und umgekehrt. |
RobustMeshRefine | Unterteilt Gesichter auf einem Gitter, wodurch eine konservative adaptive Stichprobenentnahme ermöglicht wird, die keine Merkmale im Gitter auslässt. |
ScaleMeshChunk | Skaliert alle Stichproben, die einem bestimmten Submesh zugeordnet sind. Die -Methode ist nützlich für die Berechnung der Streuung unter der Oberfläche. |
SetCallBack | Legt einen Zeiger auf eine optionale Rückruffunktion fest, die den Prozentsatz der abgeschlossenen SH-Berechnungen berechnet und dem Aufrufer die Möglichkeit gibt, den Simulator abzubrechen. |
SetMeshMaterials | Legt Gittermaterialeigenschaften in der 3D-Szene fest. Verwenden Sie diese Methode, um Untersurface-Streuungsparameter anzugeben. |
SetMinMaxIntersection | Legt den minimalen und maximalen Schnittabstand zwischen 3D-Objekten fest. Diese Entfernungswerte können verwendet werden, um den minimalen oder maximalen Abstand zu steuern, den Objekte schatten oder licht reflektieren können. Beispielsweise kann die -Methode verwendet werden, um die Schattierung von in der Nähe befindlichen Features eines 3D-Modells einzuschränken. |
SetPerTexelAlbedo | Legt einen Albedowert für jedes Texel fest und überschreibt vorherige Albedowerte. |
SetPerTexelNormal | Legt einen normalen Vektor für jeden Texel in einem Texturobjekt fest. Diese Methode wird verwendet, um vertexnormale Vektoren aus einem Gitter zu speichern (oder interpolierte Vertexnormale, wenn pixelbasierte vorberechnete Radianzübertragung (PRT) berechnet wird). |
SetPerVertexAlbedo | Legt einen Albedowert für jeden Gittervertex fest und überschreibt vorherige Albedowerte. |
SetSamplingInfo | Legt sampling-Eigenschaften fest, die vom vorberechneten PRT-Simulator (Radiance Transfer) verwendet werden. |
ShadowRayIntersects | Verwendet effizientes Raytracing in vorberechneten PRT-Simulationen (Radiance Transfer), um zu bestimmen, ob ein Strahl ein Gitter überschneidet. Wird in der Regel verwendet, um zu bestimmen, ob sich ein bestimmter Punkt im Schatten befindet. |
Bemerkungen
Zum Konvertieren von RGB-Werten in Leuchtdichtewerte wird die folgende Formel verwendet:
Luminance = R * 0.2125 + G * 0.7154 + B * 0.0721
Die ID3DXPRTEngine-Schnittstelle wird durch Aufrufen der Funktion D3DXCreatePRTEngine abgerufen.
Der LPD3DXPRTENGINE-Typ wird als Zeiger auf die ID3DXPRTEngine-Schnittstelle definiert.
typedef interface ID3DXPRTEngine ID3DXPRTEngine;
typedef interface ID3DXPRTEngine *LPD3DXPRTENGINE;
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|
Siehe auch