?

Log in

No account? Create an account
14 сент, 2006 @ 10:21 Оптимизация стенсильных теней. Вопрос №2
Оптимизация стенсильных теней. Проверка на необъодимость отрисовки теневого объема.

Нужно: определить, падает ли тень на объект, попадающий в видовой фрастум.

Предположение: Строить треугольники из bbox-а объекта, растягивать их по источнику света и проверять пересечение треугольников этого трасформированного bbox'а с боксами других объектов, находящимися в радиусе этой ламочки.

В теории так подойдёт, вот только Я посмотрел на функцию, которая проверят пересечение треугольника с bbox'ом и мне поплохело. Уж больно она тяжёлая. Посему даже не знаю, стоит ли делать проверку на пересечение 12-ти треугольников(теневой объем) с боксами объекта. Не тормознее ли это будет чем просто включить scissor и отрисовать эти объемы(пусть даже пару лишних)?

По сему вопрос: Существуют ли более быстрые методы проверки на видимость теневого объема?

P.S. Если кто сможет кинуть шустрый код опрделения пересечения треугольника с bbox'ом - буду рад
P.P.S. AABBOX'ы не используются..
haruko
timai:
[User Picture Icon]
From:sim0nsays
Date:Сентябрь, 14, 2006 04:57 (UTC)
(Ссылка)
А зачем в стенсельных тенях определять, падает ли тень на объект? Какая в этом оптимизационная ценность?
(Ответить) (Ветвь дискуссии)
[User Picture Icon]
From:timai
Date:Сентябрь, 14, 2006 05:02 (UTC)
(Ссылка)
Рисовать ли volume. Если тень не падает ни на один объект, попадающий в видовой фрастум - зачем её рисовать? Отрисовка объёма дорогое удовольствие.
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:sim0nsays
Date:Сентябрь, 14, 2006 05:06 (UTC)
(Ссылка)
Т.е. предлагается проверить каждый волюм против каждого объекта и надеяться, что ни на кого не упадет? Думаю смысла в этом нет. Гораздо веселее проверять попадание волюма в некий bounding box сцены (а то и во фруструм). Если он попадает во фруструм - практически гарантированно он на кого-нибудь бросит тень, и рисовать все равно придется.
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:timai
Date:Сентябрь, 14, 2006 05:12 (UTC)
(Ссылка)
Идея определения попадания объйма во фраструм меня посещала. Вот только существуют ли быстрые алгоритмы опреджеления попадания геометрии во фраструм?
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:sim0nsays
Date:Сентябрь, 14, 2006 05:13 (UTC)
(Ссылка)
Гхм. Frustrum culling?
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:timai
Date:Сентябрь, 14, 2006 05:43 (UTC)
(Ссылка)
Уже есть. Но только проверяются bbox'ы.
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:sim0nsays
Date:Сентябрь, 14, 2006 05:44 (UTC)
(Ссылка)
Ну ты как бы работай над собой :)
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:timai
Date:Сентябрь, 14, 2006 05:48 (UTC)
(Ссылка)
Ну как бы работаю =)

/me утопал курить гугль.
(Ответить) (Уровень выше) (Ветвь дискуссии)
From:(Анонимно)
Date:Сентябрь, 14, 2006 08:39 (UTC)
(Ссылка)
Ну, хорошо не попал объект во фрустум, а кто сказал, что тени от него не видно? Классический, между прочим, баг, когда объекты попали во фрустум - и бах! Тени повились в разных местах тоже!
(Ответить) (Уровень выше) (Ветвь дискуссии)
[User Picture Icon]
From:timai
Date:Сентябрь, 14, 2006 08:43 (UTC)
(Ссылка)
Проверяется не объект, а его теневой объём.
(Ответить) (Уровень выше) (Ветвь дискуссии)