Поделиться через


Метод ID3DXPRTEngine::MultiplyAlbedo

Умножает каждый предварительно вычисляемый вектор передачи сияния (PRT) на альбедо для каждой вершины.

Синтаксис

HRESULT MultiplyAlbedo(
  [in, out] LPD3DXPRTBUFFER pDataOut
);

Параметры

pDataOut [вход, выход]

Тип: LPD3DXPRTBUFFER

Указатель на выходной объект ID3DXPRTBuffer , который будет содержать векторы PRT, умноженные на альбедо для каждой вершины. Если этот выходной буфер является объектом текстуры, необходимо соблюдать осторожность для хранения альбедо текстуры в том же разрешении, что и буфер имитации. Вы можете задать правильное разрешение альбедо с помощью D3DXLoadSurfaceFromSurface, при необходимости применив области желоба текстуры.

Возвращаемое значение

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет S_OK. Если метод завершается ошибкой, возвращаемое значение может быть одним из следующих: D3DERR_INVALIDCALL, E_OUTOFMEMORY.

Комментарии

Методы ID3DXPRTEngine::Computexxx вычисляют буферы вывода, в которых сигнал света не умножен на альбедо. Не умножая альбедо, можно моделировать вариацию альбедо в более тонком масштабе, чем исходное сияние, тем самым обеспечивая более точные результаты сжатия.

Чтобы включить albedo в модель отрисованного освещения, вызовите этот метод после одного из методов Computexxx.

Перед вызовом этого метода необходимо вызвать ID3DXPRTEngine::SetMeshMaterials.

Требования

Требование Значение
Заголовок
D3DX9Mesh.h
Библиотека
D3dx9.lib

См. также раздел

ID3DXPRTEngine

ID3DXPRTEngine::ComputeDirectLightingSH