Тема: Light Propagation
Показать сообщение отдельно
Старый 02.08.2015, 16:47   #1
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Light Propagation

Есть такой алгоритм вычисления Global Illumination: Light Propagation Volumes.
Хочу понять как он работает. Для этого делаю 2д версию алгоритма. Вместо сферических гармоник использую просто массив лучей света во все 360 направлений.
Возможно было бы лучше вместо этого массива лучей использовать список таких объектов: {startAngle, startLight, endAngle, endLight}. По крайней мере растягивать такой световой поток было бы очень просто

Текущий алгоритм https://bitbucket.org/dddenisss/lp/s...r.cs?at=master
Функция RadiateLight распространяет свет по осевым направлениям. Причем при переносе света в каждое направление, свет разделяется 3 потока света.
Центральный световой поток идет прямо по оси, на соседнюю клетку. А 1й и 3й световой поток идет по диагонали. В общем на картинке все показано.

Но получается что свет идет просто в 8 направлениях и не рассеивается. А вот как его правильно рассеивать я что-то не пойму.

Есть люди понимающие в этом алгоритме?
Репозиторий: https://bitbucket.org/dddenisss/lp/overview
Миниатюры
Нажмите на изображение для увеличения
Название: screenshot 1.png
Просмотров: 897
Размер:	17.1 Кб
ID:	21818  Нажмите на изображение для увеличения
Название: screenshot 2.png
Просмотров: 1081
Размер:	38.8 Кб
ID:	21819  
(Offline)
 
Ответить с цитированием