У вертолета из CS, который на as_oilrig - orange.mdl (и arcticorange.mdl на as_tundra) - концы лопастей тоже сияют. Там пары компланарных полигонов (с разными нормалями), и соединены они как попало. Одна такая пара не светится, я хотел закономерность найти, но там такая мешанина что голову сломаешь.
В общем, фикс сработал, поэтому расписываю в чем была проблема.
Каким-то образом, не знаю, это вина компилятора студиомоделей или самого моделлера, но в моделях были нулевые нормали. Они попадаются даже стандартных моделях из HL1. А дальше получалась такая цепочка: нулевые нормали попадают в VBO, затем в вершинный шейдер через атрибуты вершин, там происходит нормализация нулевого вектора, и это возвращает либо ноль (бага нет) либо NaN (именно по этой причине баг визуально проявляется), и это зависит от версии драйвера и видеокарты. Лично на моем железе бага не было, но у нескольких других человек он проявлялся. Ну а поскольку в результате получился NaN, то он похерил все остальные последующие вычисления в фрагментном шейдере. Именно оттуда эти ореолы вокруг объектов.
Фикс получился довольно простой: при загрузке студиомодели я нахожу нулевые нормали и задаю им рандомное направление. https://github.com/SNMetamorph/Prim...261be9a5a8df3d7
nemyax писал: Ну а ты собирал под 64 бита? Работает?
Собирается под 64 бита оно без проблем, в том числе утилиты. Сам прайм на 64 битах не тестил, как то влом, а вот утилиты работают вообще без каких либо проблем.
Пока допиливаю и оптимизирую все, чтобы можно было создать пул реквест в оригинальный репозиторий. Сначала вся сцена рисуется в текстуру через шейдер, который сравнивает положение вершины с предыдущей и считает для неё перемещение за t. Потом постпроцесс шейдер блюра по этой текстуре блюрит итоговую картинку.
Сегодня ровно год с того момента, как PrimeXT начал своё существование. За и этот год, конечно, поменялось очень многое. По хорошему бы сделать огромный changelog, но мне пока как-то лень его составлять, ибо там реально много всего.
Добавлено 07-08-2022 в 20:01:
Чтобы хотя бы что-то было, приложу скриншоты с новым шейдером воды.
Дядя Миша писал: Как теперь обстоят дела с производительностью?
Я многое не делал, вот как раз чтобы скорость работы не упала.
Пока что ничего нового, потому что я только освещением занимался пока. После того как закончу с ним, можно будет и перфомансом заняться параллельно с другими вещами
SNMetamorph писал: то правильно освещать мутную - весьма нетривиальная задача на самом деле.
Здесь мы очевидно имеем дело с volumetric light в рассеяной среде.
Можно посмотреть в сорцы Tesseract, там на удивление быстрая реализация volumetric, хотя фейк наверное.