Método ID3DXPRTEngine::ComputeSSAdaptive
Calcula um vetor de transferência que mapeia o radiamento de origem para sair do radiamento resultante da dispersão subsuperficial, usando a amostragem adaptável e as propriedades de material definidas por ID3DXPRTEngine::SetMeshMaterials. O método gera novos vértices e rostos na malha para aproximar com mais precisão o sinal prt (transferência de radiação pré-computada). Esse método só pode ser usado para materiais definidos por vértice em um objeto de malha.
Sintaxe
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
Ponteiro para um objeto ID3DXPRTBuffer de entrada que representa o objeto 3D do salto de luz anterior. Esse buffer de entrada deve ter o número adequado de canais de cores alocados para a simulação.
-
AdaptiveThresh [in]
-
Tipo: FLOAT
Limite no vetor PRT a ser usado para subdividência de vértices e rostos de malha. Se for menor que 1e-6f, um valor padrão de 1e-6f será especificado.
-
MinEdgeLength [in]
-
Tipo: FLOAT
Comprimento mínimo da borda facial que será gerado na amostragem adaptável. Se o método determinar que o valor é muito pequeno, um valor dependente de modelo será especificado.
-
MaxSubdiv [in]
-
Tipo: UINT
Nível máximo de subdivisão de um rosto que será usado na amostragem adaptável. Se zero, um valor padrão de 4 será especificado.
-
pDataOut [in, out]
-
Tipo: LPD3DXPRTBUFFER
Ponteiro para um objeto ID3DXPRTBuffer de saída que modela um único salto da luz dispersa de subsuperfície. Esse buffer de saída deve ter o número adequado de canais de cores alocados para a simulação.
-
pDataTotal [in, out]
-
Tipo: LPD3DXPRTBUFFER
Ponteiro para um objeto ID3DXPRTBuffer opcional que é a soma em execução de todas as saídas de pDataOut anteriores. Pode ser NULL.
Valor retornado
Tipo: HRESULT
Se o método for bem-sucedido, o valor retornado será D3D_OK. Se o método falhar, o valor retornado poderá ser um dos seguintes: D3DERR_INVALIDCALL, E_OUTOFMEMORY.
Comentários
Para modelar a dispersão subsuperficial, chame esse método para cada salto de luz depois que um método ID3DXPRTEngine::ComputeDirectLightingSHAdaptive for chamado.
A saída desse método não inclui albedo e apenas a luz de entrada é integrada no simulador. Ao não multiplicar o albedo, você pode modelar a variação albedo em uma escala mais fina do que o brilho de origem, gerando assim resultados mais precisos da compactação.
Chame ID3DXPRTEngine::MultiplyAlbedo para multiplicar cada vetor PRT pelo albedo.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também