У вертолета из 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
А что подводный туманчек светится в темноте?
Неплохо, добавь ещё каустиксы и пенку по краям. И убери этот вырвиглазный блюм.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
SNMetamorph писал: то правильно освещать мутную - весьма нетривиальная задача на самом деле.
Здесь мы очевидно имеем дело с volumetric light в рассеяной среде.
Можно посмотреть в сорцы Tesseract, там на удивление быстрая реализация volumetric, хотя фейк наверное.