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

Тени, frustum culling, octree/quad-tree... (3 стр)

Страницы: 1 2 3
#30
15:16, 24 авг 2009

@!!ex
> от направленного источника света нужно строить бокс
А зачем?

#31
20:03, 24 авг 2009

SNVampyre
Неправильнъй у тебя сорс какой-то - а вдруг множество плоскостей, в которъх внутри свет преръвается?
Потом - зачем делать специальнъй класс для такого фрустума - ето опять фрустум, только там больше плоскостей.

#32
20:06, 24 авг 2009

Z
Это просто пример.

У меня например есть просто класс Slicer, которых хранит плоскости и умеет рубить примитивы.
Вообще не стоит обсуждать код, его же всегда можно рефакторить...

А на счёт прерывающегося плоскостями источника света - я бы не стал такое учитывать.
Вычислений станет больше, а толку никакого.

#33
20:50, 24 авг 2009

SNVampyre
> Вообще не стоит обсуждать код, его же всегда можно рефакторить...
Ну, какбе форум для етого, не?

SNVampyre
> Вычислений станет больше, а толку никакого.
Ето однократное въчисление на кадр... :)
При том, оно будет работать железно, в отличии от магического кода, полного предположений о том как лежат и сколько плоскостей в фрустуме.
Которъй перестанет работать сразу же, как решиш те плоскости поменять местами (для оптимизации примерно).

#34
22:44, 24 авг 2009

Z
> Ето однократное въчисление на кадр... :)
А если лампочек у тебя несколько сотен и между ними тысячи перегородок?

> в отличии от магического кода
Ну если ты не понял суть алгоритма, то это уже твои проблемы.
Я кстати, уже изменил код и теперь в нём дыр нет никаких (там не учитывались ещё пара плоскостей).

#35
22:51, 24 авг 2009

Z
Если у меня плохой код, напиши свой.
Пусть он будет более оптимальным и понятным, и учитывает большее количество нюансов.

#36
1:28, 25 авг 2009

SNVampyre
> А если лампочек у тебя несколько сотен и между ними тысячи перегородок?
Тогда ето другая задача, чем у топикстартера вроде.

SNVampyre
> Ну если ты не понял суть алгоритма, то это уже твои проблемы.
Я понял, отсюда и комент что магический.

Тъ спокойней относись к критике, ето полезно.

#37
1:52, 25 авг 2009

Elec3C
> А как вычислять длину тени, чтобы правильно построить бокс/фрустум?

по теоореме пифагора.

вообще смари сюда: http://developer.download.nvidia.com/SDK/10.5/opengl/samples.html а конкретно пример с Cascaded Shadow Maps. там есть структура баундингсферы и цикл, который ставит камеру ис так тоб все баундинг сферы нужные были видны.

а вот понять какие нужны а какие нет тут уже надо хитростью :) моя идея в следущем: переводишь луч границы тени из глоб системы координат(он задан скажем как вершина баундинг сферы и вектор направления лучей света) в экранную систему координат и если вдруг он пересекает хоть одну из сторон экрана(монитора) (луч-проекция луча света и 4 отрезка- стороны монитора левая правая верхняя и нижняя ) то надо этот объект рисовать в шадовмапу

может так даже прощще будет чем ковыряния с вашими боксами. тут всего 2(модельвью для перехода в айспейс и прожекшн(а их произведение можно пощитать заранее тогда по 1!)) домножения матриц на объект и от 1й до 4х проверок на пересечение отрезков с лучом.

космическая смекалка :)))))))

Страницы: 1 2 3
ПрограммированиеФорумГрафика

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