Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Использование предкомпьютерной передачи сияния
Существует несколько форм сложности, присутствующих в интересных сценах, включая моделирование среды освещения (т. е. модели освещения области и точки или направления), а также то, какие глобальные эффекты моделируются (например, тени, межрефлектии, подстраховка разброса.) Традиционные интерактивные методы отрисовки моделит ограниченный объем этой сложности. PRT позволяет использовать эти эффекты с некоторыми значительными ограничениями:
- Предполагается, что объекты являются жесткими (т. е. без деформаций).
- Это объектно-ориентированный подход (если объекты не перемещаются вместе, эти глобальные эффекты не поддерживаются между ними).
- Моделировается только низкочастотное освещение (в результате чего мягкие тени).) Для высокочастотных огней (острые тени), традиционные методы должны быть использованы.
ДЛЯ PRT требуется один из следующих вариантов, но не оба:
- модели с высокой степенью тесселяции и vs_1_1
- ps_2_0
Стандартное диффузное освещение и PRT
На следующем рисунке показана традиционная модель освещения (n · l). Острые тени можно включить с помощью другого прохода и некоторых форм теневого метода (карты глубины тени или теневые тома). Добавление нескольких светов потребует либо нескольких проходов (если тени будут использоваться) или более сложных шейдеров с традиционными методами.
Следующая иллюстрация отрисовывается с prT с помощью оптимального приближения одного направления света, который он может разрешить. Это приводит к мягким тени, которые было бы трудно производить с помощью традиционных методов. Так как PRT всегда моделирует полные среды освещения, добавляя несколько огней или используя карту среды, вы измените только значения (но не число) констант, используемых шейдером.
PRT с interreflections
Прямое освещение достигает поверхности непосредственно от света. Межрефлекты — это свет, достигающий поверхности после отскоки от какой-то другой поверхности несколько раз. PRT может моделировать это поведение, не изменяя производительность во время выполнения, просто выполняя симулятор с различными параметрами.
На следующем рисунке используется только прямая функция PRT (0 отскоков без переопределения).
Следующая иллюстрация создается с помощью PRT с межрефлексиями (2 отскоки с межрефлексиями).
PRT с подстраховкой разброса
Подземная разбросовка является техникой, которая моделирует, как свет проходит через определенные материалы. Например, нажимайте фонарик на ладонь руки. Свет от фонарика проходит через руку, отскакивает (меняя цвет в процессе) и выходит из другой стороны руки. Это также можно моделировать с простыми изменениями в симуляторе и без изменений в среде выполнения.
На следующем рисунке показано, как prT с разбросом подстраховки.
Как работает PRT
Следующие термины полезны для понимания работы PRT, как показано на следующей схеме.
Исходная радиация: исходная сияние представляет среду освещения в целом. В PRT произвольной среде приблизительно используется сферическая гармоническая основа - это освещение, как предполагается, является удаленным относительно объекта (то же предположение, что сделано с картами среды).)
Выход Радианс: Выход из сияния является светом, покидающим от точки на поверхности от любого возможного источника (отраженное сияние, подземное разбросение, выбросы).
Перенос векторов: перенос векторов сопоставляет исходную сияние источника в сияние выхода и предварительно компилируется в автономном режиме с помощью сложного моделирования транспорта света.
PRT факторы процесса отрисовки на два этапа, как показано на следующей схеме:
- Дорогостоящее моделирование транспорта предварительно компьютерирует коэффициенты передачи, которые можно использовать во время выполнения.
- Относительно упрощенный этап выполнения сначала приблизит среду освещения с помощью сферической гармонической основы, а затем использует эти коэффициенты освещения и предварительно вычисляемые коэффициенты передачи (с этапа 1) с простым шейдером, что приводит к выходу из сияния (свет покидает объект).
схема потока данных prt
Использование API PRT
Вычисление векторов передачи с помощью одного из вычислительных ресурсов... методы ID3DXPRTEngine.
Для непосредственной работы с этими векторами передачи требуется значительное количество памяти и вычислений шейдера. Сжатие значительно сокращает объем памяти и необходимых вычислений шейдера.
Конечные значения освещения вычисляются в шейдере вершин, реализующем следующее сжатое уравнение отрисовки.
уравнение
Где:
Параметр Описание Rp Один канал выходного сияния на вершине p и оценивается на каждой вершине сетки. Mk Среднее значение для кластера k. Это вектор Order 2. k Идентификатор кластера для вершины p. L' Приближение исходного сияния к базовым функциям SH. Это вектор Order 2. j Целое число, которое суммирует число векторов PCA. wpj Вес Jth PCA для точки p. Это один коэффициент. Bkj Базовый вектор Jth PCA для кластера k. Это вектор Order 2. Извлечение... Методы ID3DXPRTCompBuffer предоставляют доступ к сжатым данным из имитации.
Вычислить исходную сияние.
В API есть несколько вспомогательных функций для обработки различных распространенных сценариев освещения.
Функция Цель D3DXSHEvalDirectionalLight Приблизит обычный направленный свет. D3DXSHEvalSphericalLight Приблизительные локальные сферические источники света. (Обратите внимание, что PRT работает только с средами освещения расстояния.) D3DXSHEvalConeLight Приближается к удаленному источнику света. Примером будет солнце (очень маленький угол конуса). D3DXSHEvalHemisphereLight Вычисляет свет, представляющий собой линейную интерполяцию между двумя цветами (по одному на каждом полюсе сферы). Вычислить сияние выхода.
Уравнение 1 теперь должно оцениваться в каждой точке с помощью вершины или шейдера пикселей. Перед вычислением шейдера константы должны быть предварительно компьютированы и загружены в постоянную таблицу (дополнительные сведения см. в демонстрационных примерах PRT). Сам шейдер является простой реализацией этого уравнения.
struct VS_OUTPUT { float4 Position : POSITION; // vertex position float2 TextureUV : TEXCOORD0; // vertex texture coordinates float4 Diffuse : COLOR0; // vertex diffuse color }; VS_OUTPUT Output; Output.Position = mul(vPos, mWorldViewProjection); float4 vExitR = float4(0,0,0,0); float4 vExitG = float4(0,0,0,0); float4 vExitB = float4(0,0,0,0); for (int i=0; i < (NUM_PCA_VECTORS/4); i++) { vExitR += vPCAWeights[i] * vClusteredPCA[iClusterOffset+i+1+(NUM_PCA_VECTORS/4)*0]; vExitG += vPCAWeights[i] * vClusteredPCA[iClusterOffset+i+1+(NUM_PCA_VECTORS/4)*1]; vExitB += vPCAWeights[i] * vClusteredPCA[iClusterOffset+i+1+(NUM_PCA_VECTORS/4)*2]; } float4 vExitRadiance = vClusteredPCA[iClusterOffset]; vExitRadiance.r += dot(vExitR,1); vExitRadiance.g += dot(vExitG,1); vExitRadiance.b += dot(vExitB,1); Output.Diffuse = vExitRadiance;
Ссылки
Дополнительные сведения о PRT и сферических гармониях см. в следующих статьях:
Precomputed Radiance Transfer for Real-Time Rendering in Dynamic,
Low-Frequency Lighting Environments
P.-P. Sloan, J. Kautz, J. Snyder
SIGGRAPH 2002
Clustered Principal Components for Precomputed Radiance Transfer
P.-P. Sloan, J. Hall, J. Hart, J. Snyder
SIGGRAPH 2003
Efficient Evaluation of Irradiance Environment Maps
P.-P. Sloan
ShaderX 2, W. Engel
Spherical Harmonic Lighting: The Gritty Details
R. Green
GDC 2003
An Efficient Representation for Irradiance Environment Maps
R. Ramamoorthi, P. Hanrahan
A Practical Model for Subsurface Light Transport
H. W. Jensen, S. R. Marschner, M. Levoy, and P. Hanrahan
SIGGRAPH 2001
Bi-Scale Radiance Transfer
P.-P. Sloan, X. Liu, H.-Y. Shum, J. Snyder
SIGGRAPH 2003
Fast, Arbitrary BRDF Shading for Low-Frequency Lighting Using Spherical
Harmonics
J. Kautz, P.-P. Sloan, J. Snyder
12th Eurographics Workshop on Rendering
Precomputing Interactive Dynamic Deformable Scenes
D. James, K. Fatahalian
SIGGRAPH 2003
All-Frequency Shadows Using Non-linear Wavelet Lighting Approximation
R. Ng, R. Ramamoorth, P. Hanrahan
SIGGRAPH 2003
Matrix Radiance Transfer
J. Lehtinen, J. Kautz
SIGGRAPH 2003
Math World
E. W. Weisstein, Wolfram Research, Inc.
Quantum Theory of Angular Momentum
D. A. Varshalovich, A.N. Moskalev, V.K. Khersonskii
Связанные разделы