Вий
> узнать, что именно видно на месте сместившихся краев травинок можно, например, запустив новый луч, но не из глаза, а примерно с того расстояния до камеры на котором была точка перекрытия другим вокселом
На это место может прийти более близкий воксель, чем был раньше.
Вообще проше считать, что движется не камера, а сцена. Тогда репроецированные точки - это часть сдвинувшейся сцены и они задают верхнюю границу расстояния, но не нижнюю
> можем предположить, что видно в этой точке будет воксел который примерно посередине между двумя видимыми рядом
Если оба луча попали в один лист (терминальный узел) октодерева, то и все между ними - туда же
1Man1
> На это место может прийти более близкий воксель, чем был раньше.
Он не мог быть закрыт от нас вокселем, который находился от нас дальше. Он может относиться только к видимой поверхности, поверхность может быть неровной, но обычно эта неровность ограничена, ну то есть я бы ожидал что воксель ближе на 2 расстояния между видимыми в соседних пикселях вокселями или даже на 10.
Вий
Так он пришел с другого пиксела или даже был там перекрыт другим вокселом
В общем с близкими вокселами понятно, что делать,
а вот с дальними...
Время на трассировку по равномерной сетке ~ расстоянию
если он был перекрыт другим вокселом, то этот другой воксел его перестал перекрывать и в этот момент мы оттрасировали бы вдоль края этот новый видимый воксел
Вий
Еще такой момент - на кадре 1 каждый пиксел скрывает за собой потенциально ряд вокселов, лежащих на одной прямой, из которых мы видим только ближайший
Камера сдвинулась+повернулась и на кадре 2 мы уже видим весь этот ряд, как точки на одном отрезке. Надо вести учет, что может прийти в каждый пиксел и с каким потенциально Z (для ряда нам известен из прошлого кадра min Z и мы можем его пересчитать в соотв-и с трансформацией камеры между кадрами). Притом, чем ближе воксел (меньше Z на экране) - тем больше его смещение на экране от прошлого кадра и длиннее отрезок
Конечно, этот ряд нам неизвестен (это все пересечения луча со сценой, их обьединение для всех возможных лучей из позиции камеры = вся сцена). Надо репроецировать отрезки от Z до inf на новый кадр и вдоль них записывать значение min Z
Кажется это интересная мысль, завтра обдумаю на свежую голову!
1Man1
Примерно так, да.
Вий
Нет, все ерунда. Для большинства репроецированных точек Z мало отличается от текущего кадра.
Притом пускаем лучи уже с другой позиции камеры, только один луч проходит через обе
Одна мысль - новые видимые точки появляются только за старыми точками, т.е на продолжении луча, пущенного в нее из камеры. Оно проецируются на экран в отрезок от репроекции точки до точки схода, чем дальше точка по Z, тем отрезок короче
Если отрендерить все такие отрезки на экран серым цветом, достаточно пускать новые лучи только через серые точки
Для ближних точек в indoor отрезки длинные, а для дальних менее одного пиксела и там уже не придется рэйкастить
Также все эти отрезки исходят из проекции прежней позиции камеры, если двигаться на экране по лучам, исходящим из нее, - не придется многократно перекрашивать пикселы
Вий
Репроекцию можно сделать полностью на GL, включая рэйкаст 3d текстуры
Смысл тогда заниматься софтрендером? Остается только спортивный интерес
Смысл только в том, чтобы использовать не жалкие 12 гигабайт видеопамяти а 1 ТБ оперативной памяти.
Вий
Сцена Minecraft 1000x1000x1000 - это всего лишь гигабайт на информацию о блоках
Проблема - как ее быстро отрассировать и отрисовать, а тут GPU с его 256 потоков вне конкуренции
P.S. Рендерить SVO / Point cloud - еще тяжелее
P.P.S. Сделал рэйкаст по октодереву (вернее mipmap), всеравно не особо быстро
Смысл только в том, чтобы использовать не жалкие 12 гигабайт видеопамяти а 1 ТБ оперативной памяти.
Новые видеокарты 24 гига будут в 2025.
А 1 тб оперативки мало у кого и через три года будет.
ronniko
1 тб можно установить уже много лет как.
В первом попавшемся магазине 128 гиг одной планкой стоят 90 000.
Аналогичный обьем видеопамяти в ближайшие десятилетия не предвидится.
ronniko
> Новые видеокарты 24 гига будут в 2025.
При нынешних ценах скоро у типового юзера не будет отдельной видеокарты, начнут пользоваться всякими встроенными фигнюшками. Придется производителям игр подстраиваться под такой рынок.
Вий
Хочу увидеть Ужас3D1Tb!
Zab
Тогда софтрендер вновь станет актуален