Создание, описание особенностей и объяснение работы карт рельефа — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Создание, описание особенностей и объяснение работы карт рельефа — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
м (Откат правок 5.228.2.203 (обсуждение) к версии 188.17.192.44)
(Ваш первый заработок за 60 минут. Законно и без рисков!)
Строка 1: Строка 1:
В этой статье я постараюсь объяснить создание правильных карт ''bump'' и ''bump#'' с помощью '''Adobe Photoshop''' и '''X-ray SDK'''. Думаю, с этими дополнительными составляющими текстурами много кто сталкивался, много кто искал пути правильного их создания. На самом деле, чтобы правильно создать бамп-карты, необходимо освоить как техническую сторону вопроса (делать, так сказать, "по науке"), так и практическую (различные методики работы в фотошопе, обработка текстуры, исправление возможных косяков и т. д.). В данной статье больше всего внимания будет уделяться именно первому пункту, ведь в любом деле лучше сначала выучить основы, а потом, в том числе, самостоятельно обучаясь, получить опыт в практике, улучшить свое мастерство.<br>
+
Пройдите 1 регистрацию, сделайте 2 действия
<br>
+
и получайте от 8950 рублей каждые сутки в автоматическом режиме.  
'''Немного о структуре и стилистике статьи, дабы все было в дальнейшем более понятно'''<br>
+
Многие игровые текстуры (в Сталкере - все) находятся в формате ''RGB''. Если кто не знает, есть понятие "каналы". Их вкладка в ФШ находится справа, ''"Слоев"''. В ''RGB'' это:<br>
+
Мы гарантируем:  
<pre>
+
- Первый заработок в течении 60 минут.  
R - red (красный)
+
- Стабильный доход 24 часа в сутки.  
G - green (зеленый)
+
- Поступление денег без задержек.  
B - blue (синий)
+
- Для России, стран СНГ и Европы.  
</pre>
+
- Без вложений и установки ПО.  
При их "смешивании", получаем нормальную окраску изображения. В общем, указания по каналам в данной статье будут даваться в виде, как блок выше.
+
- Специально для новичков и людей без опыта.  
Иногда в RGB каналов больше (можете сами попробовать добавлять в фотошопе). В игре используется канал ''Альфа 1'' (его еще просто "Альфой" кличут). У него есть, разумеется, свои особые функции. Итого, вот так будут выглядеть указания по каналам:<br>
+
   
<pre>R - что должно быть на красном канале
+
Ознакомтесь с условиями у нас на сайте. ( www.prosto.zarplatt.ru )
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]]
+

Версия 14:34, 2 февраля 2017

Пройдите 1 регистрацию, сделайте 2 действия и получайте от 8950 рублей каждые сутки в автоматическом режиме.

Мы гарантируем: - Первый заработок в течении 60 минут. - Стабильный доход 24 часа в сутки. - Поступление денег без задержек. - Для России, стран СНГ и Европы. - Без вложений и установки ПО. - Специально для новичков и людей без опыта.

Ознакомтесь с условиями у нас на сайте. ( www.prosto.zarplatt.ru )

Другие места
LANGUAGE