Compartir a través de


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

Consulte también

ID3DXPRTEngine

ID3DXPRTEngine::ComputeBounce

ID3DXPRTEngine::ComputeSS