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

From Valve Developer Community
Jump to: navigation, search
m (update link)
(Replaced content with "{{delete|reason=moved}}")
(Tag: Replaced)
 
Line 1: Line 1:
{{DISPLAYTITLE:创建自定义材质}}
+
{{delete|reason=moved}}
{{lang|Creating a Material}}
 
本简体中文页面由 [[User:GlrWere|Gloria]] 汉化。
 
{{toc-right}}
 
 
 
本篇教程将一步步教你如何创建全新的[[material|材质(Material)]],包括材质[[texture|纹理(Texture)]]的创建。
 
 
 
== 创建纹理 ==
 
 
 
只要满足以下条件,任何图片文件都能作为纹理使用:它的尺寸(高度和宽度)必须是2的乘方,2、4、8、16、32、64、128、256、512、1024、2048...以此类推。如果不清楚该用哪一种尺寸,可以参考现有的同类型纹理。高分辨图片会降低性能,但在近距离下更清晰。
 
 
 
不同类型的物体有不同标准的分辨率(例如人物模型的纹理分辨率非常高)。如果感到困惑,可以使用[[GCFScape]]从 <code>source materials.gcf</code> 中提取纹理,看看Valve是怎么做的。
 
 
 
{{note:zh-cn|纹理源文件应当使用无损格式保存,例如[[Wikipedia:Truevision TGA|TGA]],以避免图片质量的损失。}}
 
 
 
=== 转换纹理 ===
 
 
 
为了给起源引擎使用,纹理必须先转换为 [[Valve Texture Format]] 格式。Valve提供的工具是[[Vtex (Source 1)|VTEX]]。它是个[[command line|命令行]]工具,使用起来相当不便,因此推荐使用第三方工具[[VTFEdit]]:它提供了图形用户界面,能让你无需重新编译就能修改纹理属性,支持大多数图片格式,也不需要每个纹理都创建一遍脚本文件。当然有些情况下还是不得不用回VTEX工具...但也仅限于那部分情况。此外,在使用带透明通道的纹理时,它会建议你先转为TIFF格式保存,因为PNG的透明度容易导致问题。
 
 
 
(部分图片软件如[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插件后,能直接保存为VTF格式文件。但本篇教程不做讲解,因为并非每个人都使用上述工具。)
 
 
 
'''如何将自定义图片导入VTFEdit''':菜单 <code>File > Import</code> 或者快捷键 {{key|Ctrl+I}},选择图片后将会弹出“导入”对话框:
 
 
 
[[Image:Vtfedit importoptions.png|center|VTFEdit的“导入”对话框]]
 
 
 
==== 通用设置 ====
 
 
 
设置是最关键的。以下是其中三个:
 
 
 
; Normal format/普通模式
 
: 不透明纹理使用的色彩/压缩格式。
 
; Alpha format/透明通道模式
 
: 带透明通道的纹理使用的色彩/压缩格式。
 
; Texture type/纹理类型
 
: 在导入了多张图片时使用,具体类型取决于它是(animation frames(动画帧)/cubemap faces(立方体贴图表面)/depth slices(深度切片))。
 
 
 
如果你制作的是普通、简单的纹理,上面的选项无需修改。但如果制作的是高清的细节图片,则需要[[Valve Texture Format#Choosing_an_image_format|选择无损的压缩模式]].
 
 
 
==== Mipmap设置 ====
 
 
 
[[MIP Mapping|Mipmaps]]是当纹理距离镜头相当远时,自动切换成的低清版纹理。它的使用减少的不必要的图片缩放,增加了性能与图片显示质量。[[mat_picmip|纹理细节层次]]需要Mipmap才能正常使用。
 
 
 
{{tip:zh-cn|在3D世界中使用的纹理才需要mipmap。为了节约内存,只是用在2D界面的图片不应有mipmap。}}
 
 
 
下列图片展示了VTFEdit中各类不同的mipmap过滤器:
 
 
 
<gallery perrow=5 widths=150 heights=180>
 
File:Vtf sharpen filters.jpg|Sharpen filters(锐化过滤器)
 
File:Vtf mipmap filters1.jpg|Mip filters #1
 
File:Vtf mipmap filters2.jpg|Mip filters #2
 
File:Vtf mipmap filters3.jpg|Mip filters #3
 
File:Vtf mipmap filters4.jpg|Mip filters #4
 
</gallery>
 
 
 
==== 法线贴图设置 ====
 
 
 
这些(打错标签的)设置能够让你从输入的图片中生成一张[[bump map|法线贴图]]。你可能希望使用图片编辑器制作一张更好的法线贴图,但提供的自动选项能够快速生成法线贴图,可以在它的基础上进行修改。
 
 
 
=== 配置与保存 ===
 
 
 
点击OK按钮后,导入的图片转换完成(文件过大时会有较大的延迟),并生成一个VTF文件。接下来要做的只剩下在左侧的选项列表中对纹理进行配置了。[[Valve Texture Format#Image_flags]]中有每个选项的说明。
 
 
 
最后,在你的游戏本体或MOD中的 <code>\materials</code> 文件夹下保存纹理文件。
 
 
 
== 创建材质 ==
 
 
 
起源引擎无法直接使用纹理文件。所有的纹理都需要通过 '''[[material|材质]]'''文件访问。
 
 
 
材质是可以用任何文本编辑器处理的脚本文件。但推荐使用[http://notepad-plus.sourceforge.net/ Notepad++],并安装社区制作的[[Notepad++ VDF languages|语法高亮]]插件。 要让材质能够被检测到,'''它必须被保存在游戏本体或MOD中的 <code>\materials</code> 文件夹下,后缀名是<code>.vmt</code>'''
 
 
 
{{note:zh-cn|如果是专门为地图或是已有mod制作的材质,可以考虑使用[[BSPZIP]]\[[Packbsp]]\[[Pakrat]]\[[Compile Pal]]将材质打包到地图文件中。可以完全杜绝材质丢失的问题。}}
 
 
 
=== 语法 ===
 
 
 
材质文件的格式如下:
 
 
 
<[[shader|渲染器(shader)]]>
 
{
 
<参数> <取值>
 
...
 
}
 
 
 
LightmappedGeneric
 
{
 
$basetexture coast\shingle_01
 
$surfaceprop gravel
 
}
 
 
 
有很多[[shader|渲染器]]可以选择,但大多数材质使用的是 <code>[[LightmappedGeneric]]</code>(用于[[brush|笔刷]]) 或是 <code>[[VertexLitGeneric]]</code> (用于[[model|模型]])。第三常用的渲染器是 <code>[[UnlitGeneric]]</code>,用于 [[VGUI2|UI]] 材质或用于少见的[[tool texture|工具纹理]]。
 
 
 
===参数===
 
 
 
:''在[[:Category:List of Shader Parameters|渲染器参数列表]]中,查看完整的渲染器参数列表文档''
 
 
 
选择了渲染器后,下一步需要配置参数(也叫命令)。材质文件中有数百个可选的参数,因此本文只介绍其中常见的几个。它们在绝大多数的渲染器中是通用的。如下:
 
 
 
*<code>[[$basetexture]]</code>
 
*<code>[[$surfaceprop]]</code>
 
*<code>[[$envmap]]</code>
 
*<code>[[$bumpmap]]</code>
 
*<code>[[$detail]]</code>
 
*<code>[[$selfillum]]</code>
 
*<code>[[$model (VMT)|$model]]</code>
 
 
 
{{tip:zh-cn|如果在参数值中需要使用空格或Tab,必须使用"双引号"把整个值括起来。你经常会看到所有的值都用双引号括起来了——其实可以不用这样,因为它不是必要的。}}
 
 
 
==另见==
 
 
 
* {{en}} [[Material|材质(Material)]]
 
* {{en}} [[Material Editor|材质编辑器]]
 
* {{en}} [[Creating Reflective Materials|创建带反光的材质]]
 
* [[:Category:List of Shader Parameters:zh-cn|渲染器参数列表]]
 
 
 
[[Category:Material System:zh-cn]]
 
[[Category:Tutorials:zh-cn]]
 

Latest revision as of 10:15, 15 August 2023

Warning icon.png
This article has been marked as a candidate for speedy deletion because it has moved, and no longer linked to.
If you object to this decision, then please discuss why hereIf this page doesn't meet the criteria for speedy deletion, then please remove this notice, but do not remove it from pages that you have created yourself
Administrators - Remember to check if anything links here and the page history (last edit) before deleting.