|
|
Line 1: |
Line 1: |
− | {{lang|Creating a Material|title=Создание материала}} | + | {{delete|reason=moved}} |
− | {{toc-right}}
| |
− | | |
− | Этот урок является пошаговым руководством по созданию совершенно нового [[material:ru|материала]], включая материал [[texture:ru|текстур]].
| |
− | | |
− | == Создание текстур ==
| |
− | Для создания текстуры подойдёт любое изображение, если его размеры (высота и ширина) кратны двум, например: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, и т.д. Прежде, чем создавать новую текстуру, изучите существующие, выполняющие ту же роль. Текстуры с высоким разрешением тормозят производительность, но при этом дают большую резкость при просмотре вблизи.
| |
− | | |
− | Различные классы объектов имеют разные стандартные разрешения (например, модели персонажей более детализированы). Если запутаетесь, вам в помощь <code>source materials.gcf</code> вместе с [[GCFScape]].
| |
− | | |
− | {{note:ru|Исходные файлы текстур должны сохраняться в формате с меньшими потерями качества - [[Wikipedia:Truevision TGA|TGA]].}}
| |
− | | |
− | == Преобразование текстур ==
| |
− | Перед тем, как использовать в Source, текстуры необходимо преобразовать в [[Valve Texture Format:ru|Valve Texture Format]]. Для этого Valve предоставляет инструмент [[Vtex (Source 1)|VTEX]]. С этим инструментом можно работать через [[command line|командную строку]], или с помощью сторонних программ, таких как [[VTFEdit]]. VTFEdit предпочтительней, поскольку имеет удобный графический интерфейс, позволяет редактировать текстуры без перекомпиляции, поддерживает множество форматов, и не требует отдельных скриптов для создания каждой текстуры.
| |
− | | |
− | (Существуют VTF-плагины которые позволяют сохранять текстуры в формат прямо из [http://nemesis.thewavelength.net/index.php?p=39 Photoshop], [http://code.google.com/p/gimp-vtf/ GIMP] и [http://nemesis.thewavelength.net/index.php?p=50 Paint.NET].)
| |
− | | |
− | '''Чтобы импортировать текстуру в VTFEdit''', используйте <code>File > Import</code> или нажмите {{key|Ctrl+I}}. Выберите изображение и откроется окно импортирования:
| |
− | | |
− | [[Image:Vtfedit importoptions.png|center|Экран импортирования VTFEdit]]
| |
− | | |
− | ==== Основные параметры ====
| |
− | Следующие параметры наиболее важны. Их три:
| |
− | | |
− | ; Формат нормалей
| |
− | : Формат цвета/сжатия, который используется для прозрачной текстуры.
| |
− | ; Формат Альфа
| |
− | : Формат цвета/сжатия, который используется для текстуры с альфа-каналом.
| |
− | ; Тип текстуры
| |
− | : Если вы импортировали больше, чем одно изображение, тут задаётся тип их использования (кадры анимации/кубмапы/глубина срезов).
| |
− | | |
− | Если вы создаёте простую текстуру, то вам не понадобится ничего из перечисленного выше. Если вы создаёте текстуру с детально проработанными градиентами, вам придётся [[Valve Texture Format:ru#Выбор формата изображений|выбрать режим сжатия без потерь]].
| |
− | | |
− | ==== Настройки мип-карт ====
| |
− | [[MIP Mapping:ru|Мип-карты]] - это версии текстуры, имеющие низкое разрешение, сменяющие друг друга по мере удаления камеры от неё. Они существенно сокращают требуемый объём текстуры, повышая производительность и качество изображения.
| |
− | | |
− | {{tip:ru|Текстуры, которые будут отображаться в 3D-мире, должны иметь мип-карты. Для экономии памяти, текстуры используют интерфейс 2D.}}
| |
− | | |
− | Следующие изображения демонстрируют различные мипмап-фильтры, доступные в VTFEdit:
| |
− | | |
− | <gallery perrow=5 widths=150 heights=180>
| |
− | File:Vtf sharpen filters.jpg|Фильтры резкости
| |
− | File:Vtf mipmap filters1.jpg|Mip-фильтры #1
| |
− | File:Vtf mipmap filters2.jpg|Mip-фильтры #2
| |
− | File:Vtf mipmap filters3.jpg|Mip-фильтры #3
| |
− | File:Vtf mipmap filters4.jpg|Mip-фильтры #4
| |
− | </gallery>
| |
− | | |
− | ==== Настройки карты нормалей ====
| |
− | Эти (неправильно названные) настройки позволяют автоматически генерировать [[bump map|карту рельефа]] из вашего изображения.
| |
− | | |
− | === Конфигурирование и сохранение ===
| |
− | Когда вы нажимаете OK, входящий файл конвертируется (порою долго, если изображение большое), и на выходе появляется в формате VTF. Теперь всё, что осталось - это сконфигурировать настройки текстуры с помощью ряда флажков на левой стороне экрана. Описание каждого из них см. [[Valve Texture Format:ru#Флаги изображений|флаги изображений]].
| |
− | | |
− | Теперь, сохраните файл в каталоге своей игры или мода в папке <code>\materials</code>.
| |
− | | |
− | ==Создание материала==
| |
− | Source обращается к текстурам не напрямую. Он это делает через '''[[material:ru|материалы]]'''.
| |
− | | |
− | Материалы - это файлы скриптов, которые создаются с помощью любого текстового редактора, но лучше всего использовать [http://notepad-plus.sourceforge.net/ Notepad++] с [[Notepad++ VDF languages|подсветкой синтаксиса]]. Чтобы ваш материал был обнаружен, '''вы должны сохранить его в папке игры или мода <code>\materials</code> с расширением <code>.vmt</code>'''.
| |
− | | |
− | {{note:ru|Если вы создаёте материалы и текстуры специально для вашего мода, рассмотрите возможность использования [[BSPZIP]]\[[Packbsp]]\[[Pakrat]], чтобы вшивать их прямо в карту. Это позволит избежать их утери в будущем.}}
| |
− | | |
− | ===Синтаксис===
| |
− | Файл материала выглядит так:
| |
− | | |
− | <[[shader]]>
| |
− | {
| |
− | <parameter> <value>
| |
− | ...
| |
− | }
| |
− | | |
− | LightmappedGeneric
| |
− | {
| |
− | $basetexture coast\shingle_01
| |
− | $surfaceprop gravel
| |
− | }
| |
− | | |
− | Существует много разных [[shader:ru|шейдеров]], но большинство материалов используют <code>[[LightmappedGeneric]]</code> ([[brush:ru|браши]]) или <code>[[VertexLitGeneric]]</code> ([[model:ru|модели]]). Третьим наиболее распространённым шейдером является <code>[[UnlitGeneric]]</code>, который используется для материалов [[:Category:VGUI:ru|UI]], и изредка для [[tool textures|служебных текстур]].
| |
− | | |
− | ===Параметры===
| |
− | :''Список всех задокументированных параметров шейдеров см. [[:Category:List of Shader Parameters:ru|Список параметров шейдеров]].''
| |
− | | |
− | Параметры в шейдере также называются командами. Существуют сотни параметров, которые можно вложить в материал, мы же рассмотрим основные, которые используются чаще всего. Вот они:
| |
− | | |
− | *<code>[[$basetexture:ru|$basetexture]]</code>
| |
− | *<code>[[$surfaceprop:ru|$surfaceprop]]</code>
| |
− | *<code>[[$envmap]]</code>
| |
− | *<code>[[$bumpmap]]</code>
| |
− | *<code>[[$detail]]</code>
| |
− | *<code>[[$selfillum]]</code>
| |
− | *<code>[[$model (VMT)|$model]]</code>
| |
− | | |
− | {{tip:ru|Если в значении параметра потребуется использовать пробел или символ табуляции, вам нужно всё значение поставить в "кавычки". Вы увидите, что они экономят время печати.}}
| |
− | | |
− | ==См. также==
| |
− | * [[Material:ru|Материал]]
| |
− | * [[Material Editor]]
| |
− | * [[Creating Reflective Materials]]
| |
− | * [[:Category:List of Shader Parameters:ru|Список параметров шейдеров]]
| |
− | | |
− | [[Category:Material System:ru]]
| |
− | [[Category:Tutorials:ru]]
| |
− | [[Category:Russian]]
| |