Interfaccia ID3DXPRTEngine
L'interfaccia ID3DXPRTEngine viene usata per calcolare una simulazione di trasferimento di radianza pre-calcolata.The ID3DXPRTEngine interface is used to compute a precomputed radiance transfer (PRT). I metodi vengono in genere usati offline per calcolare i vettori di trasferimento per vertice o per texel in anticipo rispetto alla modellazione 3D in tempo reale.
Membri
L'interfaccia ID3DXPRTEngine eredita dall'interfaccia IUnknown . ID3DXPRTEngine include anche questi tipi di membri:
Metodi
L'interfaccia ID3DXPRTEngine dispone di questi metodi.
Metodo | Descrizione |
---|---|
ClosestRayIntersects | Usa un'efficiente analisi dei raggi nelle simulazioni di trasferimento di raggi precompilate (PRT) per determinare se un raggio interseca una mesh. Se viene trovata un'intersezione, il metodo restituisce l'indice del viso mesh più vicino colpito dal raggio e dalle coordinate bariche del punto di intersezione. |
CalcoloBounce | Calcola la luminosità di origine risultante da un singolo rimbalzo di luce riflessa. Questo metodo può essere usato per qualsiasi scena illuminata, incluso un modello di trasferimento di raggi pre-calcolati (PRT) armonico armonico basato su SH. |
CalcoloBounceAdaptive | Calcola la luminosità di origine risultante da un singolo rimbalzo di luce riflessa, usando il campionamento adattivo. Questo metodo genera nuovi vertici e visi sulla mesh per approssimare in modo più accurato il segnale di trasferimento diradizione pre-calcolata (PRT). Questo metodo può essere usato per qualsiasi scena illuminata, incluso un modello PRT basato su armonica sferica (SH). |
ComputeDirectLightingSH | Calcola il contributo diretto dell'illuminazione agli oggetti 3D in cui la radiazione di origine è rappresentata da un'approssimazione armonica sferica (SH). |
ComputeDirectLightingSHAdaptive | Calcola il contributo diretto dell'illuminazione agli oggetti 3D in cui la radiazione di origine è rappresentata da un'approssimazione armonica sferica (SH), usando il campionamento adattivo. Questo metodo genera nuovi vertici e visi sulla mesh per approssimare in modo più accurato il segnale di trasferimento diradizione pre-calcolata (PRT). |
ComputeDirectLightingSHGPU | Usa la GPU per calcolare il contributo diretto dell'illuminazione agli oggetti 3D in cui la luminosità di origine è rappresentata da un'approssimazione armonica sferica (SH). Il calcolo dell'illuminazione sulla GPU sarà in genere molto più veloce rispetto alla CPU. |
ComputeLDPRTCoeffs | Calcola coefficienti di trasferimento precompilata precompilata (LDPRT) deformabili in locale rispetto ai vettori normali per campione per ridurre al minimo l'errore dei minimi quadrati rispetto ai dati ID3DXPRTBuffer di input. Questi coefficienti possono essere usati con vettori normali con pelle o trasformati per modellare gli effetti globali sugli oggetti dinamici. |
ComputeSS | Calcola la luminosità di origine risultante dalla dispersione della sottosurface, usando le proprietà del materiale impostate da ID3DXPRTEngine::SetMeshMaterials. Questo metodo può essere utilizzato solo per i materiali definiti per vertice in un oggetto mesh. |
ComputeSSAdaptive | Calcola un vettore di trasferimento che esegue il mapping dello radianza di origine all'uscita dalla radiazione risultante dalla dispersione sottosuperforma, usando il campionamento adattivo e le proprietà dei materiali impostate da ID3DXPRTEngine::SetMeshMaterials. Il metodo genera nuovi vertici e visi sulla mesh per approssimare in modo più accurato il segnale di trasferimento diradizione pre-calcolata (PRT). Questo metodo può essere utilizzato solo per i materiali definiti per vertice in un oggetto mesh. |
ComputeSurfSamplesBounce | Calcola esempi di trasferimento di raggi pre-calcolati (PRT) per un punto arbitrario (e vettore normale). |
ComputeSurfSamplesDirectSH | Calcola, in corrispondenza di un punto arbitrario non in una mesh, un vettore di trasferimento che esegue il mapping dello radianza di origine (rappresentato da un'approssimazione armonica sferica (SH) per uscire dalla luminosità. |
ComputeVolumeSamples | Calcola una proiezione dell'illuminazione diretta dal rimbalzo della luce precedente in vettori di base armonica (SH) sferici che rappresentano la radiazione degli eventi imprevisti in posizioni specificate. |
ComputeVolumeSamplesDirectSH | Calcola una proiezione di illuminazione distante in vettori di base armonici armonici (SH) che rappresentano la radiazione degli eventi imprevisti in posizioni specificate. |
ExtractPerVertexAlbedo | Copia i valori albedo per vertice da una mesh. |
FreeBounceData | Libera la memoria usata per i dati temporanei di simulazione di luce rimbalzata. |
FreeSSData | Libera la memoria usata per i dati di simulazione a dispersione della luce secondaria temporanea. |
GetAdaptedMesh | Restituisce una mesh con modifiche risultanti dal campionamento spaziale adattivo. La mesh restituita contiene solo posizioni, normali e coordinate di trama (se definito). |
GetNumFaces | Recupera il numero di visi nella mesh, inclusi i nuovi visi aggiunti in seguito al campionamento spaziale adattivo. |
GetNumVerts | Recupera il numero di vertici nella mesh, inclusi i nuovi vertici aggiunti in seguito al campionamento spaziale adattivo. |
GetVertexAlbedo | Recupera i valori albedo dei vertici della mesh. |
MultiplyAlbedo | Moltiplica ogni vettore prT (Precomputed radiance Transfer) per il albedo per vertice. |
ResampleBuffer | Ricampiona un buffer ID3DXPRTBuffer di input e lo salva in un buffer di output. Questo metodo può essere usato per convertire un buffer dei vertici in un buffer di trama e viceversa. Può anche essere usato per convertire i buffer a canale singolo in buffer a 3 canali e viceversa. |
RobustMeshRefine | Suddivide i visi in una mesh, consentendo il campionamento adattivo conservativo che non eliminerà le caratteristiche nella mesh. |
ScaleMeshChunk | Ridimensiona tutti i campioni associati a un determinato sottomese. Il metodo è utile per il calcolo della dispersione sottosurface. |
SetCallBack | Imposta un puntatore a una funzione di callback facoltativa che calcola la percentuale di calcoli armonici sferici completati e offre al chiamante la possibilità di interrompere il simulatore. |
SetMeshMaterials | Imposta le proprietà del materiale mesh nella scena 3D. Utilizzare questo metodo per specificare i parametri di dispersione della sottosurface. |
SetMinMaxIntersection | Imposta le distanze minime e massime di intersezione tra gli oggetti 3D. Questi valori di distanza possono essere usati per controllare la distanza minima o massima che gli oggetti possono nascondere o riflettere la luce. Ad esempio, il metodo può essere usato per limitare l'ombreggiatura delle funzionalità nelle vicinanze di un modello 3D. |
SetPerTexelAlbedo | Imposta un valore albedo per ogni texel, sovrascrivendo i valori albedo precedenti. |
SetPerTexelNormal | Imposta un vettore normale per ogni texel in un oggetto trama. Questo metodo viene usato per archiviare i vettori normali dei vertici da una mesh (o normali dei vertici interpolati se viene calcolato il trasferimento di raggi pre-calcolati in pixel). |
SetPerVertexAlbedo | Imposta un valore albedo per ogni vertice mesh, sovrascrivendo i valori albedo precedenti. |
SetSamplingInfo | Imposta le proprietà di campionamento usate dal simulatore di trasferimento di raggi pre-calcolati . |
ShadowRayIntersects | Usa un'efficiente analisi dei raggi nelle simulazioni di trasferimento di raggi precompilate (PRT) per determinare se un raggio interseca una mesh. In genere viene usato per determinare se un determinato punto è in ombra. |
Commenti
Per eseguire la conversione da RGB a valori di luminanza, viene usata la formula seguente:
Luminance = R * 0.2125 + G * 0.7154 + B * 0.0721
L'interfaccia ID3DXPRTEngine viene ottenuta chiamando la funzione D3DXCreatePRTEngine .
Il tipo LPD3DXPRTENGINE è definito come puntatore all'interfaccia ID3DXPRTEngine .
typedef interface ID3DXPRTEngine ID3DXPRTEngine;
typedef interface ID3DXPRTEngine *LPD3DXPRTENGINE;
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|
Vedi anche