g-cont
Не понял как ты желаешь бсп на ланджафте
Ландшафт не используется для построения дерева. Он потом в уже готовое фильтруется.
g-cont
Ну и в чем поинт ? Либо все либо ничего
Поинт в том, что построить сектора с порталами, говорю же.
Аутдор с ландшафтом - это нулевой сектор, внутренности домов - это вложенные сектора. В индоре может быть много высокополигональных детайлов, которые как раз эффективно отсекаются через портализацию.
g-cont
Зачем тогда бсп? Просто ставишь порталы на окнах дверях вручную ... А если домик динамический строится ....?
innuendo
> Зачем тогда бсп? Просто ставишь порталы на окнах дверях вручную ...
Чтоб не расставлять границы секторов вручную.
innuendo
> А если домик динамический строится ..
Тогда окклюдеры
g-cont
> Аутдор с ландшафтом - это нулевой сектор, внутренности домов - это вложенные
> сектора
Как ты определяешь, какой сектор является аутдором?
0xc0de
возможно есть для этого какие-то особые способы, но я примерно такое делал для зеркал, типа какие объекты в принципе могут быть видимы в зеркало при любом ракурсе. Просто трассировал лучами в пределах зеркала(луч стартовал в пределах площади зеркала, по полусфере от нормали) и собирал список объектов. Так как это все делается на уровне запечь и забыть, то вообще мало волнует скорость выполнения такой операции. Тут можно было бы сделать похожим образом(если стреляя из портала попали в другой портал, то значит далее луч будет пересекать только outdoor, если попали во что-то но не в портал, значит мы попали в indoor).
Далее: таким образом, у нас есть список объектов, который мы теоретически можем видеть через наш портал(например дверь входная), возможна ситуация, что мы через нашу дверь можем видеть только стены коридора, светильник на потолке коридора и шкаф, остальную внутрянку домика мы вообще никак через дверь не увидим, профит. Далее мы можем по этому списку теоретически видимых объектов построить внутреннюю ускоряющую структуру для объектов домика. Далее мы можем построить фрустум от нашей двери и проверять на видимость уже те объекты, для которых построили ускоряющую структуру.
Смысл в том, что мы таким образом полностью исключили какую либо ручную работу, кроме того, что нам нужно впихнуть в дверной или оконный проем плейн.
0xc0de
Ты подсчитай число листьев дерева для простого хайполи домика и это только он один такой
Хотя если домик типа кубика .......
g-cont
Покажи скрин домика
innuendo
> Просто ставишь порталы на окнах дверях вручную ...
Порталы на окнах в любом случае вручную придётся ставить.
innuendo
> А если домик динамический строится ....?
Не, у меня такое не предусмотрено. Статика онли.
0xc0de
> Как ты определяешь, какой сектор является аутдором?
Честно говоря никак не определяю, да и в сущности это не имеет значения. Я его просто в тексте так назвал, для удобства.
innuendo
> Покажи скрин домика
Та нечего пока показывать.
Ruslan
> Просто трассировал лучами в пределах зеркала(луч стартовал в пределах площади
> зеркала, по полусфере от нормали) и собирал список объектов.
Вот я ж как раз и хочу избежать трассировки при отсечении, мне это активно не нравится.
g-cont
> собирал список объектов.
> Вот я ж как раз и хочу избежать трассировки при отсечении, мне это активно не
> нравится.
Тогда придется формировать список вручную, или линковать изначально внутренности домика в одну группу, или задавать, в любом случае, это уже будет большее число объектов на тестирование с фрустомом, но да ладно, все зависит действительно он полишлнальности мешей, их количестве, возможно вам и не нужно сильно упарываться, а так-то трассировка может быть моментальной от 1 кадра, до например одной секунды, в зависимости от того, как реализована, и какого размера могут быть объекты внутри дома, может 1 см.
На всякий случай еще раз уточню, что трассировка в данном случае выполняется не каждый кадр во время игры, а один раз при инициализации, или вообще один раз в оффлине, что бы сформировать списки.
g-cont
Заварил ты кашу и что в итоге?
innuendo
напомню мой изначальный вопрос не касался BSP-дерева. Так что ещё вопрос кто кашу заварил.
А у меня есть привычка что-либо спрашивать заранее, на будущее. А не в момент, когда это надо срочно делать.
Ruslan
первая отбраковка идёт по номеру сектора, это в сотни раз быстрее тестирования на попадание во фрустум.
Тема в архиве.