Войти
ПрограммированиеФорумГрафика

Каустика в реальном времени (комментарии)

Страницы: 1 2 3 4 5 6 Следующая »
#0
21:32, 5 янв. 2010

Каустика в реальном времени (комментарии)

Это сообщение сгенерировано автоматически.


#1
21:32, 5 янв. 2010

Попиарюсь немного :)

#2
21:34, 5 янв. 2010

Респект... :)
Какнить потом реализую...

#3
22:04, 5 янв. 2010

Блики не могут уходить за теневой контур. Будут засвечены.
Но это моё имхо.

#4
22:45, 5 янв. 2010

Могут, я проводил эксперемент дома и мы с Sergio обсуждали это... Так что всё корректно...
Сам попробуй поставь например банку стеклянную с водой и поиграйся с фонариком...

#5
22:56, 5 янв. 2010

The elephant
> Блики не могут уходить за теневой контур. Будут засвечены.
Могут. Это точно

#6
23:02, 5 янв. 2010
The elephant
> Но это моё имхо.
Тут не имхо, а физика работает.
#7
0:55, 6 янв. 2010

Круто, что тут скажешь :)

#8
2:57, 6 янв. 2010

Еще с 21 декабря ждал статью)
Интересно вышло.

#9
11:47, 6 янв. 2010

Я думаю надо взять было шар, и попробовать добиться такого:
Изображение

Хотя бы в приближении. Потому что у дракона нету "шаблона".

#10
12:19, 6 янв. 2010

Врядли такое получится сделать в рилтайме...
Хотя как я понимаю тут просто много источников света с разными цветами... Просто отрендерить несколько каустик для каждого источника надо... Но это производительность убьёт я думаю...

#11
12:30, 6 янв. 2010

В целом, отлично развернул, мне понравилось :)

только непонятно пару моментов:

>Общий алгоритм нахождения пересечений в images-space такова:
> 1) находим начальную точку и направление вектора (луча света), для начала берем единичную длинну вектора
> 2) проецируем этот вектор на текстуру (в квадрат [0..1]x[0..1]) - получаем из этого вектора текстурные координаты
> 3) по полученным текстурным координатам читаем из предварительно заготовленной текстуры (из первого прохода) глубину и >восстанавливаем положение прочитанной точки в world-space
> 4) находим расстояние между начальной и прочитанной точкой.
> 5) если расстояние больше заданного, то домножаем начальный вектор на это расстояние. Переходим к пункту два
> 6) если расстояние небольшое - значит мы нашли пересечение.
>Обычно для нахождения пересечения хватает всего двух итераций.

в п.5 непонятно "расстояние больше заданного". имелся ввиду фиксированный шаг? и почему достаточно всего двух итераций?
когда я делал каустику похожим методом, для того чтобы достичь более-менее приемлимых результатов мне приходилось увеличивать
кол-во итераций до 250. либо я чего-то недопонял в твоем алгоритме, либо у тебя полуфейковый трейсинг :)
можно подробней про пересечения?

#12
14:51, 6 янв. 2010

RaZOR
> можно подробней про пересечения?
Ну в оригинале они там модифицировали метод Ньютона для нахождения пересечения. И получилось так, что на втором шаге (когда длина вектора бралась как расстояние от начальной точки до первой спроецированной) пересечение уже было найдено

#13
15:08, 6 янв. 2010

Статья интересная, только сегодня прочел. Респект!

#14
21:24, 6 янв. 2010

В расчеты вкралась небольшая ошибка, вернее сказать - неточность!
Скоро поправлю

Страницы: 1 2 3 4 5 6 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.