Ru/Creating a Material: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{langsp}}
{{LanguageBar|title = Создание материала}}
 
{{toc-right}}
{{toc-right}}


Этот урок является пошаговым руководством по созданию совершенно нового [[material:ru|материала]], включая материал [[texture:ru|текстур]].
Этот урок является пошаговым руководством по созданию совершенно нового {{L|material|материала}}, включая материал {{L|texture|текстур}}.


== Создание текстур ==
== Создание текстур ==
Для создания текстуры подойдёт любое изображение, если его размеры (высота и ширина) кратны двум, например: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, и т.д. Прежде, чем создавать новую текстуру, изучите существующие, выполняющие ту же роль. Текстуры с высоким разрешением тормозят производительность, но при этом дают большую резкость при просмотре вблизи.
Для создания текстуры подойдёт любое изображение, если его размеры (высота и ширина) кратны двум, например: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, и т.д. Прежде, чем создавать новую текстуру, изучите существующие, выполняющие ту же роль. Текстуры с высоким разрешением тормозят производительность, но при этом дают большую резкость при просмотре вблизи.


Различные классы объектов имеют разные стандартные разрешения (например, модели персонажей более детализированы). Если запутаетесь, вам в помощь <code>source materials.gcf</code> вместе с [[GCFScape]].
Различные классы объектов имеют разные стандартные разрешения (например, модели персонажей более детализированы). Если запутаетесь, вам в помощь <code>source materials.gcf</code> вместе с {{L|GCFScape}}.


{{note|Исходные файлы текстур должны сохраняться в формате с меньшими потерями качества - [[Wikipedia:Truevision TGA|TGA]].}}
{{note|Исходные файлы текстур должны сохраняться в формате с меньшими потерями качества - [[Wikipedia:Truevision TGA|TGA]].}}


== Преобразование текстур ==
== Преобразование текстур ==
Перед тем, как использовать в Source, текстуры необходимо преобразовать в [[Valve Texture Format:ru|Valve Texture Format]]. Для этого Valve предоставляет инструмент [[Vtex (Source 1)|VTEX]]. С этим инструментом можно работать через [[command line|командную строку]], или с помощью сторонних программ, таких как [[VTFEdit]]. VTFEdit предпочтительней, поскольку имеет удобный графический интерфейс, позволяет редактировать текстуры без перекомпиляции, поддерживает множество форматов, и не требует отдельных скриптов для создания каждой текстуры.
Перед тем, как использовать в Source, текстуры необходимо преобразовать в {{L|Valve Texture Format}}. Для этого Valve предоставляет инструмент {{L|Vtex (Source 1)|VTEX}}. С этим инструментом можно работать через {{L|command line|командную строку}}, или с помощью сторонних программ, таких как {{L|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].)
(Существуют 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].)
Line 18: Line 19:
'''Чтобы импортировать текстуру в VTFEdit''', используйте <code>File > Import</code> или нажмите {{key|Ctrl+I}}. Выберите изображение и откроется окно импортирования:
'''Чтобы импортировать текстуру в VTFEdit''', используйте <code>File > Import</code> или нажмите {{key|Ctrl+I}}. Выберите изображение и откроется окно импортирования:


[[Image:Vtfedit importoptions.png|center|Экран импортирования VTFEdit]]
[[File:Vtfedit importoptions.png|center|Экран импортирования VTFEdit]]


==== Основные параметры ====
==== Основные параметры ====
Line 30: Line 31:
: Если вы импортировали больше, чем одно изображение, тут задаётся тип их использования (кадры анимации/кубмапы/глубина срезов).
: Если вы импортировали больше, чем одно изображение, тут задаётся тип их использования (кадры анимации/кубмапы/глубина срезов).


Если вы создаёте простую текстуру, то вам не понадобится ничего из перечисленного выше. Если вы создаёте текстуру с детально проработанными градиентами, вам придётся [[Valve Texture Format:ru#Выбор формата изображений|выбрать режим сжатия без потерь]].
Если вы создаёте простую текстуру, то вам не понадобится ничего из перечисленного выше. Если вы создаёте текстуру с детально проработанными градиентами, вам придётся {{L|Valve Texture Format#Выбор формата изображений|выбрать режим сжатия без потерь}}.


==== Настройки мип-карт ====
==== Настройки мип-карт ====
[[MIP Mapping:ru|Мип-карты]] - это версии текстуры, имеющие низкое разрешение, сменяющие друг друга по мере удаления камеры от неё. Они существенно сокращают требуемый объём текстуры, повышая производительность и качество изображения.
{{L|MIP Mapping|Мип-карты}} - это версии текстуры, имеющие низкое разрешение, сменяющие друг друга по мере удаления камеры от неё. Они существенно сокращают требуемый объём текстуры, повышая производительность и качество изображения.


{{tip|Текстуры, которые будут отображаться в 3D-мире, должны иметь мип-карты. Для экономии памяти, текстуры используют интерфейс 2D.}}
{{tip|Текстуры, которые будут отображаться в 3D-мире, должны иметь мип-карты. Для экономии памяти, текстуры используют интерфейс 2D.}}
Line 48: Line 49:


==== Настройки карты нормалей ====
==== Настройки карты нормалей ====
Эти (неправильно названные) настройки позволяют автоматически генерировать [[bump map|карту рельефа]] из вашего изображения.
Эти (неправильно названные) настройки позволяют автоматически генерировать {{L|bump map|карту рельефа}} из вашего изображения.


=== Конфигурирование и сохранение ===
=== Конфигурирование и сохранение ===
Когда вы нажимаете OK, входящий файл конвертируется (порою долго, если изображение большое), и на выходе появляется в формате VTF. Теперь всё, что осталось - это сконфигурировать настройки текстуры с помощью ряда флажков на левой стороне экрана. Описание каждого из них см. [[Valve Texture Format:ru#Флаги изображений|флаги изображений]].
Когда вы нажимаете OK, входящий файл конвертируется (порою долго, если изображение большое), и на выходе появляется в формате VTF. Теперь всё, что осталось - это сконфигурировать настройки текстуры с помощью ряда флажков на левой стороне экрана. Описание каждого из них см. {{L|Valve Texture Format#Флаги изображений|флаги изображений}}.


Теперь, сохраните файл в каталоге своей игры или мода в папке <code>\materials</code>.
Теперь, сохраните файл в каталоге своей игры или мода в папке <code>\materials</code>.


==Создание материала==
==Создание материала==
Source обращается к текстурам не напрямую. Он это делает через '''[[material:ru|материалы]]'''.
Source обращается к текстурам не напрямую. Он это делает через '''{{L|material|материалы}}'''.


Материалы - это файлы скриптов, которые создаются с помощью любого текстового редактора, но лучше всего использовать [http://notepad-plus.sourceforge.net/ Notepad++] с [[Notepad++ VDF languages|подсветкой синтаксиса]]. Чтобы ваш материал был обнаружен, '''вы должны сохранить его в папке игры или мода <code>\materials</code> с расширением <code>.vmt</code>'''.
Материалы - это файлы скриптов, которые создаются с помощью любого текстового редактора, но лучше всего использовать [http://notepad-plus.sourceforge.net/ Notepad++] с {{L|Notepad++ VDF languages|подсветкой синтаксиса}}. Чтобы ваш материал был обнаружен, '''вы должны сохранить его в папке игры или мода <code>\materials</code> с расширением <code>.vmt</code>'''.


{{note|Если вы создаёте материалы и текстуры специально для вашего мода, рассмотрите возможность использования [[BSPZIP]]\[[Packbsp]]\[[Pakrat]], чтобы вшивать их прямо в карту. Это позволит избежать их утери в будущем.}}
{{note|Если вы создаёте материалы и текстуры специально для вашего мода, рассмотрите возможность использования {{L|BSPZIP}}\{{L|Packbsp}}\{{L|Pakrat}}, чтобы вшивать их прямо в карту. Это позволит избежать их утери в будущем.}}


===Синтаксис===
===Синтаксис===
Файл материала выглядит так:
Файл материала выглядит так:


  <[[shader]]>
  <{{L|shader}}>
  {
  {
  <parameter> <value>
  <parameter> <value>
Line 77: Line 78:
  }
  }


Существует много разных [[shader:ru|шейдеров]], но большинство материалов используют <code>[[LightmappedGeneric]]</code> ([[brush:ru|браши]]) или <code>[[VertexLitGeneric]]</code> ([[model:ru|модели]]). Третьим наиболее распространённым шейдером является <code>[[UnlitGeneric]]</code>, который используется для материалов [[:Category:VGUI:ru|UI]], и изредка для [[tool textures|служебных текстур]].
Существует много разных {{L|shader|шейдеров}}, но большинство материалов используют <code>{{L|LightmappedGeneric}}</code> ({{L|brush|браши}}) или <code>{{L|VertexLitGeneric}}</code> ({{L|model|модели}}). Третьим наиболее распространённым шейдером является <code>{{L|UnlitGeneric}}</code>, который используется для материалов {{LCategory|VGUI|UI}}, и изредка для {{L|tool textures|служебных текстур}}.


===Параметры===
===Параметры===
:''Список всех задокументированных параметров шейдеров см. [[:Category:List of Shader Parameters:ru|Список параметров шейдеров]].''
:''Список всех задокументированных параметров шейдеров см. {{LCategory|Shader parameters|Список параметров оттенений}}.''


Параметры в шейдере также называются командами. Существуют сотни параметров, которые можно вложить в материал, мы же рассмотрим основные, которые используются чаще всего. Вот они:
Параметры в шейдере также называются командами. Существуют сотни параметров, которые можно вложить в материал, мы же рассмотрим основные, которые используются чаще всего. Вот они:


*<code>[[$basetexture:ru|$basetexture]]</code>
*<code>{{L|$basetexture}}</code>
*<code>[[$surfaceprop:ru|$surfaceprop]]</code>
*<code>{{L|$surfaceprop}}</code>
*<code>[[$envmap]]</code>
*<code>{{L|$envmap}}</code>
*<code>[[$bumpmap]]</code>
*<code>{{L|$bumpmap}}</code>
*<code>[[$detail]]</code>
*<code>{{L|$detail}}</code>
*<code>[[$selfillum]]</code>
*<code>{{L|$selfillum}}</code>
*<code>[[$model (VMT)|$model]]</code>
*<code>{{L|$model (VMT)|$model}}</code>


{{tip|Если в значении параметра потребуется использовать пробел или символ табуляции, вам нужно всё значение поставить в "кавычки". Вы увидите, что они экономят время печати.}}
{{tip|Если в значении параметра потребуется использовать пробел или символ табуляции, вам нужно всё значение поставить в "кавычки". Вы увидите, что они экономят время печати.}}


==См. также==
==См. также==
* [[Material:ru|Материал]]
* {{L|Material|Материал}}
* [[Material Editor]]
* {{L|Material Editor}}
* [[Creating Reflective Materials]]
* {{L|Creating Reflective Materials}}
* [[:Category:List of Shader Parameters:ru|Список параметров шейдеров]]
* {{LCategory|Shader parameters|Список параметров оттенений}}
 
{{ACategory|Material System}}
{{ACategory|Tutorials}}

Latest revision as of 06:58, 25 May 2025

English (en)Español (es)Français (fr)日本語 (ja)한국어 (ko)Português do Brasil (pt-br)Русский (ru)中文 (zh)Translate (Translate)

Этот урок является пошаговым руководством по созданию совершенно нового материала(en), включая материал текстур(en).

Создание текстур

Для создания текстуры подойдёт любое изображение, если его размеры (высота и ширина) кратны двум, например: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, и т.д. Прежде, чем создавать новую текстуру, изучите существующие, выполняющие ту же роль. Текстуры с высоким разрешением тормозят производительность, но при этом дают большую резкость при просмотре вблизи.

Различные классы объектов имеют разные стандартные разрешения (например, модели персонажей более детализированы). Если запутаетесь, вам в помощь source materials.gcf вместе с GCFScape(en).

Note.pngПримечание:Исходные файлы текстур должны сохраняться в формате с меньшими потерями качества - TGA.

Преобразование текстур

Перед тем, как использовать в Source, текстуры необходимо преобразовать в Valve Texture Format(en). Для этого Valve предоставляет инструмент VTEX(en). С этим инструментом можно работать через командную строку(en), или с помощью сторонних программ, таких как VTFEdit(en). VTFEdit предпочтительней, поскольку имеет удобный графический интерфейс, позволяет редактировать текстуры без перекомпиляции, поддерживает множество форматов, и не требует отдельных скриптов для создания каждой текстуры.

(Существуют VTF-плагины которые позволяют сохранять текстуры в формат прямо из Photoshop, GIMP и Paint.NET.)

Чтобы импортировать текстуру в VTFEdit, используйте File > Import или нажмите Ctrl+I. Выберите изображение и откроется окно импортирования:

Экран импортирования VTFEdit

Основные параметры

Следующие параметры наиболее важны. Их три:

Формат нормалей
Формат цвета/сжатия, который используется для прозрачной текстуры.
Формат Альфа
Формат цвета/сжатия, который используется для текстуры с альфа-каналом.
Тип текстуры
Если вы импортировали больше, чем одно изображение, тут задаётся тип их использования (кадры анимации/кубмапы/глубина срезов).

Если вы создаёте простую текстуру, то вам не понадобится ничего из перечисленного выше. Если вы создаёте текстуру с детально проработанными градиентами, вам придётся выбрать режим сжатия без потерь(en).

Настройки мип-карт

Мип-карты(en) - это версии текстуры, имеющие низкое разрешение, сменяющие друг друга по мере удаления камеры от неё. Они существенно сокращают требуемый объём текстуры, повышая производительность и качество изображения.

Tip.pngСовет:Текстуры, которые будут отображаться в 3D-мире, должны иметь мип-карты. Для экономии памяти, текстуры используют интерфейс 2D.

Следующие изображения демонстрируют различные мипмап-фильтры, доступные в VTFEdit:

Настройки карты нормалей

Эти (неправильно названные) настройки позволяют автоматически генерировать карту рельефа(en) из вашего изображения.

Конфигурирование и сохранение

Когда вы нажимаете OK, входящий файл конвертируется (порою долго, если изображение большое), и на выходе появляется в формате VTF. Теперь всё, что осталось - это сконфигурировать настройки текстуры с помощью ряда флажков на левой стороне экрана. Описание каждого из них см. флаги изображений(en).

Теперь, сохраните файл в каталоге своей игры или мода в папке \materials.

Создание материала

Source обращается к текстурам не напрямую. Он это делает через материалы(en).

Материалы - это файлы скриптов, которые создаются с помощью любого текстового редактора, но лучше всего использовать Notepad++ с подсветкой синтаксиса(en). Чтобы ваш материал был обнаружен, вы должны сохранить его в папке игры или мода \materials с расширением .vmt.

Note.pngПримечание:Если вы создаёте материалы и текстуры специально для вашего мода, рассмотрите возможность использования BSPZIP(en)\Packbsp(en)\Pakrat(en), чтобы вшивать их прямо в карту. Это позволит избежать их утери в будущем.

Синтаксис

Файл материала выглядит так:

<shader(en)>
{
	<parameter> <value>
	...
}
LightmappedGeneric
{
	$basetexture coast\shingle_01
	$surfaceprop gravel
}

Существует много разных шейдеров(en), но большинство материалов используют LightmappedGeneric(en) (браши(en)) или VertexLitGeneric(en) (модели(en)). Третьим наиболее распространённым шейдером является UnlitGeneric(en), который используется для материалов UI(en), и изредка для служебных текстур(en).

Параметры

Список всех задокументированных параметров шейдеров см. Список параметров оттенений(en).

Параметры в шейдере также называются командами. Существуют сотни параметров, которые можно вложить в материал, мы же рассмотрим основные, которые используются чаще всего. Вот они:

Tip.pngСовет:Если в значении параметра потребуется использовать пробел или символ табуляции, вам нужно всё значение поставить в "кавычки". Вы увидите, что они экономят время печати.

См. также