Zh/Skybox (2D): Difference between revisions
(Created page with "{{otherlang2| title=2D 天空盒| |en=Skybox_(2D)}} ''2D天空盒''是一个缺乏几何深度的天空盒,只包含一个天空盒贴图(不使用sky_camera实...") |
m (修改了部分有歧义的翻译。Revised the ambiguous translation.) |
||
| (15 intermediate revisions by 9 users not shown) | |||
| Line 1: | Line 1: | ||
{{ | {{LanguageBar}} | ||
''2D天空盒''是一个缺乏几何深度的{{L|skybox|天空盒}},只包含一个天空盒贴图(不使用{{L|sky_camera}}实体来显示一个3D微缩模型)。 | |||
| | |||
[[File:Skybox_Template.jpg|256 px|right]] | |||
== 添加天空到地图 == | == 添加天空到地图 == | ||
简单的在 | 简单的在{{L|world brush|固体}} (非{{L|brush entity|固体实体}})上贴上'''<code>{{L|tool textures|tools/toolsskybox}}</code>'''或(如果你正在为{{L|Orange box|橙盒}}制作地图的话)'''<code>{{L|tool textures|tools/toolsskybox2d}}</code>'''材质。 | ||
在游戏里,天空盒看起来像是''穿过''了每个面,说明<code>toolsskybox</code>已经应用了。 | 在游戏里,天空盒看起来像是''穿过''了每个面,说明<code>toolsskybox</code>已经应用了。 | ||
| Line 14: | Line 11: | ||
<code>toolsskybox</code>固体不需要真的是盒形。 | <code>toolsskybox</code>固体不需要真的是盒形。 | ||
{{ | {{Note|在{{L|HL2}}里默认的天空盒有可见的裂缝。这不是你的错。下个部分会教你如何更改默认天空盒。}} | ||
{{ | {{Note|你永远都不应该通过创建一个挖空了的方块,贴上天空盒贴图,用它包围你的地图的方式来创建天空盒。}} | ||
== 更改显示的天空盒 == | == 更改显示的天空盒 == | ||
: ''参见 | : ''参见{{L|Sky List|天空列表}}'' | ||
[[ | [[File:Sky_change.png|right|200px]] | ||
如果你不喜欢标准的"sky_day01_1"天空,你可以通过在Hammer的地图属性对话框里修改天空盒名来改变它。载入一张正常的地图后,跟随以下步骤: | 如果你不喜欢标准的"sky_day01_1"天空,你可以通过在Hammer的地图属性对话框里修改天空盒名来改变它。载入一张正常的地图后,跟随以下步骤: | ||
# 打开 | # 打开{{L|Hammer Map Menu|地图菜单(Map menu)}} | ||
# 从下拉菜单中选择'''地图属性...(Map Properties...)'''。 | # 从下拉菜单中选择'''地图属性...(Map Properties...)'''。 | ||
# 在物体属性(Object Properties)窗口,选择"天空贴图名称(Skybox Texture Name)"。 | # 在物体属性(Object Properties)窗口,选择"天空贴图名称(Skybox Texture Name)"。 | ||
| Line 34: | Line 31: | ||
天空盒光照是预先从每一个<code>toolsskybox</code>的表面添加到世界里,代表直接的阳光(或月光),上方的云的漫反射等。 | 天空盒光照是预先从每一个<code>toolsskybox</code>的表面添加到世界里,代表直接的阳光(或月光),上方的云的漫反射等。 | ||
这些照明设置 - 方向,色彩,亮度等是用于2D天空盒的相当具体的实际映像。 | 这些照明设置 - 方向,色彩,亮度等是用于2D天空盒的相当具体的实际映像。{{L|Sky List|天空列表}}提供了一些Valve的天空盒的建议设定。还要注意的是,如果{{L|env_fog_controller}}没有对应特定的天空盒的话,它们就会看起来像出错一样。 | ||
{{:Zh/Skybox lighting}} | |||
{{warning | {{warning|不幸的是,Valve给{{L|light_environment}}和{{L|env_sun}}实体里引进了''Pitch override''参数,而没有给{{L|shadow_control}}。更不幸的是,''Pitch override''无法被关闭并且其旋转是横向顺时针方向测量计数器(所以正下是-90°)。反之,''<angles> Pitch'' 顺时针方向旋转 (所以正下是+90°)。解决方法就是,确保你的''Pitch override''只是重复''<angles>''的值;举个例子, 如果你的{{L|shadow_control}}, {{L|light_environment}}和{{L|env_sun}}的''<angles>''是"45 -60 0",设置''Pitch override''为"-45"。}} | ||
==创建一个自定义的2D Skybox的贴图== | ==创建一个自定义的2D Skybox的贴图== | ||
# 准备好图片文件。一个图像文件可以包含天空盒的多个面,因此实际并不需要6个图片文件。 | |||
#* <skyname>BK | # 把它们{{L|Creating a Material|转为VTF文件}}。请确保勾选了“Clamp S”和“Clamp T”选项,否则在纹理质量设置为低时,会出现接缝。 | ||
#* <skyname>DN | # 在 {{path|\materials\skybox\}} 路径下创建下列6个 [[VMT]] 纹理文件。注意文件名不区分大小写。 | ||
#* <skyname>FT | #* {{mono|<skyname>BK.vmt}} | ||
#* <skyname>LF | #* {{mono|<skyname>DN.vmt}} | ||
#* <skyname>RT | #* {{mono|<skyname>FT.vmt}} | ||
#* <skyname>UP | #* {{mono|<skyname>LF.vmt}} | ||
# | #* {{mono|<skyname>RT.vmt}} | ||
#* {{mono|<skyname>UP.vmt}} | |||
# 文件使用如下的模板: | |||
UnlitGeneric | |||
{ | { | ||
{{L|$basetexture}} "<VTF>" | |||
{{L|$hdrcompressedtexture}} "<VTF>" | |||
{{L|$nofog}} 1 | |||
{{L|$ignorez}} 1 | |||
} | } | ||
现在,在[[Hammer]] | 现在,在 [[Hammer]] 里,找到''地图(Map)'' > ''地图属性(Map Properties)'' > ''天空盒贴图名(Skybox Texture Name)'',输入你的天空盒名称''<skyname>'',注意不包含“BK”等表示方向的后缀及“.vmt”后缀名。 | ||
== 使用起源为 | == 使用起源为{{L|Goldsource}}创建一个2D天空盒== | ||
可以创建一个用于Goldsource(HL1的引擎)的区域地图为一个2D天空盒。这里是一个简单的例子: | 可以创建一个用于Goldsource(HL1的引擎)的区域地图为一个2D天空盒。这里是一个简单的例子: | ||
# 创建一个带置换贴图和树线的大型户外区域,并且用雾隐藏边缘。我们称它''' ''胡萝卜汁'' '''. | # 创建一个带置换贴图和树线的大型户外区域,并且用雾隐藏边缘。我们称它''' ''胡萝卜汁'' '''. | ||
| Line 81: | Line 80: | ||
== 参见 == | == 参见 == | ||
* | * {{L|light_environment}},{{L|env_sun}}和{{L|shadow_control}}实体限定天空盒的光照设定,由toolsskybox贴图发射到地图 | ||
* | *{{L|Skybox Optimization|天空盒优化}} - 一个关于如何优化2D天空盒的教程。 | ||
* | *{{L|Sky List|天空列表}} - 一个天空盒贴图的列表(Valve所使用的) | ||
* | * {{L|Sky Writer}} - 一个将3DS Max的场景作为HDR天空直接渲染到起源的工具。 | ||
{{envart}} | {{envart:zh-cn}} | ||
{{ACategory|Material System}} | |||
{{ACategory|Glossary}} | |||
{{ACategory|Skybox}} | |||
{{stub}} | |||
Latest revision as of 23:52, 13 September 2025
2D天空盒是一个缺乏几何深度的天空盒,只包含一个天空盒贴图(不使用sky_camera实体来显示一个3D微缩模型)。
添加天空到地图
简单的在固体 (非固体实体)上贴上tools/toolsskybox或(如果你正在为橙盒制作地图的话)tools/toolsskybox2d材质。
在游戏里,天空盒看起来像是穿过了每个面,说明toolsskybox已经应用了。
toolsskybox固体不需要真的是盒形。
更改显示的天空盒
- 参见天空列表
如果你不喜欢标准的"sky_day01_1"天空,你可以通过在Hammer的地图属性对话框里修改天空盒名来改变它。载入一张正常的地图后,跟随以下步骤:
- 打开地图菜单(Map menu)
- 从下拉菜单中选择地图属性...(Map Properties...)。
- 在物体属性(Object Properties)窗口,选择"天空贴图名称(Skybox Texture Name)"。
- 根据所列出的天空列表,修改成你想要显示的天空盒的名称。
天空盒光照
天空盒光照是预先从每一个toolsskybox的表面添加到世界里,代表直接的阳光(或月光),上方的云的漫反射等。
这些照明设置 - 方向,色彩,亮度等是用于2D天空盒的相当具体的实际映像。天空列表提供了一些Valve的天空盒的建议设定。还要注意的是,如果env_fog_controller没有对应特定的天空盒的话,它们就会看起来像出错一样。
天空盒照明通过每一个toolsskybox纹理的固体进入地图。其基本属性由三个实体组合使用来控制(有些游戏是四个实体):
- light_environment指定直射日光的方向、颜色和强度,以及漫反射光的颜色和强度。
- shadow_control实体指定
light_environment所创建的动态阴影的方向、颜色和距离。如果没有该实体,动态阴影将会有bug且不可配置。 - env_sun在天空盒中放置一个发光的图标来表示太阳在天空中的明显位置。
- env_cascade_light给地图投射一个精细的实时阴影,其设置通常来自
light_environment。只能用于

。
要使它们有意义,确保以上每个实体在地图中只有一个,并且实体的Pitch and Yaw <角度>设置为相同的值。(Pitch相当于太阳的仰角,而Yaw则类似于指南针轴承。)
这些照明设置——方向、颜色、强度等,是以具体2D天空盒的图像而定的。天空列表文章提供了一些Valve的天空盒的设置。worldspawn实体定义了使用的天空盒。另外请注意,如果env_fog_controller的设置与使用的特定天空盒不对应,雾气看起来会不正确。
light_environment和env_sun强制,但不能对shadow_control。Pitch的强制也不能被关闭,且它的旋转是从水平方向逆时针开始的(因此竖直向下是-90°),而<角度> Pitch的旋转是顺时针的(因此竖直向下是+90°)。一个应对方法是确保你的Pitch强制只重复<角度>的值;例如,如果你的shadow_control、light_environment和env_sun的<角度>是「45 -60 0」,把Pitch设置为「-45」。==See also==
创建一个自定义的2D Skybox的贴图
- 准备好图片文件。一个图像文件可以包含天空盒的多个面,因此实际并不需要6个图片文件。
- 把它们转为VTF文件。请确保勾选了“Clamp S”和“Clamp T”选项,否则在纹理质量设置为低时,会出现接缝。
- 在

\materials\skybox\路径下创建下列6个 VMT 纹理文件。注意文件名不区分大小写。- <skyname>BK.vmt
- <skyname>DN.vmt
- <skyname>FT.vmt
- <skyname>LF.vmt
- <skyname>RT.vmt
- <skyname>UP.vmt
- 文件使用如下的模板:
UnlitGeneric
{
$basetexture "<VTF>"
$hdrcompressedtexture "<VTF>"
$nofog 1
$ignorez 1
}
现在,在 Hammer 里,找到地图(Map) > 地图属性(Map Properties) > 天空盒贴图名(Skybox Texture Name),输入你的天空盒名称<skyname>,注意不包含“BK”等表示方向的后缀及“.vmt”后缀名。
使用起源为Goldsource创建一个2D天空盒
可以创建一个用于Goldsource(HL1的引擎)的区域地图为一个2D天空盒。这里是一个简单的例子:
- 创建一个带置换贴图和树线的大型户外区域,并且用雾隐藏边缘。我们称它 胡萝卜汁 .
- 在游戏里载入地图并打开作弊("sv_cheats 1")。
- 打开控制台后输入 "noclip"然后按回车来激活noclip(无碰撞)模式。
- 飞到你想要的天空盒的中心。
- 打开控制台并输入"mat_envmaptgasize 256",按回车
- 现在键入"envmap"然后按回车。现在,6个TGA文件已经被创建并保存到模组文件夹下名为"cubemap_screenshots"的文件夹(例:对于HL2DM:Steam\SteamApps\你的账户名\Half-Life 2 Deathmatch\hl2mp)。
由于地图名是 carrotjuice ,6个TGA文件的名字如下所示:
carrotjuicert.tga (右) carrotjuiceft.tga (前) carrotjuicelf.tga (左) carrotjuicebk.tga (后) carrotjuiceup.tga (上) carrotjuicedn.tga (下)
你现在可以复制或移动这些文件到你的HL1模组的gfx\env-folder目录里,像地图里的天空盒一样使用它
参见
- light_environment,env_sun和shadow_control实体限定天空盒的光照设定,由toolsskybox贴图发射到地图
- 天空盒优化 - 一个关于如何优化2D天空盒的教程。
- 天空列表 - 一个天空盒贴图的列表(Valve所使用的)
- Sky Writer - 一个将3DS Max的场景作为HDR天空直接渲染到起源的工具。
| 环境相关的文章 | |
|---|---|
| 天空和环境地图 | |
| 地形和置换表层制作 | 置换表层 • Creating Holes in Displacements|在置换表层中打孔 • 数字高程模型 • 使用 Worldmachine 创建自定义地形 |
