Difference between revisions of "Creating a Material:zh-cn"

From Valve Developer Community
Jump to: navigation, search
m
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{otherlang2
 
{{otherlang2
|title:创建自定义材质
+
|title=创建自定义材质
 
|en=Creating_a_Material
 
|en=Creating_a_Material
 
|fr=Creating a Material:fr
 
|fr=Creating a Material:fr
Line 7: Line 7:
 
|ko=Creating a Material:ko
 
|ko=Creating a Material:ko
 
}}
 
}}
本简体中文页面【正在】由 [[User:GlrWere|Gloria]] 汉化。
+
本简体中文页面由 [[User:GlrWere|Gloria]] 汉化。
 
{{toc-right}}
 
{{toc-right}}
  
Line 59: Line 59:
 
</gallery>
 
</gallery>
  
==== Normal map settings ====
+
==== 法线贴图设置 ====
  
These (mis-labelled) settings allow you to automatically generate a [[bump map]] from your input image. You'll want to do this properly with an image editor for the material you ship, but the automated option is there if you want quick results or a base to work from.
+
这些(打错标签的)设置能够让你从输入的图片中生成一张[[bump map|法线贴图]]。你可能希望使用图片编辑器制作一张更好的法线贴图,但提供的自动选项能够快速生成法线贴图,可以在它的基础上进行修改。
  
=== Configuring and saving ===
+
=== 配置与保存 ===
  
When you hit OK the input file is converted (there may be quite a lengthy pause for large images) and the output VTF appears. Now all that is left is configuring the texture with the options in the checkbox list on the left-hand side of the screen. See [[Valve Texture Format#Image_flags]] for descriptions of each.
+
点击OK按钮后,导入的图片转换完成(文件过大时会有较大的延迟),并生成一个VTF文件。接下来要做的只剩下在左侧的选项列表中对纹理进行配置了。[[Valve Texture Format#Image_flags]]中有每个选项的说明。
  
Finally, save the file somewhere under your game or mod's <code>\materials</code> folder.
+
最后,在你的游戏本体或MOD中的 <code>\materials</code> 文件夹下保存纹理文件。
  
==Creating a material==
+
== 创建材质 ==
  
Source doesn't access textures directly. Everything goes through a '''[[material]]'''.
+
起源引擎无法直接使用纹理文件。所有的纹理都需要通过 '''[[material|材质]]'''文件访问。
  
Materials are script files that can be created in any text editor, but it's recommended that you use [http://notepad-plus.sourceforge.net/ Notepad++] in conjunction with the community-made [[Notepad++ VDF languages|syntax highlighting rules]]. For your material to be detected, '''you must save it under your game or mod's <code>\materials</code> folder with the extension <code>.vmt</code>'''.
+
材质是可以用任何文本编辑器处理的脚本文件。但推荐使用[http://notepad-plus.sourceforge.net/ Notepad++],并安装社区制作的[[Notepad++ VDF languages|语法高亮]]插件。 要让材质能够被检测到,'''它必须被保存在游戏本体或MOD中的 <code>\materials</code> 文件夹下,后缀名是<code>.vmt</code>'''
  
{{note|If you are creating materials and textures exclusively for a map for an existing mod, consider using [[BSPZIP]]\[[Packbsp]]\[[Pakrat]]\[[Compile Pal]] to package the material and texture files within the map file itself. This will avoid them ever becoming lost.}}
+
{{note:zh-cn|如果是专门为地图或是已有mod制作的材质,可以考虑使用[[BSPZIP]]\[[Packbsp]]\[[Pakrat]]\[[Compile Pal]]将材质打包到地图文件中。可以完全杜绝材质丢失的问题。}}
  
===Syntax===
+
=== 语法 ===
  
A material file looks like this:
+
材质文件的格式如下:
  
  <[[shader]]>
+
  <[[shader|渲染器(shader)]]>
 
  {
 
  {
  <parameter> <value>
+
  <参数> <取值>
 
  ...
 
  ...
 
  }
 
  }
Line 93: Line 93:
 
  }
 
  }
  
There are many [[shader]]s to choose from, but most materials will use either <code>[[LightmappedGeneric]]</code> ([[brush]]es) or <code>[[VertexLitGeneric]]</code> ([[model]]s). The third most common shader is <code>[[UnlitGeneric]]</code>, which is used for [[VGUI2|UI]] materials and the occasional [[tool texture]].
+
有很多[[shader|渲染器]]可以选择,但大多数材质使用的是 <code>[[LightmappedGeneric]]</code>(用于[[brush|笔刷]]) 或是 <code>[[VertexLitGeneric]]</code> (用于[[model|模型]])。第三常用的渲染器是 <code>[[UnlitGeneric]]</code>,用于 [[VGUI2|UI]] 材质或用于少见的[[tool texture|工具纹理]]
  
===Parameters===
+
===参数===
  
:''For a list of all documented shader parameters, see [[:Category:List of Shader Parameters]].''
+
:''[[:Category:List of Shader Parameters|渲染器参数列表]]中,查看完整的渲染器参数列表文档''
  
With a shader chosen you're onto parameters (also called commands). There are hundreds of options for what to put in a material so this article will only cover the most common, which are accepted by more or less all shaders. They are:
+
选择了渲染器后,下一步需要配置参数(也叫命令)。材质文件中有数百个可选的参数,因此本文只介绍其中常见的几个。它们在绝大多数的渲染器中是通用的。如下:
  
 
*<code>[[$basetexture]]</code>
 
*<code>[[$basetexture]]</code>
Line 109: Line 109:
 
*<code>[[$model (VMT)|$model]]</code>
 
*<code>[[$model (VMT)|$model]]</code>
  
{{tip|If you ever need to use a space or tab character in a parameter value, you must wrap the whole value with "quote marks". You'll often see absolutely everything wrapped like this - save yourself some typing, as that's unnecessary.}}
+
{{tip:zh-cn|如果在参数值中需要使用空格或Tab,必须使用"双引号"把整个值括起来。你经常会看到所有的值都用双引号括起来了——其实可以不用这样,因为它不是必要的。}}
  
==See also==
+
==另见==
  
* [[Material]]
+
* [[Material|材质(Material)]]
* [[Material Editor]]
+
* [[Material Editor|材质编辑器]]
* [[Creating Reflective Materials]]
+
* [[Creating Reflective Materials|创建带反光的材质]]
* [[:Category:List of Shader Parameters]]
+
* [[:Category:List of Shader Parameters|渲染器参数列表]]
  
 
[[Category:Material System]]
 
[[Category:Material System]]
 
[[Category:Tutorials]]
 
[[Category:Tutorials]]

Latest revision as of 05:14, 9 January 2019

English Français Русский 日本語 한국어

本简体中文页面由 Gloria 汉化。

本篇教程将一步步教你如何创建全新的材质(Material),包括材质纹理(Texture)的创建。

创建纹理

只要满足以下条件,任何图片文件都能作为纹理使用:它的尺寸(高度和宽度)必须是2的乘方,2、4、8、16、32、64、128、256、512、1024、2048...以此类推。如果不清楚该用哪一种尺寸,可以参考现有的同类型纹理。高分辨图片会降低性能,但在近距离下更清晰。

不同类型的物体有不同标准的分辨率(例如人物模型的纹理分辨率非常高)。如果感到困惑,可以使用GCFScapesource materials.gcf 中提取纹理,看看Valve是怎么做的。

注意:
纹理源文件应当使用无损格式保存,例如TGA,以避免图片质量的损失。

转换纹理

为了给起源引擎使用,纹理必须先转换为 Valve Texture Format 格式。Valve提供的工具是VTEX。它是个命令行工具,使用起来相当不便,因此推荐使用第三方工具VTFEdit:它提供了图形用户界面,能让你无需重新编译就能修改纹理属性,支持大多数图片格式,也不需要每个纹理都创建一遍脚本文件。当然有些情况下还是不得不用回VTEX工具...但也仅限于那部分情况。此外,在使用带透明通道的纹理时,它会建议你先转为TIFF格式保存,因为PNG的透明度容易导致问题。

(部分图片软件如PhotoshopGIMPPaint.NET在安装了VTF插件后,能直接保存为VTF格式文件。但本篇教程不做讲解,因为并非每个人都使用上述工具。)

如何将自定义图片导入VTFEdit:菜单 File > Import 或者快捷键 Ctrl+I,选择图片后将会弹出“导入”对话框:

VTFEdit的“导入”对话框

通用设置

设置是最关键的。以下是其中三个:

Normal format/普通模式
不透明纹理使用的色彩/压缩格式。
Alpha format/透明通道模式
带透明通道的纹理使用的色彩/压缩格式。
Texture type/纹理类型
在导入了多张图片时使用,具体类型取决于它是(animation frames(动画帧)/cubemap faces(立方体贴图表面)/depth slices(深度切片))。

如果你制作的是普通、简单的纹理,上面的选项无需修改。但如果制作的是高清的细节图片,则需要选择无损的压缩模式.

Mipmap设置

Mipmaps是当纹理距离镜头相当远时,自动切换成的低清版纹理。它的使用减少的不必要的图片缩放,增加了性能与图片显示质量。纹理细节层次需要Mipmap才能正常使用。

小技巧:在3D世界中使用的纹理才需要mipmap。为了节约内存,只是用在2D界面的图片不应有mipmap。

下列图片展示了VTFEdit中各类不同的mipmap过滤器:

法线贴图设置

这些(打错标签的)设置能够让你从输入的图片中生成一张法线贴图。你可能希望使用图片编辑器制作一张更好的法线贴图,但提供的自动选项能够快速生成法线贴图,可以在它的基础上进行修改。

配置与保存

点击OK按钮后,导入的图片转换完成(文件过大时会有较大的延迟),并生成一个VTF文件。接下来要做的只剩下在左侧的选项列表中对纹理进行配置了。Valve Texture Format#Image_flags中有每个选项的说明。

最后,在你的游戏本体或MOD中的 \materials 文件夹下保存纹理文件。

创建材质

起源引擎无法直接使用纹理文件。所有的纹理都需要通过 材质文件访问。

材质是可以用任何文本编辑器处理的脚本文件。但推荐使用Notepad++,并安装社区制作的语法高亮插件。 要让材质能够被检测到,它必须被保存在游戏本体或MOD中的 \materials 文件夹下,后缀名是.vmt

注意:
如果是专门为地图或是已有mod制作的材质,可以考虑使用BSPZIP\Packbsp\Pakrat\Compile Pal将材质打包到地图文件中。可以完全杜绝材质丢失的问题。

语法

材质文件的格式如下:

<渲染器(shader)>
{
	<参数> <取值>
	...
}
LightmappedGeneric
{
	$basetexture coast\shingle_01
	$surfaceprop gravel
}

有很多渲染器可以选择,但大多数材质使用的是 LightmappedGeneric(用于笔刷) 或是 VertexLitGeneric (用于模型)。第三常用的渲染器是 UnlitGeneric,用于 UI 材质或用于少见的工具纹理

参数

渲染器参数列表中,查看完整的渲染器参数列表文档

选择了渲染器后,下一步需要配置参数(也叫命令)。材质文件中有数百个可选的参数,因此本文只介绍其中常见的几个。它们在绝大多数的渲染器中是通用的。如下:

小技巧:如果在参数值中需要使用空格或Tab,必须使用"双引号"把整个值括起来。你经常会看到所有的值都用双引号括起来了——其实可以不用这样,因为它不是必要的。

另见