Материалы

Материал из BestWay wiki
Перейти к: навигация, поиск

Именование материалов


Все имена должны быть логически обоснованы, если их больше одного на модели. Для одного-двух материалов допустимо давать имя «material1», «mtl1» и т.п. Однако крайне рекомендуется давать мнемонические имена, типа «hull», «barrel», «stuff» и т.п.

Нельзя оставлять автоматически назначаемые имена типа «Material #378», особенно при большом количестве материалов в модели (больше 3) – возможно после вас с моделью будет работать кто-то другой и потратит ценное время на выяснение, к чему данный материал относится.

Имя мультиматериала рекомендуется начинать с префикса «multi_» (для удобства навигации в списке материалов).

Желательно, чтобы имена материалов совпадали с именами диффузных текстур. Это может оказаться полезным, т.к. в дальнейшем, возможно, некоторые материалы будут выноситься в общие папки, что потребует уникальности их имен. Имена материалов, как и имена костей в иерархии объекта не должны содержать пробелов, знаков препинания и т.п. символов, недопустимых в именах файлов.

Важно:

Все материалы при изготовлении модели в 3dsmax должны быть типа Standard, «обернутые» в материал-оболочку EclipseMtl. Исключение составляют мультиматериалы, для которых требуется только название, удобное для моделера. Для их дочерних материалов – то же требование, что и для независимых материалов. Очень часто наблюдается ошибка, когда в сцене с моделью сложного объекта (дома например) присутствует полсотни мультиматериалов с одинаковым набором дочерних материалов и все это названо с помощью автоматической системы именования 3dsmax. В таком наборе приходится разбираться не меньше получаса, вычищая лишнее и создавая ссылки типа instance для одинаковых материалов. Контролируемый процесс создания материалов так же важен, как и процесс создания самой модели! Если текстура не указана, то автоматически генерируется текстура размером 2x2 с диффузным цветом материала. Следует избегать таких ситуаций, поскольку появляются лишние текстуры, к тому же материалов без текстур в модели быть не должно.



Типы материалов в игре


  1. В материале-оболочке EclipseMtl в 3dsmax должен быть выбран тип смешивания («прозрачность»):
Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения
    • для непрозрачных материалов обязательно None!
    • для решеток и т.п. материалов, не требующих полупрозрачности – Test
    • для полупрозрачных материалов – Blend
    • для светящихся материалов – Add
    • для некоторых специальных материалов – Sub
  1. В простейшем случае текстура накладывается на модель с помощью материала типа simple в игровом движке. Этот материал содержит только диффузную текстуру (канал Diffuse в материале 3dsmax).
  2. Для имитации рельефной поверхности и металлического блеска используется материал типа bump. Для него в материале 3dsmax должны быть указаны диффузная текстура, а также bump-текстура (канал Bump, уровень подбирается экспериментально) и маска бликов specular (канал Specular Level). Могут быть либо обе текстуры, либо одна из них – все равно материал будет типа Bump. В случае использования маски specular имеет значение цвет (Specular Color) – он будет экспортирован и использован в игре.
  3. Для имитации отражения используется материал типа envmap, оперирующий с заданной кубической картой отражения («энвирой»). Для настройки такого материала должна быть указана только диффузная текстура и в EclipseMtl установлен флажок «мэппинг окружения» (см. рис.). Если материал отражает равномерно (вода, чистое стекло), можно указать только «коэффициент отражения»: 1.0 – только для зеркал, для стекла и воды – макс.0.8. Если имитируется естественно загрязненное стекло или протертый до полировки металл, а также в случаях если не вся поверхность с данным материалом должна отражать, нужно использовать маску – отдельную текстуру, указываемую в поле «маска отражения» (см. рис.). При использовании маски коэффициент отражения игнорируется. В игре материалы, использующие кубические карты окружения, могут использовать энвиру-по-умолчанию, указанную в настройках погоды. Это обычно верно для воды и стекол в окнах. Для всех остальных поверхностей обычно степень блеска невелика и приходится подбирать энвиру вручную, чтобы наиболее качественно подчеркнуть эффект отражения (обычно это касается металлов). В таком случае нужно указать еще и «карту отражения» (см. рис.).
  4. Для имитации загрязнений, оттенения, а также для усиления объема, без модификации основной диффузной текстуры – используются лайтмапы. Они реализованы посредством применения материала типа multiply. Также этот материал можно использовать для отрисовки сложной текстуры, полученной умножением цвета одной на другую (может применяться как подкраска некоторых материалов). Для использования лайтмапы в материале нужно вместо обычной текстуры в диффузном канале использовать карту RGB Multiply, в которой в поле Color#1 указывается основная диффузная текстура, с Map Channel=1, а в Color#2 – текстура лайтмапы с Map Channel=2. Если предполагается использование лайтмапы, которая одновременно и затемняет и осветляет модель, в EclipseMtl выставляется флажок «Modulate2X lightmap» (см. рис.). Подробнее о лайтмапах см. документ «lightmap_render.doc»



Набор материалов для модели


Скорость рендера в игре зависит, помимо прочего, от количества разных типов материалов. Все одинаковые материалы объединяются при рендере в один проход отрисовки. Вообще, чем меньше материалов на модели, тем лучше. В идеале несколько моделей могут использовать не только одни и те же текстуры (что уже реализовано), но и ссылаться на одни и те же материалы. При подготовке набора материалов нельзя забывать о максимальном размере поддерживаемых текстур (см. Формат текстур). В случае, когда нужно покрыть текстурой модель значительных размеров, то настоятельно рекомендуется использовать лайтмап, который позволит разделить детали текстуры на мелкие-четкие (базовая «затайленная» диффузная текстура) и крупные-размытые (лайтмап). Оптимизация требует компромисса между полигонами и текстурами. Возможно, на этапе подготовки набора материалов, придется переделать часть модели, если от этого будет зависеть сокращение количества текстур и материалов и, как результат, выигрыш в скорости прорисовки объекта. Если текстура не содержит альфа-канала, а необходимо использовать полупрозрачность (например, альфа задана в вершинах), то в материале нужно задать Opacity=99%.

Важно: Все материалы структуры экспортируются в папку common в корневом каталоге структуры