|
|
Строка 1: |
Строка 1: |
− | В этой статье я постараюсь объяснить создание правильных карт ''bump'' и ''bump#'' с помощью '''Adobe Photoshop''' и '''X-ray SDK'''. Думаю, с этими дополнительными составляющими текстурами много кто сталкивался, много кто искал пути правильного их создания. На самом деле, чтобы правильно создать бамп-карты, необходимо освоить как техническую сторону вопроса (делать, так сказать, "по науке"), так и практическую (различные методики работы в фотошопе, обработка текстуры, исправление возможных косяков и т. д.). В данной статье больше всего внимания будет уделяться именно первому пункту, ведь в любом деле лучше сначала выучить основы, а потом, в том числе, самостоятельно обучаясь, получить опыт в практике, улучшить свое мастерство.<br>
| + | Наш сервис предоставляет настоящие лайки на фото заказчиков, которые готовы платить за качество. |
− | <br>
| + | |
− | '''Немного о структуре и стилистике статьи, дабы все было в дальнейшем более понятно'''<br>
| + | Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и зарабатывать за это деньги. |
− | Многие игровые текстуры (в Сталкере - все) находятся в формате ''RGB''. Если кто не знает, есть понятие "каналы". Их вкладка в ФШ находится справа, ''"Слоев"''. В ''RGB'' это:<br>
| + | |
− | <pre>
| + | Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк, |
− | R - red (красный)
| + | |
− | G - green (зеленый)
| + | Вам достаточно просто зарегистрироваться на нашем сервисе. > like.zarplatt.ru < |
− | B - blue (синий)
| + | |
− | </pre>
| + | Вывод заработанных средств ежедневно в течении нескольких минут. |
− | При их "смешивании", получаем нормальную окраску изображения. В общем, указания по каналам в данной статье будут даваться в виде, как блок выше.
| + | |
− | Иногда в RGB каналов больше (можете сами попробовать добавлять в фотошопе). В игре используется канал ''Альфа 1'' (его еще просто "Альфой" кличут). У него есть, разумеется, свои особые функции. Итого, вот так будут выглядеть указания по каналам:<br>
| + | |
− | <pre>R - что должно быть на красном канале
| + | |
− | G - что на зеленом
| + | |
− | B - что на синем
| + | |
− | Alpha - что на Альфе
| + | |
− | </pre>
| + | |
− | Статья разделена на три основные части:<br>
| + | |
− | 1. '''Теория'''. Здесь будут описаны сами карты ''bump'' и ''bump#'', а также некоторые другие рабочие карты и элементы (не забудьте заглянуть в подраздел ''"Мини-словарь терминов статьи"'').<br>
| + | |
− | 2. '''Работа в фотошопе'''. Описание действий в фотошопе, которые необходимы для подготовки элементов бампа.<br>
| + | |
− | 3. '''SDK'''. Завершающая часть работы по бампу. Здесь собираются, регистрируются, настраиваются составляющие бампа, а в последствии, - создаются ''bump'' и ''bump#''.
| + | |
− | ==Теория==
| + | |
− | Для начала попытаюсь объяснить структуру основных карт и разобрать основные понятия статьи. Всё ниже написанное не обязательно верно на все 100%.
| + | |
− | | + | |
− | ===Height Map (карта высот)===
| + | |
− | Карта высот - сугубо служебная карта в Сталкере. Как отдельная текстура не встречается, однако, если вы делаете карту нормалей в фотошопе, то для начала нужно будет создать или "запечь" в специальных программах карту высот. В карте высот все построено на белых (высоты), черных (впадины), серых (плюс-минус ровные плоскости) оттенках. В целом, в основном выходит, что основная часть изображения - серая, в выпуклых местах оно светлее, а на месте впадин - темнее.
| + | |
− | | + | |
− | ===Normal Map (карта нормалей)===
| + | |
− | Карту нормалей можно получить следующими способами:<br>
| + | |
− | - сгенерировать с высокополигональной модели в 3д-редакторе, в роде '''3ds Max''', '''zBrush'''...<br>
| + | |
− | - сгенерировать с ранее созданной карты высот с помощью одного из плагинов для '''Photoshop''' (плагин NVIDIA, плагин PixPlant, плагин xNormal)<br>
| + | |
− | - сгенерировать с ранее созданной карты высот в спец-прогах ('''xNormal''', '''PixPlant''', '''CrazyBump''')<br>
| + | |
− | Если разбирать по каналам схематически, то выглядит так:<br>
| + | |
− | <pre>
| + | |
− | R - ось X - указывает нормали влево и вправо (горизонтальные)
| + | |
− | G - ось Y - указывает нормали вверх и вниз (вертикальные)
| + | |
− | B - ось Z - указывает нормали в глубину от поверхности
| + | |
− | </pre>
| + | |
− | При включенном ''RGB'' на каналах, смотрится как текстура в синих, фиолетовых, сиреневых, даже иногда розовых цветах. Нормал мапу очень и очень рекомендуется создавать для бампа (тем более, если она с хай-поли модели), а не использовать сокращенный вариант с картой высот (об этом узнаете в разделе СДК ниже). Нормал мапа, собственно, и предает текстуре различных объемных черт. В дальнейшем, после сборки в СДК, карта станет частью ''bump''.
| + | |
− | | + | |
− | ===bump===
| + | |
− | | + | |
− | Карта ''bump'' представляет собой обычную карту нормалей в формате A(BGR) (типично для формата сжатия DXT5_nm). Разработчики использовали такой порядок по очень простой причине - DXT компрессия гораздо меньше "портит" текстуру, так как альфа-канал не подвергается компресии и остается практически в исходном виде. Поясню: еще раз гляньте на каналы карты нормалей. А теперь представьте, что на пустое изображения с каналами RGBA поставили все ту же карту нормалей, только перевернутую по каналам. То есть наполнение R с карты нормалей перешло на канал Альфа (А) карты ''bump'', G перешло в B, B перешло в G. Что касается канала R в бампе, туда поставили ''Specular Map'' (карту бликов). О ней можете подробней почитать в мини-словаре терминов.<br>
| + | |
− | Также хочу напомнить, что в своем полном виде карта ''bump'' создается из карты нормалей + текстурой с спекуляром на Альфе в СДК. Такая-вот текстурная солянка. Думаю, вы знаете, что она в игре делает, но если вы столкнулись с данными терминами первый раз, то все довольно просто: карта делает текстуру объекта более красивой, объемной, с выпуклостями и впадинами, добавляет или запрещает отражение текстурой света от солнца, лампы, фонарика и т. д. Вот, например, новенькому листу металла было бы неплохо придать возможность отражать блики, а кирпичной текстуре задать впадины между кирпичиками. А вот дереву, допустим, никаких отражений света не надо, хотя высоты (впадины и выпуклости) добавить таки можно. Еще замечу, что бампы не нужны для текстур партиклов, текстур интерфейса и еще ряда специфических изображений. К основной текстуре привязывается через файл '''текстура.thm'''. Но по поводу этого не беспокойтесь, ведь файлы thm появляется при создании бампа/подключении бампа к текстуре в СДК.
| + | |
− | | + | |
− | Каналы:
| + | |
− | [[Изображение:Argb.png|300px|thumb|right|Каналы в карте bump]]
| + | |
− | <pre>R - Specular map - карта интенсивности блика
| + | |
− | G - ось Z - указывает нормали в глубину от поверхности
| + | |
− | B - ось Y - указывает нормали вверх и вниз (вертикальные)
| + | |
− | Alpha - ось X - указывает нормали влево и вправо (горизонтальные)</pre>
| + | |
− | | + | |
− | ===bump#===
| + | |
− | | + | |
− | ''Bump#'' - очень интересная карта, назначение которой для многих непонятно. Так как нагуглить какую-либо информацию насчет правильного названия мне не удалось, я называю ее просто "Normal error map". Не знаю, используются ли подобные технологии в других играх, но встретить ее где-либо, кроме сталкера, мне не удалось. Эта карта "фиксит" ошибки сжатия DXT у бампа и генерируется только с помощью СДК, поэтому всякие непонятные действия некоторых пользователей, вроде вставки вместо нее обычной или обесцвеченной карты нормалей, а также описанного в статье Argus'a заливания серым со вставкой в альфа-канал карты высот, использовать нельзя. Выглядит как серое зашумленное изображение. Еще раз напоминаю, ''bump#'' создается <u>автоматически</u> при генерировании ''bump'' в СДК.
| + | |
− | | + | |
− | Каналы:
| + | |
− | <pre>R - ошибки оси X карты нормалей
| + | |
− | G - ошибки оси Y карты нормалей
| + | |
− | B - ошибки оси Z карты нормалей
| + | |
− | Alpha - карта высот; используется для параллакса, если использование оного было включено при настройке текстуры</pre>
| + | |
− | | + | |
− | Для сравнения:
| + | |
− | {|
| + | |
− | |-
| + | |
− | |[[Изображение:W.jpg|center|250px|thumb|C bump#]]||[[Изображение:Wo.jpg|center|250px|thumb|Без bump#, заметны артефакты]]
| + | |
− | |}
| + | |
− | | + | |
− | ===Мини-словарь терминов===
| + | |
− | Здесь будет находиться описание некоторых терминов, которые встречаются в статье.
| + | |
− | '''Diffuse texture ака диффузная текстура ака диффуз''' - основная исходная текстура, для которой делаются дополнительные карты.<br>
| + | |
− | '''Specular Map ака карта бликов''' - карта, которая в последствии работы в СДК станет частью бампа (на красном канале). Отвечает за отражение текстурой света. Изготавливается либо с диффуза в Фотошопе, либо параллельно с диффузом в 3д-редакторе. На карте черным (и оттенками черного) обозначаются места, которые не будут отсвечивать свет), а белым (и оттенками) - которые будут отсвечивать.<br>
| + | |
− | | + | |
− | ==Работа в фотошопе==
| + | |
− | Здесь также понадобится '''NormalMapFilter''' от '''nVidia''', полагаю, у вас он уже установлен, так как он идет в комплекте с dds-плагином или другой удобный плагин (озвучены выше, в теории карты нормалей).
| + | |
− | Все файлы сохраняются в tga 24 bits/pixel (если нету альфа-канала) или 32 bits/pixel (если есть альфа-канал). Перед сохранением следует перевести изображение из 16-битного в 8-битное.
| + | |
− | | + | |
− | ===Карта высот===
| + | |
− | | + | |
− | На карте высот белым цветом обозначены выпуклости, черным - впадины. Если бамп делается для текстур окружения, то можно начать работу с оригинальной (диффузной) текстуры, если же бамп делается для персонажа, то такой способ обычно неприемлем, зачастую из-за камуфляжа, который никак не должен сказываться на рельефе ткани (хотя, в принципе, если есть определенный опыт работы, прямые руки и старание, то подобных косяков можно избежать).
| + | |
− | По сути, создание карты высот - процесс творческий, могу дать лишь несколько советов:
| + | |
− | *Над картой высот работа должна проводиться строго в 16bits, причем с самого начала до финального экспорта в SDK[[Изображение:16bits.PNG|160px|thumb|right|Перевод в 16-битное изображение]]
| + | |
− | *Качественного результата не будет, если просто взять и засунуть диффузную текстуру в генератор, не делайте этого. Придется тщательно поработать над картой высот.
| + | |
− | *Не обязательно пытаться показать на карте высот все детали и рельеф сразу, их можно добавить позднее, когда будет сгенерирована карта нормалей.
| + | |
− | [[Изображение:Увеличение_детализации.png|300px|thumb|left|Пример добавления деталей]]
| + | |
− | <br clear="all" />
| + | |
− | <span style="color:#696969">(Пример сделан прямо во время написания статьи)</span>
| + | |
− | *Для карты высот, если делаете ее с диффуза, можно взять один из каналов ''RGB'' диффузной текстуры или же взять обесцвеченную. При первом варианте, выберите желаемый канал, выделяйте изображения, копируйте, вставляйте его в новый документ. Новое изображение будет в режиме ''"Градация серого"''. Рекомендую перевести опять в ''RGB'', так как не все плагины и фильтры читают ''"Градацию"''. При втором варианте, просто создайте дубликат изображения и нажмите ''Ctrl+Shift+U'' (''"Обесцветить"'').
| + | |
− | *На текстуре карты высот можно сделать слой поверх фонового, на который нужно скопировать обесцвеченную инвертированную исходную текстуру. Звучит не очень, но это все не сложно. Берем диффуз, нажимаем ''Ctrl+I'' (инвертируем). Потом обесцвечиваем, как показано выше. Копируем на новый слой карты высот. Режим наложения выставляем ''"Перекрытие"'' (''"Overlay"''). Дальше еще можно сделать слой более прозрачным. В целом, смотрите, чтоб текстура была сбалансированной в плане плоскостей. Ровная часть должна быть заполнена серым оттенком.
| + | |
− | *Очень пригодятся в этом случае инструменты ''"Осветлитель"'' и ''"Затемнитель"''.
| + | |
− | *Поверх всего можно добавить еще один слой, на котором будете использовать инструменты в роде "Кисти".
| + | |
− | ====Metro 2033 (если кому интересно)====
| + | |
− | | + | |
− | [[Изображение:Metro_example.png|300px|thumb|left|Пример получаемой карты нормалей из Metro 2033]]
| + | |
− | <br clear="all" />
| + | |
− | В метро вместо карт нормалей, как обычно бывает в большинстве игр, используется карта высот - файлы с постфиксом ''_bump''. Они есть только в том случае, если вы распаковывали игру самостоятельно, большая часть сборщиков "Архивов моделей" их в архив не добавляет.
| + | |
− | "Состав" карты высот Метро 2033:
| + | |
− | <pre>R - пустой канал
| + | |
− | G - Specular map - карта интенсивности блика
| + | |
− | B - пустой канал
| + | |
− | Alpha - карта высот</pre>
| + | |
− | | + | |
− | ===Карта нормалей===
| + | |
− | Создание происходит следующим образом: берем карту высот, открываем фильтр, задаем настройки по усмотрению. Далее получаем готовую карту нормалей. Нужно осмотреть карту, чтоб там не было мелких не нужных горбиков и прочих недостатков. Скорее всего, все можно будет решить размытием в некоторых местах. Еще, как вариант, чудесная методика размытия, при которой изображение все равно остается более четким:<br>
| + | |
− | 1. Дублируем фоновый слой.<br> | + | |
− | 2. Дубликату выставляем режим ''"Перекрытие"''.<br>
| + | |
− | 3. Применяем один из фильтров размытия (к примеру, ''"Размытие по гауссу"'').<br>
| + | |
− | 4. Если надо, дублируем этот слой еще пару раз.
| + | |
− | | + | |
− | ===Specular Map===
| + | |
− | Данную карту создавать не сложно: взять обесцвеченный диффуз и обработать темным оттенком те регионы, которые не будут отражать свет, а светлым - которые будут. Чем интенсивней оттенок, тем сильнее эффект.
| + | |
− | | + | |
− | ==SDK==
| + | |
− | ===Карта нормалей===
| + | |
− | | + | |
− | При наличии уже готовой карты нормалей, изготовленной вами, из другой игры, '''zBrush''' или любой другой программы высокополигонального 3d моделирования, остается только добавить ее в '''SDK'''. ДЛя чего регистрировать в СДК? Для того, чтоб потом совместить нормал мапу с заготовкой для бампа и получить бамп.
| + | |
− | Параметры:
| + | |
− | *'''0.4''':
| + | |
− | Type: 2D Texture, Format: 32 bit (8:8:8:8), MipMap Filter: Kaiser (здесь уже по желанию, я всегда использую Kaiser)
| + | |
− | [[Изображение:0.4_nmap.png|150px|thumb|left]]
| + | |
− | <br clear="all" />
| + | |
− | *'''0.5/0.6, 0.7''':
| + | |
− | Type: Normal Map, MipMap Filter: Kaiser
| + | |
− | [[Изображение:0.5-0.7_nmap.png|150px|thumb|left]]
| + | |
− | <br clear="all" />
| + | |
− | ===Bump===
| + | |
− | | + | |
− | С использованием отдельной карты нормалей bump карта изготавливается очень просто (заготовку для бампа лучше назвать '''текстура_bump.tga''' и поместить в '''editors/import'''):<br/>
| + | |
− | <pre>RGB - залить серым цветом, RGB = 128,128,128
| + | |
− | Alpha - Specular Map</pre>
| + | |
− | Параметры добавления в SDK не зависят от версии:<br/>
| + | |
− | Type: Bump Map, в Special Normal Map указываем добавленную ранее карту нормалей.
| + | |
− | {|
| + | |
− | |-
| + | |
− | |[[Изображение:Bump_st.png|150px|thumb|left|В фотошопе]]||[[Изображение:0.4_bump.png|150px|thumb|left|Добавление в SDK]]
| + | |
− | |}
| + | |
− | <br clear="all" /> | + | |
− | Если же вдруг возникло желание обойтись без дополнительной карты нормалей, то добавление в SDK и каналы меняются:<br/>
| + | |
− | <pre>RGB - карта высот
| + | |
− | Alpha - Specular Map</pre>
| + | |
− | Это единственный вариант, когда параметр ''Virtual height'' действительно влияет на интенсивность получаемого бампа.
| + | |
− | {|
| + | |
− | |-
| + | |
− | |[[Изображение:Bump_map_wo_n.png|200px|thumb|left|В фотошопе]]||[[Изображение:Bump_wo_n_sdk.png|150px|thumb|left|Добавление в SDK]]
| + | |
− | |}
| + | |
− | | + | |
− | ==В заключение + дополнительная информация==
| + | |
− | Пара полезных ссылок.<br>
| + | |
− | 1. [[Файл_формата_.thm]] - статья про привязку бампа к текстуре.<br>
| + | |
− | 2. [https://www.youtube.com/watch?v=TrkOAIZqKTA Отличный видеоурок Андрея Непряхина (новый)]<br>
| + | |
− | Всем спасибо за внимание! Успехов!
| + | |
− | | + | |
− | ==Авторы==
| + | |
− | '''lafugix''' - создатель статьи<br>
| + | |
− | '''FantomICW''' - ремейк статьи (переписал на более понятный язык, дополнил материал)
| + | |
− | [[Категория:Texturing]][[Категория:SDK]][[Категория:SDK_CS]]
| + | |
Наш сервис предоставляет настоящие лайки на фото заказчиков, которые готовы платить за качество.
Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и зарабатывать за это деньги.
Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк,
Вам достаточно просто зарегистрироваться на нашем сервисе. > like.zarplatt.ru <
Вывод заработанных средств ежедневно в течении нескольких минут.