Интерфейс 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;
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел