Дядя Миша реализацию сам писал, а идеи алгоритма брал отсюда http://www.ray-tracing.ru/articles184.html и отсюда https://cs.uwaterloo.ca/~thachisu/tdf2015.pdf
В принципе, в первой ссылке всё есть. Единственное что, они почему-то в бесстековом траверсе не учитывают, что если найдено пересечение с треугольником, то можно пропускать узлы, которые дальше этого пересечения. А в варианте со стеком учитывают.
ncuxonaT писал: Единственное что, они почему-то в бесстековом траверсе не учитывают, что если найдено пересечение с треугольником, то можно пропускать узлы, которые дальше этого пересечения. А в варианте со стеком учитывают.
Дядя Миша там написано, что нельзя остановить поиск после нахождения первого пересечения, и это верно.
А я говорю, что если нашел пересечение, то дальше имеет смысл проходить только те узлы, расстояние до которых меньше или равно расстоянию до найденного пересечения.
Обнаружил вот какую любопытную вещь: те исходники X-Ray, что валяются в общем доступе и на гитхабе - фейковые. Нет, ну из них конечно можно собрать икс-рей и он наверное даже будет работать с оригинальными ресами сталкера, но это не те исходники, которые были изначально.
Я уже не помню где я их урвал, но там есть капитальное отличие - компиляторы не лежат в папке utils. Если бы на этом всё и заканчивалось, то какая разница. Но там есть такие файлы, которые в общеизвестных исходниках просто отсутствуют. Например там есть рассчёт PVS. И тесселяция. Всё это не было использовано на тот момент, но еще сохранялось в коде.
Я уже много раз объяснял, что в NT нет никакого рендерера по дефолту.
Пользоваель сам себе строит абсолютно любой рендерер. Хоть как в метре, хоть как в халфе. И довольно быстро, надо всего лишь написать шейдеры и придумать собственный язык описания материалов. Ну или использовать уже существующий, например как в ку3.
Не помню, говорил я или нет, в Англии есть такая поговорка:
чтобы всё осталось по прежнему, всё должно измениться.
Это как нельзя более отвечает концепции нового Ксаша. Тот же Элбер, помню сокрушался, что да, визуально новые движки выдают отличную картинку, но как же неудобно под них что-то делать. В отсутствие брашей и прочих мелких, досадных ограничений. То есть народу всегда нравилось делать карты таким подходом, который когда-то предложил Кармак.
Опять таки, многим принципиально нравится кубать. Современный движок предполагает, как правило что-то одно. Или кубать или моделить.
Теоретически там браши могут быть, как в Годоте или UE (даже в CE), но они не годятся для создания серъезных конструкций.
Я хочу попытаться найти баланс в таком подходе. Чтобы можно было и кубать как раньше, делая гигантские уровни брашами, и точно так же набивать уровни моделями, как в метро или сталкере.
XaeroX писал: В Волатиле можно и кубать, и моделить, и совмещать и то и другое.
Это понятно. Но я прекрасно помню, с каким трудом ты ЧЭАС туда затолкал и без лайтмапы.
Вот вам к слову наглядная иллюстрация того, как работают мип-мапы.
Кол-во полигонов не меняется, но при приближении используются старшие мипы, а значит фрагментный шейдер выполняется для большего кол-ва пикселей и фпс падает.