Заметка: VertexLighting - как отсутствие обычных теней позволяет впихивать иллюзорные углубления

Заметка: VertexLighting - как отсутствие обычных теней позволяет впихивать иллюзорные углубления

Предисловие

Моим первым полноценным заходом в около-геймдев был моддинг Gmoda, а именно — создание карт для режима Alien: Isolation. Оригинальная карта от Wheatley (создателя режима) мне не шибко нравилась по двум причинам — слабая детализация и слишком широкие пространства, что я и решил исправить в своем заходе на данное поприще.

Кое как научившись моделить, рисовать текстуры и импортировать это все дело в Gmod, я из говна и палок (а именно из своих моделек и ресурсов карты от Wheatley) собрал свое первое детище, AI_hospital.

Заметка: VertexLighting - как отсутствие обычных теней позволяет впихивать иллюзорные углубления

Хоть на тот момент мне и нравилась моя подделка, из-за кривого смешения разных ассетов и кривого качества моих собственных моделек я решил сделать еще один заход — AI_generator

Заметка: VertexLighting - как отсутствие обычных теней позволяет впихивать иллюзорные углубления

Хоть эта карта и не смогла полностью избавиться от ресурсов Wheatley, но зато она привнесла много новых вещей, таких как:

  • ИИ выживших, патрулировавших карту и стрелявших в игрока (очень быстро убивались чужим)
  • Больше кастомных моделей, на этот раз со сглаживанием (чего не было в первой части)
  • Трехмерный скайбокс с летающим на фоне газовым гигантом

Но самое главное — двери, причем не столько саму модельку, сколько рамку:

Заметка: VertexLighting - как отсутствие обычных теней позволяет впихивать иллюзорные углубления

Суть

В ходе создания рамки, моим главным врагом стали треугольные углубления по бокам, которые сами по себе очень тяжело сделать, так они еще и били по производительности, превращая ровную поверхность рамки в ультраполигональное месиво. Пытаясь как либо пофиксить эту проблему, я нашел совершенно неожиданное техническое решение, которое оказалось возможным исключительно благодаря дерьмовой модели шейдинга движка Source — VertexLighting.

Суть трюка состоит вот в чем: если мы возьмем ровную поверхность и «положим» на неё геометрию в виде «тарелки», то благодаря отсутствию теней и отрисовки задних граней, с определенного ракурса будет казаться, что в поверхности на самом деле есть углубления:

Заметка: VertexLighting - как отсутствие обычных теней позволяет впихивать иллюзорные углубления
Заметка: VertexLighting - как отсутствие обычных теней позволяет впихивать иллюзорные углубления

Должен отметить, что трюк хорошо работает только в том случае, если "тарелка" достаточно плоская и очень близко лежит к несущей плоскости — в противном случае, глаз быстро раскусит трюк и начнет создавать проблемы для восприятия. К слову, данный трюк скорее всего можно провернуть и в более технологических движках, навроде того же Unreal — для этого нужно отделить тарелки в отдельную модель, которой затем нужно будет отключить тени (не тестировал, но просто предполагаю).

Заметка: VertexLighting - как отсутствие обычных теней позволяет впихивать иллюзорные углубления
Заметка: VertexLighting - как отсутствие обычных теней позволяет впихивать иллюзорные углубления
1616
5 комментариев

Комментарий недоступен

2
Ответить

ты орбуз?

2
Ответить