Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Статьи / Объемы распространения света для непрямого освещения в режиме реального времени. (4 стр)

Объемы распространения света для непрямого освещения в режиме реального времени. (4 стр)

Автор:

7. Результаты и дискуссия

Предлагаемый метод рассчитан лишь для приближения низкочастотного непрямого освещения. Все высокочастотные изменения, такие как мелкие детали поверхности, достигаются с помощью дополняющих методов, таких как карты нормалей и затенение фонового освещения в пространстве изображения. Предлагаемый метод показывает хорошие результаты в различных ситуациях (непрямое освещение усилено в демонстративных целях). На изображениях ниже показано сравнение с эталонным изображением, созданным методом трассировки путей, для сцены «Crytek Sponza» с полностью рассеивающими материалами. В целом, изображения близки по результатам освещения. Однако затенение близлежащей геометрии является приближением при рендеринге с ОРС, в связи с чем и проявляются основные отличия. Все изображения с методом ОРС произведены в разрешении 1280x720 на ГП NVIDIA GTX285. В этой секции мы также описываем возможные дополняющие методы с последующим обсуждением их преимуществ и недостатков.

ОРС, 3 сетки по 32 в кубе | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.7.1. ОРС, 3 сетки по 323. Рендеринг сцены «Crytek Sponza» (без текстур для наглядного сравнения) с тремя сетками ОРС, с разрешением 323 каждая, 16 миллисекунд на кадр.

Фотонные карты (PBRT) | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.7.2. Фотонные карты (PBRT). Эталонное решение, рендеринг с помощью метода фотонных карт из PBRT (одно отражение для непрямого освещения, 200 000 фотонов, 1024 луча финального сбора, рендеринг занял около 45 минут).

Разностное изображение между методом ОРС и эталонным решением | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.7.3. Ошибка: ОРС / фотонные карты. Разностное изображение между методом ОРС и эталонным решением; зелёные регионы ярче при ОРС, красные — темнее.

Неполные теневые карты. | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.7.4. Неполные теневые карты. Рендеринг методом неполных теневых карт [Ritschel et al. 2008], 61 миллисекунды на кадр с 256 ВИС.

Множественные непрямые отражения

Этап распространения может быть легко модифицирован для поддержки множественных переотражений непрямого освещения.

Непрямое освещение без учёта затенения | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.8.1. Непрямое освещение без учёта затенения (7,7 мс.)

Непрямое освещение с учётом затенения | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.8.2. Непрямое освещение с учётом затенения (11,1 мс.)

Непрямое освещение с учётом множественных отражений | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.8.3. Непрямое освещение с множественными отражениями (11,7 мс.)

Рендеринг с одной сеткой ОРС размера 32 в кубе | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.8.4. Рендеринг произведён с одной сеткой ОРС размера 323. 2562 ВИС инжектировано из ОТК в ОРС. Из ОТК и (уменьшенного) геометрического буфера камеры было создано 2x2562 элементов поверхности для инжекции в ГС.

Для этого, при распространении из исходной в конечную ячейку, мы производим дополнительную выборку из ГС с упреждением в одну ячейку в направлении распространения.

Приближённый расчёт дополнительных отражений непрямого освещения | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.9. Использование ГС для приближённого расчёта дополнительных отражений непрямого освещения.

Таким образом, мы получаем приближение затенения [cht]B(\omega)[/cht], котороеиспользуется чтобы отразить свет в ту же конечную ячейку. Мы можем оценить рассеянное освещение затеняющей геометрии как [cht]B(-\omega_c)[/cht] (путём вычисления скалярного произведения направления падающего освещения [cht]-\omega_c[/cht] с нормалью к поверхности в СФ), умноженное на распространяемую интенсивность и на отражательную способность затеняющей геометрии. Отражённый свет имеет то же распределение, что и затеняющая геометрия, таким образом, мы умножаем [cht]B(\omega)[/cht] на отражённую интенсивность и инжектируем полученный результат в конечную ячейку ОРС. Заметим, что для множественных отражений необходимо модифицировать лишь один этап метода. Дополнительные временные затраты составляют около 0.3 мс. на ГП NVIDIA GTX285 для ОРС размером 323 и 8 итерациями. Быстродействие всех остальных этапов метода остаётся таким же.

Матовые материалы

Очевидно, предложенная схема распространения влечёт сильное размытие распространённого света. Однако мы также можем использовать сетки ОРС для сбора поступающего света при рендеринге матовых поверхностей (см. рис.10 и рис.11.).

Поддержка матовых поверхностей | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.10. Поддержка матовых поверхностей с помощью частичной прогонки лучей через ОРС.

Прогонка лучей через ОРС | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.11. Прогонка лучей через ОРС в направлении, отражённом от поверхности, для рендеринга матовых материалов (рендеринг сцены с 265 тыс. треугольников в разрешении 1280x720, 9 мс. на кадр на GTX285 с одной сеткой ОРС размера 323, без непрямого затенения).

Основная идея заключается в том, чтобы рассчитать поступающий свет по отражённому направлению [cht]\mathbf{r}[/cht] с помощью короткой прогонки луча через ОРС, с накоплением интенсивности [cht]I(-\mathbf{r})[/cht] каждой пройдённой ячейки, делёной на квадрат расстояния до этой ячейки. На практике, мы используем до 4 ячеек для прогонки. Эту процедуру можно объяснить как путешествие назад во времени распространения света (потому как при прогонке выбираются интенсивности, ещё не достигшие освещаемой поверхности), и выборки распределений интенсивности, ещё не размытых схемой распространения. Выборка из нескольких ячеек при прогонке по ОРС сглаживает оценку и предотвращает такие дефекты, как разрывы или мерцания в матовых отражениях.

Участвующая среда

Также метод ОРС пригоден для рендеринга таких сложных эффектов, как участвующая среда с однократным рассеиванием.

Сцена Crytek Sponza | Объемы распространения света для непрямого освещения в режиме реального времени.
Рендеринг реального времени (16 мс/кадр, NVIDIA GTX285 с разрешением 1280x720) сцены «Crytek Sponza» с использованием предложенного метода непрямого освещения с тремя каскадами ОРС.

Для этого на последнем этапе освещения сцены мы осуществляем полную прогонку лучей через все сетки ОРС и накапливаем поступающий рассеянный свет, предполагая изотропное рассеивание. Строго говоря, добавление рассеивания ведёт к дополнительному поглащению энергии, то есть мы должны учитывать такое перераспределение на этапе распространения света для соблюдения закона сохранения. Длина шага прогонки пропорциональна размеру ячейки сетки в пространстве сцены, то есть мы используем большой шаг в разреженных сетках и мелкий шаг в сетках, которые ближе к наблюдателю. На рисунке показан пример рендеринга однократного рассеивания с однородной участвующей средой. Время рендеринга увеличилось на 18 мс из-за прогонки лучей через ОРС, шаг прогонки здесь в точности равен размеру ячейки сетки. Рендеринг неоднородной участвующей среды (например, дым или пар) также возможен при условии хранения плотности такой среды в отдельной трёхмерной текстуре.

Взаимодействующая среда (однородный туман, однократное рассеяние). | Объемы распространения света для непрямого освещения в режиме реального времени.
Добавлена участвующая среда (однородный туман, однократное рассеяние). Рендеринг 29 мс/кадр с помощью объемной трассировки ОРС. Дополнительное время объемной трассировки 18 мс/кадр.

Обсуждение

Главным преимуществом предлагаемого метода являются низкие временные затраты и стабильные результаты. Стабильность достигается благодаря избыточной выборке поверхностей сцены с помощью ОТК и инжекции ВИС. Недостаточное разрешение ОТК может привести к мерцанию. Однако благодаря быстрому методу генерации и инжекции ВИС, легко выбрать ОТК с достаточным разрешением. Таким образом, предлагаемый метод может использоваться для освещения полностью динамических сцен, включая такую сложную геометрию, как растительность.

Непрямое освещение от растительности | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.12. Непрямое освещение (усилено для наглядности) с помощью ОРС от сложной динамической геометрии (растительность) без мерцаний. Полный рендеринг кадра занимает 20 мс на ГП GTX285 (без затенения и переотражений).

Ограничения предлагаемого метода также очевидны. Во-первых, пространственная дискретизация может проявляться как нежелательное просвечивание сквозь объекты. Этот дефект легко исправить с помощью иерархических сеток.

Нежелательное проникновение света | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.13. Нежелательное просвечивание через горизонтальную перегородку от правой стены из-за редкой пространственной дискретизации ОРС и ГС.

Во-вторых, свет сильно рассеивается из-за низкочастотного представления распределения интенсивности и используемой схемы распространения. По тем же причинам поддержка матовых и зеркальных поверхностей в процессе распространения не представляется возможной.

Влияние количества итераций распространения на результат.

issue_low_grid_30m | Объемы распространения света для непрямого освещения в режиме реального времени.issue_low_grid_60m | Объемы распространения света для непрямого освещения в режиме реального времени.
issue_low_grid_80m | Объемы распространения света для непрямого освещения в режиме реального времени.issue_low_grid_100m | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.14. Приближение непрямого освещения с помощью одной сетки ОРС (размером 30, 60, 80 и 100 метров). Иерархия сеток необходима в данной сцене для обеспечения светопереноса на средние и дальние расстояния с использованием нескольких итераций. светоперенос на близких расстояниях приближается с помощью дополнительных методов пространства экрана.

iterations_01 | Объемы распространения света для непрямого освещения в режиме реального времени.iterations_04 | Объемы распространения света для непрямого освещения в режиме реального времени.
iterations_08 | Объемы распространения света для непрямого освещения в режиме реального времени.iterations_16 | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.15. Одна сетка ОРС (без ГС) с 1, 4, 8 и 16 итерациями распространения. Недостаточное количество итераций ограничивает расстояние светопереноса. Обычно, 8 итераций обеспечивают достаточное расстояние распространения, в частности, с использованием ОРС с иерархией сеток.

Иерархические ОРС значительно снижают вычислительные затраты при расчёте больших сцен (в противном случае необходимо рассчитывать сетку очень большого разрешения, для которой время расчёта кубически зависит от разрешения сетки и линейно от количества итераций). Наконец, геометрия для вторичного затенения должна присутствовать либо в одной из ОТК, либо в геометрическом буфере камеры.

Тень от дальнего ящика отсутствует | Объемы распространения света для непрямого освещения в режиме реального времени.
Рис.16.Тень от дальнего ящика отсутствует — геометрия не охватывается ОТК, и лишь часть её видима из камеры. Недостаточное количество элементов поверхности инжектировано в ГС.

8. Заключение

В данной статье предлагается эффективный метод расчёта непрямого освещения для сложных динамических сцен в режиме реального времени. Предложенный метод  использует объёмное представление света и геометрии в сцене. Результаты продемонстрированы на различных сценах в сочетании с другими распространёнными методами для рендеринга реального времени. В будущем возможно ослабить ограничения метода, например с помощью идеи Фаттала [Fattal 2009] или сеток непрямоугольной структуры.

Список литературы



Bunnell, M. 2005.
GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation. Addison-Wesley Professional,
ch. Dynamic Ambient Occlusion and Indirect Lighting, 636—648.

Chandrasekhar, S. 1950.
Radiative Transfer. Dover Pubn Inc.

Dachsbacher, C., and Stamminger, M. 2005.
Reflective shadow maps.
In Proc. of the Symposium on Interactive 3D Graphics and Games, 203—213.

Dachsbacher, C., and Stamminger, M. 2006.
Splatting Indirect Illumination.
In Proc. of the Symposium on Interactive 3D Graphics and Games, 93—100.

Dachsbacher, C., Stamminger, M., Drettakis, G., and Durand, F. 2007.
Implicit visibility and antiradiance for interactive global illumination.
ACM Transactions on Graphics (Proc. of SIGGRAPH 2007) 26, 3.

Dong, Z., Kautz, J., Theobalt, C., and Seidel, H.-P. 2007.
Interactive Global Illumination Using Implicit Visibility.
In Pacic Graphics, 77—86.

Dutr E, P., Bala, K., and Bekaert, P. 2006.
Advanced Global Illumination. AK Peters.

Fattal, R. 2009.
Participating media illumination using light propagation maps.
ACM Transaction on Graphics 28, 1, 1—11.

Geist, R., Rasche, K., Westall, J., and Schalkoff, R. J. 2004.
Lattice-Boltzmann lighting.
In Rendering Techniques 2004 (Proc. of the Eurographics Symposium on Rendering), 355—362.

Greger, G., Shirley, P., Hubbard, P. M., and Greenberg, D. P. 1998.
The irradiance volume.
IEEE Computer Graphics Applications 18, 2, 32—43.

Hasan, M., Pellacini, F., and Bala, K. 2007.
Matrix row-column sampling for the many-light problem.
ACM Trans. Graph. 26, 3, 26.

Iwasaki, K., Dobashi, Y., Yoshimoto, F., and Nishita, T. 2007.
Precomputed radiance transfer for dynamic scenes taking into account light interreflection.
In Rendering Techniques 2007 (Proc. of the Eurographics Symposium on Rendering), 35—44.

Keller, A. 1997.
Instant radiosity.
In SIGGRAPH '97: Proceedings of the 24th annual conference on Computer graphics and interactive techniques, 49—56.

Krivanek, J., and Colbert, M. 2008.
Real-time shading with filtered importance sampling.
Computer Graphics Forum 27, 4, 1147—1154.

Losasso, F., and Hoppe, H. 2004.
Geometry clipmaps: terrain rendering using nested regular grids.
In SIGGRAPH '04: ACM SIGGRAPH 2004 Papers, 769—776.

McGuire, M., and Luebke, D. 2009.
Hardware-accelerated global illumination by image space photon mapping.
In HPG'09: Proceedings of the Conference on High Performance Graphics 2009, 77—89.

Mittring, M. 2007.
Finding Next-Gen: CryEngine 2.
In SIGGRAPH'07: ACM SIGGRAPH 2007 courses.

Nichols, G., and Wyman, C. 2009.
Multiresolution splatting for indirect illumination.
In I3D '09: Proceedings of the 2009 symposium on Interactive 3D graphics and games, 83—90.

Nichols, G., Shopf, J., and Wyman, C. 2009.
Hierarchical image-space radiosity for interactive global illumination.
Computer Graphics Forum 28, 4, 1141—1149.

Oat, C. 2006.
Irradiance volumes for real-time rendering.
ShaderX 5: Advanced Rendering Techniques.

Ramamoorthi, R., and Hanrahan, P. 2001.
On the relationship between radiance and irradiance: determining the illumination from images of a convex lambertian object.
J. Opt. Soc. Am. A 18, 10, 2448—2459.

Ramankutty, M. A., and Crosbie, A. L. 1997.
Modied discrete ordinates solution of radiative transfer in two-dimensional rectangular enclosures.
J. Quantitative Spectroscopy Radiative Transfer 57, 107—140.

Ritschel, T., Grosch, T., Kim, M. H., Seidel, H.-P., Dachsbacher, C., and Kautz, J. 2008.
Imperfect shadow maps for efficient computation of indirect illumination.
ACM Transactions on Graphics (Proc. of SIGGRAPH Asia) 27, 5.

Ritschel, T., Engelhardt, T., Grosch, T., Seidel, H.-P., Kautz, J., and Dachsbacher, C. 2009.
Micro-rendering for scalable, parallel final gathering.
ACM Trans. Graph. (Proc. SIGGRAPH Asia 2009) 28, 5.

Ritschel, T., Grosch, T., and Seidel, H.-P. 2009.
Approximating dynamic global illumination in image space.
In I3D '09: Proceedings of the 2009 symposium on Interactive 3D graphics and games, 75—82.

Sillion, F. 1995.
A Unied Hierarchical Algorithm for Global Illumination with Scattering Volumes and Object Clusters.
IEEE Trans. on Visualization and Computer Graphics 1, 3, 240—254.

Sloan, P.-P., Kautz, J., and Snyder, J. 2002.
Precomputed radiance transfer for real-time rendering in dynamic, low-frequency lighting environments.
ACM Transactions on Graphics (Proc. of SIGGRAPH 2002) 21, 3, 527—536.

Sloan, P.-P., Govindaraju, N., Nowrouzezahrai, D., and Snyder, J. 2007.
Image-based proxy accumulation for real-time soft global illumination.
In Pacific Graphics, 97—105.

Sloan, P.-P., 2008.
Stupid spherical harmonics tricks.
Presentation, Game Developer Conference (GDC2008), San Francisco, CA,
http://www.ppsloan.org/publications/StupidSH35.pdf.

Walter, B., Fernandez, S., Arbree, A., Bala, K., Donikian, M., and Greenberg, D. P. 2005.
Lightcuts: A scalable approach to illumination.
ACM Transactions on Graphics (Proc. of SIGGRAPH 2005) 24, 3, 1098—1107.

Wang, R., Wang, R., Zhou, K., Pan, M., and Bao, H. 2009.
An efficient gpu-based approach for interactive global illumination.
ACM Transactions on Graphics (Proc. of SIGGRAPH 2009) 28, 3, 18.

Yu, I., Cox, A., Kim, M. H., Ritschel, T., Grosch, T., Dachsbacher, C., and Kautz, J. 2009.
Perceptual influence of approximate visibility in indirect illumination.
ACM Transactions on Applied Perception 6, 4, 114.
Страницы: 1 2 3 4

6 января 2014

#global illumination, #глобальное освещение


Обновление: 8 января 2014

2001—2018 © GameDev.ru — Разработка игр