Interfaz ID3DXPRTEngine

La interfaz ID3DXPRTEngine se usa para calcular una simulación de transferencia radiancia precalada (PRT). Sus métodos se suelen usar sin conexión para calcular vectores de transferencia por vértice o por elemento de textura antes del modelado 3D en tiempo real.

Miembros

La interfaz ID3DXPRTEngine hereda de la interfaz IUnknown . ID3DXPRTEngine también tiene estos tipos de miembros:

Métodos

La interfaz ID3DXPRTEngine tiene estos métodos.

Método Descripción
ClosestRayIntersects Usa un seguimiento de rayos eficaz en simulaciones de transferencia de radiancia precaladas (PRT) para determinar si un rayo interseca una malla. Si se encuentra una intersección, el método devuelve el índice de la cara de malla más cercana alcanzada por el rayo y las coordenadas barycéntricas del punto de intersección.
ComputeBounce Calcula la radiación de origen resultante de un solo rebote de luz interrreferenciada. Este método se puede usar para cualquier escena iluminada, incluido un modelo de transferencia de radiación precalculada (PRT) basado en armónico esférico (SH).
ComputeBounceAdaptive Calcula la radiación de origen resultante de un solo rebote de luz interrreslectada mediante el muestreo adaptable. Este método genera nuevos vértices y caras en la malla para aproximar con más precisión la señal de transferencia de radiancia precalculada (PRT). Este método se puede usar para cualquier escena iluminada, incluido un modelo PRT basado en armónico esférico (SH).
ComputeDirectLightingSH Calcula la contribución de iluminación directa a los objetos 3D donde la radiación de origen se representa mediante una aproximación armónica esférica (SH).
ComputeDirectLightingSHAdaptive Calcula la contribución de iluminación directa a los objetos 3D donde la radiación de origen se representa mediante una aproximación armónica esférica (SH), utilizando el muestreo adaptable. Este método genera nuevos vértices y caras en la malla para aproximar con más precisión la señal de transferencia de radiancia precalculada (PRT).
ComputeDirectLightingSHGPU Usa la GPU para calcular la contribución de iluminación directa a objetos 3D donde la radiación de origen se representa mediante una aproximación armónica esférica (SH). La computación de la iluminación en la GPU suele ser mucho más rápida que en la CPU.
ComputeLDPRTCoeffs Calcula coeficientes de transferencia de radiancia precalificados (LDPRT) que se pueden calcular localmente con respecto a los vectores normales por muestra para minimizar el error de mínimos cuadrados con respecto a los datos ID3DXPRTBuffer de entrada. Estos coeficientes se pueden usar con vectores normales enmascarados o transformados para modelar efectos globales en objetos dinámicos.
ComputeSS Calcula la radiación de origen resultante de la dispersión de subsurface, utilizando las propiedades de material establecidas por ID3DXPRTEngine::SetMeshMaterials. Este método solo se puede usar para materiales definidos por vértice en un objeto mesh.
ComputeSSAdaptive Calcula un vector de transferencia que asigna la radiación de origen para salir de la radiación resultante de la dispersión de subsurface, utilizando propiedades de material y muestreo adaptables establecidas por ID3DXPRTEngine::SetMeshMaterials. El método genera nuevos vértices y caras en la malla para aproximar con más precisión la señal de transferencia de radiancia precalculada (PRT). Este método solo se puede usar para materiales definidos por vértice en un objeto mesh.
ComputeSurfSamplesBounce Calcula muestras precaladas de transferencia de radiancia (PRT) para un punto arbitrario (y vector normal).
ComputeSurfSamplesDirectSH Calcula, en un punto arbitrario no en una malla, un vector de transferencia que asigna la radiación de origen (representada por una aproximación armónica esférica (SH) para salir de la radiación.
ComputeVolumeSamples Calcula una proyección de la iluminación directa del rebote de luz anterior en vectores base armónicos esféricos (SH) que representan radiancia de incidentes en ubicaciones especificadas.
ComputeVolumeSamplesDirectSH Calcula una proyección de iluminación lejana en vectores base armónicos esféricos (SH) que representan la radiación de incidentes en ubicaciones especificadas.
ExtractPerVertexAlbedo Copia los valores de albedo por vértice de una malla.
FreeBounceData Libera la memoria usada para los datos de simulación temporal de luz rebotada.
FreeSSData Libera memoria usada para datos de simulación de dispersión de luz subsurface temporales.
GetAdaptedMesh Devuelve una malla con modificaciones resultantes del muestreo espacial adaptable. La malla devuelta solo contiene posiciones, normales y coordenadas de textura (si se definen).
GetNumFaces Recupera el número de caras de la malla, incluidas las caras nuevas agregadas como resultado del muestreo espacial adaptable.
GetNumVerts Recupera el número de vértices de la malla, incluidos los nuevos vértices agregados como resultado del muestreo espacial adaptable.
GetVertexAlbedo Recupera los valores albedo de los vértices de malla.
MultiplyAlbedo Multiplica cada vector de transferencia radiancia precalculada (PRT) por el albedo por vértice.
ResampleBuffer Reemplea un búfer ID3DXPRTBuffer de entrada y lo guarda en un búfer de salida. Este método se puede usar para convertir un búfer de vértices en un búfer de texturas y viceversa. También se puede usar para convertir búferes de canal único en búferes de 3 canales y viceversa.
RobustMeshRefine Subdivide caras en una malla, lo que permite un muestreo adaptable conservador que no eliminará las características de la malla.
ScaleMeshChunk Escala todas las muestras asociadas a un submesh determinado. El método es útil para calcular la dispersión de subsurfaces.
SetCallBack Establece un puntero a una función de devolución de llamada opcional que calcula el porcentaje de cálculos armónicos esféricos (SH) completados y proporciona al autor de la llamada la opción de anular el simulador.
SetMeshMaterials Establece las propiedades del material de malla en la escena 3D. Use este método para especificar parámetros de dispersión de subsurface.
SetMinMaxIntersection Establece las distancias mínimas y máximas de intersección entre objetos 3D. Estos valores de distancia se pueden usar para controlar la distancia mínima o máxima que los objetos pueden sombrear o reflejar la luz. Por ejemplo, el método se puede usar para limitar la sombra de las características cercanas de un modelo 3D.
SetPerTexelAlbedo Establece un valor de albedo para cada elemento de textura, sobrescribiendo los valores de albedo anteriores.
SetPerTexelNormal Establece un vector normal para cada elemento de textura de un objeto de textura. Este método se usa para almacenar vectores normales de vértices de una malla (o normales de vértices interpolados si se calcula la transferencia de radiancia precalculada basada en píxeles).
SetPerVertexAlbedo Establece un valor de albedo para cada vértice de malla, sobrescribiendo los valores de albedo anteriores.
SetSamplingInfo Establece las propiedades de muestreo usadas por el simulador de transferencia de radiancia precalada (PRT).
ShadowRayIntersects Usa un seguimiento de rayos eficaz en simulaciones de transferencia de radiancia precaladas (PRT) para determinar si un rayo interseca una malla. Normalmente se usa para determinar si un punto determinado está en sombra.

 

Observaciones

Para convertir de RGB a valores de luminancia, se usa la fórmula siguiente:

Luminance = R * 0.2125 + G * 0.7154 + B * 0.0721

La interfaz ID3DXPRTEngine se obtiene llamando a la función D3DXCreatePRTEngine .

El tipo LPD3DXPRTENGINE se define como puntero a la interfaz ID3DXPRTEngine .

typedef interface ID3DXPRTEngine ID3DXPRTEngine;
typedef interface ID3DXPRTEngine *LPD3DXPRTENGINE;

Requisitos

Requisito Value
Encabezado
D3DX9Mesh.h
Biblioteca
D3dx9.lib

Consulte también

D3DX Interfaces

D3DXCreatePRTEngine

Transferencia radiance precalada (Direct3D 9)