Создание теневого ЛОДа ShadowVolume

Теневой ЛОД, как следует из названия нужен для отображения теней. Армовский движок умеет автоматически генерировать тени для моделей, если количество полигонов не превышает 3тыс. (не точно), для более полигональных и больших моделей и нужен этот ЛОД.

Теневой ЛОД, как и обычный желательно делать hi-poly и low-poly, прорисовка детализированной тени на расстоянии ни к чему.

Небольшая хитрость: по умолчанию тень в игре будет выглядеть очень отчетливо, не будет сглаженных краев где тень начинает исчезать. Что бы сделать ее «мягкой» нужно в пропертис (параметрах) Коллизии прописать sbsource=shadowvolume и Prefershadowvolume=0, но в таком случае нагрузка на GPU будет намного больше.

shadow_smooth shadow_edge

Правила создания теневого ЛОДа

  1. Теневой ЛОД, как и ЛОДы геометрии не должен иметь открытых полигонов (т.е. если вы создали куб и удалили один полигон — тень будет работать неправильно). Совсем не обязательно делать тень как геометрию из боксов, можно просто посклеивать точки так, чтобы все полигоны оказались закрытыми.
  2. Вся модель должна иметь острые грани (U на клавиатуре)
  3. Вся модель тенового ЛОДа должна быть триангулирована (/ на клавиатуре, или Structure -> Triangulate), после триангуляции обязательно нажать U и F5
  4. ЛОД не должен иметь текстур и материалов.
  5. Тень не должна вылезать за пределы самой модели, иначе эта часть модели у вас будет все время в тени. Можно попробовать обратить полигоны (W на клавиатуре)

Примерно вот так должен выглядеть теневой ЛОД для автомобиля:

В Оксигене есть функция определения незакрытых полигонов — нажимаем Structure -> Topology-> Find Non-Closed

Он выделит красными точки, которые имеют незакрытые грани:

На скрине имеем проблемное место — правое зеркало. На прокси не обращаем внимания, их закрывать не нужно. Для закрытия таких простых участков можно воспользоваться инструментом «Close» — выделяем всю модель и идем Structure -> Topology -> Close. Этот метод сработает только на геометрически простых объектах. Для более сложных нужно закрывать полигоны вручную. Выделяем 3 или 4 точки и жмем на клавиатуре F6

Таким образом закрываем все открытые полигоны:

После всех работ незабываем триангулировать модель, сделать все грани острыми, и на всякий случай пересчитать нормали.

Теневой ЛОД готов.