А, круто! стендалоун будет или в блендоту воткнут?
__________________
Dr. Bowman: "So what was it?"
Sly: "Anachronox! Man, you guys are dumb."
Dr. Bowman: "But... You said it started with a 'U'."
Sly: "Yeah I know."
Был написан вот такой шейдер шерсти и волос. Вообще даже новые движки - юнити и анрил очень как то плохо дружат с полупрозрачными текстурами и освещением. Приходится рендерить в несколько проходов, что не очень быстро. Тем не менее, тут и мир тень на неё отбрасывает, оно и само на себя шадоумапу отбрасывает, и на окружающий мир более менее корректно, да ещё и бликует как то. Почти как настоящая шерсть из рендеров 3д пакетов, только тут она конечно полигональная для оптимизации.
Шейдер неона:
Рекурсивные зеркала с регулируемым разрешением (тут можно так же увидеть как шейдер шерсти выглядел раньше)
Идея старого шейдера была рисовать полупрозрачность через шумовую однобитную маску.
Коричневый квадрат под водой это стенсильный подводный туманчег. Когда игрок выглядывает наполовину камерой из воды, под водой уровень рисуется с туманом, а над водой - без.
Смешивание PBR текстур с параллаксом в 4 слоя с лайтмапой:
Бамп маппинг для радиосити с лайтмапы:
Стандартное юнитивское освещение в старом рендере, работает очень бажно в купэ с PBR. Потому пришлось писать свой шейдер для освещения. Так же были написаны свои шейдеры для скайбокса, опять же из-за невозможности регулировать уровень отрисовки у стандартного.
Так же была написана база для бесшовных переходов между уровнями идентичная первой Халфе, разве что пока без кнопок. Тем не менее, всё сохраняется, и объекты прекрасно шастают с уровня на уровень. Работают ветки, может даже в будущем реализуется круговая схема бесшовных переходов - чего нет вообще нигде, по крайней мере я такого нигде не видел. Юнити как оказалось чертовски быстро обрабатывает JSON и грузит уровни за доли секунды, правда это довольно простые уровни ввиде коробок.
На данный момент пока я взял перерыв, в будущем планирую сделать нормальную RMA загрузку, ибо держать каждую карту в отдельном файле очень накладно, да и шадоумапы от такого глючить начинают. Куда оптимальнее распихать монохромные маски по каналам.
Есть ещё мысль собирать карту нормалей из карты высот на лету, чтобы не таскать их в проекте, как думаете это хорошая идея?
kotar.sys писал: юнити и анрил очень как то плохо дружат с полупрозрачными текстурами и освещением. Приходится рендерить в несколько проходов, что не очень быстро.
Как несколько проходов помогают?
Цитата:
kotar.sys писал: Идея старого шейдера была рисовать полупрозрачность через шумовую однобитную маску.
В юнити нет встроенного темпорал фильтра? Он бы мог сгладить шум.
Цитата:
kotar.sys писал: Смешивание PBR текстур с параллаксом в 4 слоя с лайтмапой:
Они просто так блендятся или еще хейтмапу учитывают?
Цитата:
kotar.sys писал: Есть ещё мысль собирать карту нормалей из карты высот на лету, чтобы не таскать их в проекте, как думаете это хорошая идея?
kotar.sys писал: Вообще даже новые движки - юнити и анрил очень как то плохо дружат с полупрозрачными текстурами и освещением
Я неоднократно объяснял, что рендеринг полупрозрачных материалов - весьма нетривиальная задача, если конечно речь идёт не о планарных поверхностях. Движок тут вообще непричём.
Цитата:
kotar.sys писал: Работают ветки, может даже в будущем реализуется круговая схема бесшовных переходов - чего нет вообще нигде, по крайней мере я такого нигде не видел.
В халфе всё это прекрасно работает, но с ограничением до 16 выходов с одного уровня. Теоретически в сталкере это тоже должно работать.
Цитата:
kotar.sys писал: Юнити как оказалось чертовски быстро обрабатывает JSON
Размер этого джейсона какой?
Цитата:
kotar.sys писал: Есть ещё мысль собирать карту нормалей из карты высот на лету, чтобы не таскать их в проекте, как думаете это хорошая идея?
Хреновая. Нормали должен дизайнер настраивать. А вот TBN щас налиту генерят прямо в пиксельном шейдере и его действительно нет резона хранить в геометрии.