Вий, видать, ожидает, что хоть в этот раз его все начнут домогаться, что же, как же так, как ему это удалось?.. но нет. пара человек спросят, вий триумфально повыделывается и все снова забьют ещё на 5 лет.
Suslik
Так я ещё в прошлый раз рассказал что тут репроекция и реймаршинг. Облако видимых в прошлый кадр точек обычно видно и на следующий кадр. Достаточно сделать реймаршер примерно как в http://www.pouet.net/prod.php?which=5Heaven 7
И с его помощью освежать облако по частям особенно там где раньше было не видно или закрыто.
И дальше забавный эффект: чем выше FPS тем больше кадры похожи друг на друга, тем меньше нужно обновлять и тем выше FPS
Вий
А реймаршинг всё таки медленнее, чем растеризация дерева. А репроекция даёт артефакты, правильно?
EyeGem
Реймаршинг очень быстрый, особенно если маршировать по дереву
EyeGem
Репроекция облака точек не даёт артефактов. Рассматривай реймаршинг как алгоритм поиска видимых атомов, а репроекцию как просто вывод уже найденого облака точек. Даже формулы для репроекции и само название тут не совсем уместно применять: никто не мешает в буфере хранить не только цвет и омегу, но и все исходные координаты каждого видимого атома
Вий
а если камеру быстро назад развернуть, то весь экран будет перерейкастиваться?
Suslik
Быстро это за сколько кадров?
Вий
за один кадр
Suslik
Да, будет очень долгий кадр. Ну или можно порейкастить каждый шестнадцатый пиксель и нарисовать прямоугольники 4х4 на первый кадр, и даже как в heaven 7 для найденых объектов выполнить пастеризацию с интерполяцией. Тогда за 3-4 кадра получится найти все видимые точки на сценах без мелких далеких объектов менее 4 пикселов видимым диаметром.
ещё я так и не понял, что происходит, если подъехать к геометрии слишком близко, когда не на каждый экранный пиксель приходится по одной точке.
Suslik
На кроликах хорошо видно как при приближении поверхность начинает напоминать Майнкрафт с кубиками. Один воксель геометрии может отображаться как любое количество видимых точек с фрактальными координатами
Я делал плоские грани в бесконечном ужасе 1 и такие же как у Брюса в ужасе 128. Я так понял, у него сглажены грани кубов и размыты линейно цвета
Вий
Если реймаршинг пускает каждый луч, то это не тот алгоритм) Правильный алгоритм работает всё таки как растеризация с ускорением вывода последних октокубиков за счёт ортохака и постоянной доукладки кубиков 32x32x32 в линейные кусочки памяти от примерно 32-40 байт до 300K (очень редкий случай воксельной не-поверхности, а заполненности), обычный же размер где-то 20K. Репроекцию тоже можно применять. Сортированный окто-спуск по линейному блоку памяти с рисованием с отрохаком это ОЧЕНЬ быстро))
EyeGem
Мало смысла укладывать более 64 байт линейно. Разве что для стриминга полезно
Тема в архиве.