Aslan
> Получается, надо совместить расчет матриц с occlusion test, чтобы не считать
> каждую заклепку
Ослан, это тебе не поможет когда этот трансформ понадобится для игровой логики. Да и чтобы просчитать твой окклюдинг трансформ серавно нужен.
samrrr
Шлюха, опять бегаешь за мной
Aslan, лучше б ты на него бан накатал, за оскорбление. А теперь у вас 2/2 счет.
Aroch
> Внутренности того в котором сейчас камера, ограничены лишь пространством вокруг
> камеры, там будет пускай несколько комнат, но это снова не весь корабль и все
> его объекты.
допустим, мы рисуем куб, а в кубе находится болт. Куб не прозрачный. Куб попадает в камеру целиком. Как мы откинем отрисовку болта?
Я представляю как это делается, но это дополнительный код, который мы в любом случае обязаны обрабатывать.
Aslan, ты оскорби его любимый компилятор, а лучше унизь этот компилятор. И sammr сам тебя "забанит". )))
допустим, мы рисуем куб, а в кубе находится болт. Куб не прозрачный. Куб попадает в камеру целиком. Как мы откинем отрисовку болта?
Положить на это болт :)
Mirrel
> допустим, мы рисуем куб, а в кубе находится болт. Куб не прозрачный. Куб
> попадает в камеру целиком. Как мы откинем отрисовку болта?
если болт статичный или имеет частичную свободу и мы точно можем сказать всегда что он внутри или вне куба без каких либо танцев с бубном, то нам достаточно знать где находится камера относительно куба, внутри или снаружи. И все что снаружи/внутри куба будет автоматом отсечено в зависимости от положения камеры. Твой пример даже проще чем у ТСа.
если болт статичный
Вот именно, если.
Лучше сначала знать сколько треугольников в болте и сколько болтов.
Если 4 штуки и каждый по 90 треугольников.
То не париться.
то нам достаточно знать где находится камера относительно куба, внутри или снаружи.
За эту же операцию мы нарисуем инстансом 4 болта ( каждый по 90 треугольников).
А вот если куб в нутри волосатый или с растениями на 600 000 треугольников, то надо обязательно замарочится и оптимизировать.
ronniko
> А вот если куб в нутри волосатый или с растениями на 600 000 треугольников, то
> надо обязательно замарочится и оптимизировать.
убрав волосатость и 600000 треугольников.
Купить бритву, которая бреет миллион раз в секунду :)
Aroch, это стандартный пример.
Я веду речь о том, что в любом случае мы обрабатываем "болт", узнаём внутри он или нет. И из этой логики рисуем его или нет.
От кода мы ни куда не денемся. Мы можем только "упростить" обрабатываемый код, для того чтоб не рисовать лишнее (а возможно не только рисовать).
ronniko
> Лучше сначала знать сколько треугольников в болте и сколько болтов.
> Если 4 штуки и каждый по 90 треугольников.
просто мы делаем обработку болта определённым примитивом. Возможно тем же треугольником. И если этот треугольник весь в кубе, то соответственно не обрабатываем его вообще. И не надо ни каких 90 треугольников лепить.
Mirrel
пройти проверку на отрисовку. За эту же проверку мы нарисуем инстансом 4 болта ( каждый по 90 треугольников).
Я говорю о том , что не всегда отброс не видимых болтов полезен и нужен и дает выигрыш !
Вот о чем я.
https://gamedev.ru/code/forum/?id=273183&page=4&m=5646536#m51
Mirrel
> Я веду речь о том, что в любом случае мы обрабатываем "болт", узнаём внутри он
> или нет. И из этой логики рисуем его или нет.
Вот только мы можем закэшировать что болта нет, пока мы в ящике не окажемся и забыть про него.
Ну там добавить в лист неактивных объектов.
ronniko, на самом деле от реализации зависит. Большинству, думаю, сейчас и заморачиваться не стоит. "Видеокарта всё сделает за него".
Super_inoy
> Ну там добавить в лист неактивных объектов.
ну и? ))) Одно и то же говорим. Лист будет обрабатываться в любом случае. Просто покажет что рисуем, а что нет.
Просто не все понимают, что обрабатывать все объекты на сцене в любом случае придётся. А вот как раз реализация проверок и показывает, что попало в кадр, а что нет.
Mirrel
> ну и? ))) Одно и то же говорим. Лист будет обрабатываться в любом случае.
Не, ты не понял, твой вариант это каждый кадр проверять, а тут проверить 1 раз,
и повесить триггер камера в боксе, который уже будет перемещать из неактивного листа в активный.
Естественно для 1 болта разницы нет, а если болтов 1000 в одном ящике, т.е. триггер 1, а объектов
много, то разница принципиальна.
Mirrel
> что обрабатывать все объекты на сцене в любом случае придётся.
Банальное октодерево уже опровергает это утверждение.
Super_inoy
> а тут проверить 1 раз,
> и повесить триггер камера в боксе, который уже будет перемещать из неактивного
> листа в активный.
А если в боксе маленькая дырочка, и иногда через эту дырочку мы можем видеть болт когда находимся снаружи?