Интерфейс ID3DXPRTEngine

Интерфейс ID3DXPRTEngine используется для вычисления предварительно вычисляемого моделирования передачи сияния (PRT). Его методы обычно используются в автономном режиме для вычисления векторов передачи по вершинам или по текселю до 3D-моделирования в реальном времени.

Элементы

Интерфейс ID3DXPRTEngine наследуется от интерфейса IUnknown . ID3DXPRTEngine также имеет следующие типы элементов:

Методы

Интерфейс ID3DXPRTEngine содержит следующие методы.

Метод Описание
ClosestRayIntersects Использует эффективную трассировку лучей в предварительно вычисляемых имитациях передачи сияния (PRT), чтобы определить, пересекается ли луч в сетке. При обнаружении пересечения метод возвращает индекс ближайшей поверхности сетки, попав в луч, и барицентрические координаты точки пересечения.
ComputeBounce Вычисляет исходное сияние, полученное в результате одного отскакиваемого света. Этот метод можно использовать для любой освещенной сцены, включая модель предварительно вычисляемой передачи сияния (PRT) на основе сферической гармоники (SH).
ComputeBounceAdaptive Вычисляет исходное сияние, возникающее в результате одного отскакиваемого перерефлексированного света, с помощью адаптивной выборки. Этот метод создает новые вершины и грани в сетке для более точного приближения предварительно вычисляемого сигнала передачи сияния (PRT). Этот метод можно использовать для любой освещенной сцены, включая модель PRT на основе сферической гармоники (SH).
ComputeDirectLightingSH Вычисляет вклад непосредственного освещения в трехмерные объекты, где исходное сияние представлено приближением сферической гармонии (SH).
ComputeDirectLightingSHAdaptive Вычисляет вклад непосредственного освещения в трехмерные объекты, где исходное сияние представлено сферической гармонической аппроксимацией (SH), используя адаптивную выборку. Этот метод создает новые вершины и грани в сетке для более точного приближения предварительно вычисляемого сигнала передачи сияния (PRT).
ComputeDirectLightingSHGPU Использует GPU для вычисления прямого освещения трехмерных объектов, где исходное сияние представлено приближением сферической гармонии (SH). Вычисление освещения на GPU обычно происходит гораздо быстрее, чем на ЦП.
ComputeLDPRTCoeffs Вычисляет локально деформируемые коэффициенты предварительно вычисляемой передачи сияния (LDPRT) относительно векторов нормали выборки, чтобы свести к минимуму погрешность наименьших квадратов относительно входных данных ID3DXPRTBuffer . Эти коэффициенты можно использовать с обкожными или преобразованными нормальными векторами для моделирования глобальных эффектов на динамические объекты.
Вычисления Вычисляет исходное сияние, полученное в результате подповерхностного рассеяния, используя свойства материала, заданные ID3DXPRTEngine::SetMeshMaterials. Этот метод можно использовать только для материалов, определенных для каждой вершины в объекте сетки.
ComputeSSAdaptive Вычисляет вектор передачи, который сопоставляет исходное сияние с исходящим сиянием, полученным в результате подповерхностного рассеяния, с помощью адаптивных свойств выборки и материала, заданных ID3DXPRTEngine::SetMeshMaterials. Метод создает новые вершины и грани в сетке, чтобы точнее приблизить предварительно вычисляемый сигнал передачи сияния (PRT). Этот метод можно использовать только для материалов, определенных для каждой вершины в объекте сетки.
ComputeSurfSamplesBounce Вычисляет предварительно вычисляемые образцы передачи сияния (PRT) для произвольной точки (и нормального вектора).
ComputeSurfSamplesDirectSH Вычисляет в произвольной точке, а не в сетке, вектор передачи, который сопоставляет исходное сияние (представленное приближением сферической гармонии (SH) для выхода из сияния.
ComputeVolumeSamples Вычисляет проекцию прямого освещения из предыдущего света в сферические гармонические базовые векторы ( SH), которые представляют сияние инцидента в указанных местах.
ComputeVolumeSamplesDirectSH Вычисляет проекцию удаленного освещения на сферические гармонические базовые векторы (SH), представляющие сияние инцидента в указанных местах.
ExtractPerVertexAlbedo Копирует значения альбедо для каждой вершины из сетки.
FreeBounceData Освобождает память, используемую для временных данных имитации отскока света.
FreeSSData Освобождает память, используемую для временных данных моделирования рассеяния света подповерхностями.
GetAdaptedMesh Возвращает сетку с изменениями, полученными в результате адаптивной пространственной выборки. Возвращаемая сетка содержит только позиции, нормы и координаты текстуры (если они определены).
GetNumFaces Извлекает количество лиц в сетке, включая все новые лица, добавленные в результате адаптивной пространственной выборки.
GetNumVerts Извлекает количество вершин в сетке, включая любые новые вершины, добавленные в результате адаптивной пространственной выборки.
GetVertexAlbedo Извлекает значения альбедо вершин сетки.
MultiplyAlbedo Умножает каждый предварительно вычисляемый вектор передачи сияния (PRT) на альбедо каждой вершины.
ResampleBuffer Повторно применяет входной буфер ID3DXPRTBuffer и сохраняет его в выходном буфере. Этот метод можно использовать для преобразования буфера вершин в буфер текстуры и наоборот. Его также можно использовать для преобразования одноканальные буферы в трехканальные буферы и наоборот.
RobustMeshRefine Подразделяет лица в сетке, что позволяет проводить консервативную адаптивную выборку, которая не устраняет признаки сетки.
ScaleMeshChunk Масштабирует все образцы, связанные с заданным вложенным вмешем. Метод полезен для вычисления подповерхностного рассеяния.
SetCallBack Задает указатель на необязательную функцию обратного вызова, которая вычисляет процент завершенных вычислений сферической гармоники (SH) и предоставляет вызывающей объекту возможность прерывания симулятора.
SetMeshMaterials Задает свойства материала сетки в трехмерной сцене. Этот метод используется для указания параметров подповерхностного рассеяния.
SetMinMaxIntersection Задает минимальное и максимальное расстояние пересечения между трехмерные объекты. Эти значения расстояния можно использовать для управления минимальным или максимальным расстоянием, на которое объекты могут затенять или отражать свет. Например, метод можно использовать для ограничения затенения близлежащих признаков трехмерной модели.
SetPerTexelAlbedo Задает значение альбедо для каждого текселя, перезаписав предыдущие значения альбедо.
SetPerTexelNormal Задает нормальный вектор для каждого текселя в объекте текстуры. Этот метод используется для хранения нормальных векторов вершин из сетки (или интерполированных норм вершин, если вычисляется предварительно вычисляемая передача сияния (PRT) на основе пикселей).
SetPerVertexAlbedo Задает значение альбедо для каждой вершины сетки, перезаписав предыдущие значения альбедо.
SetSamplingInfo Задает свойства выборки, используемые предварительно вычисляемым симулятором передачи сияния (PRT).
ShadowRayIntersects Использует эффективную трассировку лучей в предварительно вычисляемых имитациях передачи сияния (PRT), чтобы определить, пересекается ли луч в сетке. Обычно используется для определения того, находится ли данная точка в тени.

 

Комментарии

Для преобразования значений RGB в значения яркости используется следующая формула:

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

Интерфейс ID3DXPRTEngine получается путем вызова функции D3DXCreatePRTEngine .

Тип LPD3DXPRTENGINE определяется как указатель на интерфейс ID3DXPRTEngine .

typedef interface ID3DXPRTEngine ID3DXPRTEngine;
typedef interface ID3DXPRTEngine *LPD3DXPRTENGINE;

Требования

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

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

Интерфейсы D3DX

D3DXCreatePRTEngine

Предварительно вычисляемая передача radiance (Direct3D 9)