Método ID3DXPRTEngine::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 mayor 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.
Sintaxis
HRESULT ComputeSSAdaptive(
[in] LPD3DXPRTBUFFER pDataIn,
[in] FLOAT AdaptiveThresh,
[in] FLOAT MinEdgeLength,
[in] UINT MaxSubdiv,
[in, out] LPD3DXPRTBUFFER pDataOut,
[in, out] LPD3DXPRTBUFFER pDataTotal
);
Parámetros
-
pDataIn [in]
-
Tipo: LPD3DXPRTBUFFER
Puntero a un objeto ID3DXPRTBuffer de entrada que representa el objeto 3D del rebote de luz anterior. Este búfer de entrada debe tener asignado el número adecuado de canales de color para la simulación.
-
AdaptiveThresh [in]
-
Tipo: FLOAT
Umbral en el vector PRT que se va a usar para subdividir vértices y caras de malla. Si es menor que 1e-6f, se especifica un valor predeterminado de 1e-6f.
-
MinEdgeLength [in]
-
Tipo: FLOAT
Longitud mínima del borde facial que se generará en el muestreo adaptable. Si el método determina que el valor es demasiado pequeño, se especifica un valor dependiente del modelo.
-
MaxSubdiv [in]
-
Tipo: UINT
Nivel máximo de subdivisión de una cara que se usará en el muestreo adaptable. Si es cero, se especifica un valor predeterminado de 4.
-
pDataOut [in, out]
-
Tipo: LPD3DXPRTBUFFER
Puntero a un objeto ID3DXPRTBuffer de salida que modela un solo rebote de la luz dispersa por subsurface. Este búfer de salida debe tener asignado el número adecuado de canales de color para la simulación.
-
pDataTotal [in, out]
-
Tipo: LPD3DXPRTBUFFER
Puntero a un objeto ID3DXPRTBuffer opcional que es la suma en ejecución de todas las salidas anteriores de pDataOut. Puede ser NULL.
Valor devuelto
Tipo: HRESULT
Si el método se realiza correctamente, el valor devuelto es D3D_OK. Si se produce un error en el método, el valor devuelto puede ser uno de los siguientes: D3DERR_INVALIDCALL, E_OUTOFMEMORY.
Comentarios
Para modelar la dispersión de subsurface, llame a este método para cada rebote de luz después de un método ID3DXPRTEngine::ComputeDirectLightingSHAdaptive .
La salida de este método no incluye albedo y solo la luz entrante está integrada en el simulador. Al no multiplicar el albedo, puede modelar la variación de albedo a una escala más fina que la radiación de origen, lo que produce resultados más precisos de la compresión.
Llame a ID3DXPRTEngine::MultiplyAlbedo para multiplicar cada vector PRT por el albedo.
Requisitos
Requisito | Value |
---|---|
Encabezado |
|
Biblioteca |
|
Consulte también