a1batross
Как то там всё прыгает и накладывается друг на друга у него что вообще можно разобрать?
Цитата:
Дядя Миша писал: Так же как и на статическом уровне. Единственная проблема - у меня нету карт нормалей для этих моделек из ремастера. Не на чем тестировать.
Для теста можно и самому сгенерировать. Вот держи такая утилита есть:
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
a1batross
В любом случае выглядит как мешанина, там ещё и старый интерфейс под ним.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Дядя Миша
Кстати, а какой порядок каналов для нормалей у тебя? Можно в мета файле ресурса указать тип нормали?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Дядя Миша
Как референс можешь глянуть в Юнтити при импорте ты можешь настроить метаданные для текстур и моделей. Ещё до того как она попадёт в материал и шейдер. Что позволяет быстро заменять текстуры не исправляя кучу материалов.
В Texture type задаётся к чему относить эту текстуру, к текстуре, спрайту, нормали, кубамапе, UI, лайтмапе.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
У меня мета-материалы. Можно исправить саму настройку материала, добавить туда новый функционал. Так что думаю, проблемы нет.
Ну чтож, сегодня наконец сбылась мечта идиота - попиксельные лайтстили.
Вы вероятно над этим не задумывались, но корректное смешение лайтстилей на GPU - это архисложная задача. Вот так, чтобы не разбивать батчи по сурфейсам, каждый из которых имеет свой набор лайтстилей, что в общем случае крайне негативно сказывается на производительности. К тому же лайтстили, приложенные к сурфейсу не дружат с инстанс-моделями.
И вообще стили должны быть привязаны к лайтгруппе. а лайтгруппа это виртуальное понятие, которым оперирует только лайтмаппер, движок про нее ничего не знает. То есть мало просто собрать лайтмапы в большие атласы - лайтстили сломают эту идиллию нахрен.
При том, что лайтстили сохранённые в текстуру не могут иметь интерполяцию. То есть всё это дело постоянно норовит взорваться уродливыми артефактами. Но тем не менее - у меня получилось.
Теперь лайтстили вообще никак не влияют на производительность
Ну и плавающий лимит присутствует конечно - 4 лайтстиля на лайтгруппу.
А вот лайтгруппы, товарищи юзеры вы в принципе можете регулировать самостоятельно, как раз на такой вот стрёмный случай. Ну и не только на такой. В 99% случаев компилятор прекрасно справляется сам. Но иногда ему требуется помощь. Теперь это регулируется со стороны дизайнера.
Добавлено 06-10-2023 в 19:44:
Так, ну чтожы. Пора показать некоторые достижения. Скриншоты в порядке появления эффектов:
Нет эффектов.
Хай-рез текстуры
Нормал-маппинг
Оффсет-маппинг (он же рельф-маппинг, он же параллакс)
Скриншоты имеют накопительный эффект, т.е. на каждом следующем видны предидущие фичи + новая. Обратите внимание как падает фпс.
Осталось только подключить PBR и тестирование бампа завершено.
Добавлено 06-10-2023 в 19:45:
Как и прошлые разы, напоминаю - в движок не лазаю. Все эти эффекты были подключены путём редактирования материалов и шейдеров.
Ну чтоже. Могу сказать, что работа над лайтмаппером завершена.
Начал я им заниматься в июле 2020-го года и вот наконец он обзавёлся всем необходимым и превзошёл по своим возможностям абсолютно все лайтмапперы для всех движков семейства Quake и их производных.
За промышленные лайтмаперы ничего скажу - там и требования другие.
Впрочем как и за лайтмапперы того же Unity\Unreal. Будете сами сравнивать и мне рассказывать. Однако один момент всё же отмечу. Судя по всему, мой лайтмаппер - единственный, который умеет давать инстанс-моделям персональные лайтмапы. В том же юнити я поковырялся - там освещение еденичным цветом, ну как и в сталкере. Т.е. это довольно непростая в реализации фича. Более подробно распишу в документации.
То что лайтмаппер завершён ещё не означает, что я больше не буду над ним работать. Какие-то небольшие исправления, оптимизации, внедрение новых режимов запекания - это всё будет. Но фундаментальные принципы меняться уже не будут. В этом плане будет логичнее написать ещё один лайтмаппер, чем трогать этот, если вдруг возникнет такая необходимость.
Ну а поскольку теперь у меня есть стабильный референс в виде статически запечённого света - пора переходить к динамическому освещению.
Для начала разумеется сделаю обычный прямой свет. Собственно сам свет не проблема запилить уже сейчас, но нужны ещё две вещи:
1. эффективная система отсечения невидимых источников. Будет построена на уже знакомой вам технологии визлайт матрицы. Я использовал её в параное и остался доволен. Это на мой взгляд вообще единственная технология, которая позволяет в реалтайме рисовать лайты с квадратичным радиусом затухания. Я в своё время писал об этом. Пакость этих лайтов заключается в том, что отсечение их по радиусу невозможно в принципе - каждый такой лайт заведомо больше площади экрана. Т.е. все эти кластеры и отложка идут лесом. Поэтому в играх по прежнему используют либо лайтмапу либо локальные лайты, радиус которых гарантированно меньше площади экрана. А у меня есть технология как рисовать подобные лайты в реалтайме. Правда с оговоркой что лайты не должны двигаться, но ведь они и так не двигаются. А для подвижных лайтов можно юзать и линейный радиус затухания.
2. система рендеринга теней. Проблема теней в том, что для каждого источники выделяют одну теневую карту. Причём эти карты ещё и разные - где-то кубемапа для всенаправленных источников, где-то каскады, т.е. несколько теневых карт на источник, где-то одна, для проекционных.
Это очень неудобно и мешает полноценному менеджменту на GPU. Чтобы не проталкивать в параметры что-то, а решать эти задачи целиком на GPU. Я вижу это таким образом, что движок подаёт на вход рендеринга только массив с индексами лайтов, которые видны из текущей позиции взгляда, а всё остальное полностью решается в шейдере. Это наиболее гибкая и надёжная схема.
Динамическое освещение в движок планируется внедрить в течение следующей недели. Само по себе освещение делается легко - это немного кода в шейдере. Главная сложность - это бакэнд, обеспечение. То самое, на которое я убил почти три года и мне даже нечего было вам показать в плане скриншотов. Ну зато теперь любая задачка решается в рекордные сроки. Реалтайм радиосити займусь уже в следующем году.
Добавлено 06-10-2023 в 22:33:
Цитата:
XaeroX писал: Аж стены раздвигаются!
Экспериментатор движений вверх-вниз видит простор там где мне видна стена!
Цитата:
XaeroX писал: 528 фпс на карте из первой кваки, и это ещё теней нет?
Так этот параллакс ещё и считается самым оптимизированным. Хотя я и не сравнивал. А тени-то чего тормозить будут? Я не собираюсь их вычислять каждый кадр, 60 раз в секунду за глаза достаточно.