Freigeben über


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
D3DX9Mesh.h
Bibliothek
D3dx9.lib

Siehe auch

D3DX-Schnittstellen

D3DXCreatePRTEngine

Vorberechnete Radianzübertragung (Direct3D 9)