Zh/Skybox (2D): Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
mNo edit summary
 
(13 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{otherlang2
{{LanguageBar}}
|title=2D 天空盒
''2D天空盒''是一个缺乏几何深度的{{L|skybox|天空盒}},只包含一个天空盒贴图(不使用{{L|sky_camera}}实体来显示一个3D微缩模型)。
|en=Skybox (2D)
|ru=Skybox (2D):ru
}}


''2D天空盒''是一个缺乏几何深度的[[skybox|天空盒]],只包含一个天空盒贴图(不使用[[sky_camera]]实体来显示一个3D微缩模型)。
[[File:Skybox_Template.jpg|256 px|right]]
 
[[Image:Skybox_Template.jpg|256 px|right]]


== 添加天空到地图 ==
== 添加天空到地图 ==
简单的在[[world brush|固体]] (非[[brush entity|固体实体]])上贴上'''<code>[[tool textures|tools/toolsskybox]]</code>'''或(如果你正在为[[Orange box|橙盒]]制作地图的话)'''<code>[[tool textures|tools/toolsskybox2d]]</code>'''材质。  
简单的在{{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 16: Line 11:
<code>toolsskybox</code>固体不需要真的是盒形。
<code>toolsskybox</code>固体不需要真的是盒形。


{{note:zh-tw|在[[HL2]]里默认的天空盒有可见的裂缝。这不是你的错。下个部分会教你如何更改默认天空盒。}}
{{Note|在{{L|HL2}}里默认的天空盒有可见的裂缝。这不是你的错。下个部分会教你如何更改默认天空盒。}}
{{note:zh-tw|你永远都不应该通过创建一个挖空了的方块,贴上天空盒贴图,用它包围你的地图的方式来创建天空盒。}}
{{Note|你永远都不应该通过创建一个挖空了的方块,贴上天空盒贴图,用它包围你的地图的方式来创建天空盒。}}


== 更改显示的天空盒 ==
== 更改显示的天空盒 ==


: ''参见[[Sky List|天空列表]]''
: ''参见{{L|Sky List|天空列表}}''


[[Image:Sky_change.png|right|200px]]
[[File:Sky_change.png|right|200px]]


如果你不喜欢标准的"sky_day01_1"天空,你可以通过在Hammer的地图属性对话框里修改天空盒名来改变它。载入一张正常的地图后,跟随以下步骤:
如果你不喜欢标准的"sky_day01_1"天空,你可以通过在Hammer的地图属性对话框里修改天空盒名来改变它。载入一张正常的地图后,跟随以下步骤:
# 打开[[Hammer Map Menu|地图菜单(Map menu)]]
# 打开{{L|Hammer Map Menu|地图菜单(Map menu)}}
# 从下拉菜单中选择'''地图属性...(Map Properties...)'''。
# 从下拉菜单中选择'''地图属性...(Map Properties...)'''。
# 在物体属性(Object Properties)窗口,选择"天空贴图名称(Skybox Texture Name)"。
# 在物体属性(Object Properties)窗口,选择"天空贴图名称(Skybox Texture Name)"。
Line 36: Line 31:
天空盒光照是预先从每一个<code>toolsskybox</code>的表面添加到世界里,代表直接的阳光(或月光),上方的云的漫反射等。
天空盒光照是预先从每一个<code>toolsskybox</code>的表面添加到世界里,代表直接的阳光(或月光),上方的云的漫反射等。


这些照明设置 - 方向,色彩,亮度等是用于2D天空盒的相当具体的实际映像。[[Sky List|天空列表]]提供了一些Valve的天空盒的建议设定。还要注意的是,如果[[env_fog_controller]]没有对应特定的天空盒的话,它们就会看起来像出错一样。
这些照明设置 - 方向,色彩,亮度等是用于2D天空盒的相当具体的实际映像。{{L|Sky List|天空列表}}提供了一些Valve的天空盒的建议设定。还要注意的是,如果{{L|env_fog_controller}}没有对应特定的天空盒的话,它们就会看起来像出错一样。
 


[[Template:Skybox_lighting|天空盒光照]]
{{:Zh/Skybox lighting}}


{{warning:zh-cn|不幸的是,Valve给[[light_environment]][[env_sun]]实体里引进了''Pitch override''参数,而没有给[[shadow_control]]。更不幸的是,''Pitch override''无法被关闭并且其旋转是横向顺时针方向测量计数器(所以正下是-90&deg;)。反之,''<angles> Pitch'' 顺时针方向旋转 (所以正下是+90&deg;)。解决方法就是,确保你的''Pitch override''只是重复''<angles>''的值;举个例子, 如果你的[[shadow_control]], [[light_environment]][[env_sun]]的''<angles>''是"45 -60 0",设置''Pitch override''为"-45"。}}
{{warning|不幸的是,Valve给{{L|light_environment}}{{L|env_sun}}实体里引进了''Pitch override''参数,而没有给{{L|shadow_control}}。更不幸的是,''Pitch override''无法被关闭并且其旋转是横向顺时针方向测量计数器(所以正下是-90&deg;)。反之,''<angles> Pitch'' 顺时针方向旋转 (所以正下是+90&deg;)。解决方法就是,确保你的''Pitch override''只是重复''<angles>''的值;举个例子, 如果你的{{L|shadow_control}}, {{L|light_environment}}{{L|env_sun}}的''<angles>''是"45 -60 0",设置''Pitch override''为"-45"。}}


==创建一个自定义的2D Skybox的贴图==
==创建一个自定义的2D Skybox的贴图==
Line 51: Line 47:
#* <skyname>RT
#* <skyname>RT
#* <skyname>UP
#* <skyname>UP
# [[Creating a Material|转换它们到VTF文件]] 确认你"Clamp S"和"Clamp T",否则当运行在低贴图细节的情况下你会看到裂缝。
# {{L|Creating a Material|转换它们到VTF文件}} 确认你"Clamp S"和"Clamp T",否则当运行在低贴图细节的情况下你会看到裂缝。
# 在<code>\materials\skybox\</code>里为每一个贴图创建材质,使用下列的模板:
# 在<code>\materials\skybox\</code>里为每一个贴图创建材质,使用下列的模板:
Sky
UnlitGeneric
  {
  {
  [[$basetexture]] "<VTF>"
  {{L|$basetexture}} "<VTF>"
  [[$hdrcompressedtexture]] "<VTF>"
  {{L|$hdrcompressedtexture}} "<VTF>"
  [[$nofog]] 1
  {{L|$nofog}} 1
  [[$ignorez]] 1
  {{L|$ignorez}} 1
  }
  }


现在,在[[Hammer]]里,找到地图(Map) > 地图属性(Map Properties) > 天空盒贴图名(Skybox Texture Name),键入你的天空盒名称,不要包含任何边标记。
现在,在{{L|Hammer}}里,找到地图(Map) > 地图属性(Map Properties) > 天空盒贴图名(Skybox Texture Name),键入你的天空盒名称,不要包含任何边标记。


== 使用起源为[[Goldsource]]创建一个2D天空盒==
== 使用起源为{{L|Goldsource}}创建一个2D天空盒==
可以创建一个用于Goldsource(HL1的引擎)的区域地图为一个2D天空盒。这里是一个简单的例子:
可以创建一个用于Goldsource(HL1的引擎)的区域地图为一个2D天空盒。这里是一个简单的例子:
# 创建一个带置换贴图和树线的大型户外区域,并且用雾隐藏边缘。我们称它''' ''胡萝卜汁'' '''.
# 创建一个带置换贴图和树线的大型户外区域,并且用雾隐藏边缘。我们称它''' ''胡萝卜汁'' '''.
Line 83: Line 79:


== 参见 ==
== 参见 ==
* [[light_environment]][[env_sun]][[shadow_control]]实体限定天空盒的光照设定,由toolsskybox贴图发射到地图
* {{L|light_environment}}{{L|env_sun}}{{L|shadow_control}}实体限定天空盒的光照设定,由toolsskybox贴图发射到地图
*[[Skybox Optimization|天空盒优化]] - 一个关于如何优化2D天空盒的教程。
*{{L|Skybox Optimization|天空盒优化}} - 一个关于如何优化2D天空盒的教程。
*[[Sky List|天空列表]] - 一个天空盒贴图的列表(Valve所使用的)
*{{L|Sky List|天空列表}} - 一个天空盒贴图的列表(Valve所使用的)
* [[Sky Writer]] - 一个将3DS Max的场景作为HDR天空直接渲染到起源的工具。
* {{L|Sky Writer}} - 一个将3DS Max的场景作为HDR天空直接渲染到起源的工具。
{{envart}}
{{envart:zh-cn}}
 
{{ACategory|Material System}}
{{ACategory|Glossary}}
{{ACategory|Skybox}}
 


[[Category:Material System]]
{{stub}}
[[Category:Glossary]]
[[Category:Skybox]]
[[Category:Chinese]]

Latest revision as of 10:10, 19 July 2024

English (en)Español (es)Português do Brasil (pt-br)Русский (ru)中文 (zh)Translate (Translate)

2D天空盒是一个缺乏几何深度的天空盒(en),只包含一个天空盒贴图(不使用sky_camera(en)实体来显示一个3D微缩模型)。

Skybox Template.jpg

添加天空到地图

简单的在固体(en) (非固体实体(en))上贴上tools/toolsskybox(en)或(如果你正在为橙盒(en)制作地图的话)tools/toolsskybox2d(en)材质。

在游戏里,天空盒看起来像是穿过了每个面,说明toolsskybox已经应用了。

toolsskybox固体不需要真的是盒形。

Note.png注意:HL2(en)里默认的天空盒有可见的裂缝。这不是你的错。下个部分会教你如何更改默认天空盒。
Note.png注意:你永远都不应该通过创建一个挖空了的方块,贴上天空盒贴图,用它包围你的地图的方式来创建天空盒。

更改显示的天空盒

参见天空列表(en)
Sky change.png

如果你不喜欢标准的"sky_day01_1"天空,你可以通过在Hammer的地图属性对话框里修改天空盒名来改变它。载入一张正常的地图后,跟随以下步骤:

  1. 打开地图菜单(Map menu)(en)
  2. 从下拉菜单中选择地图属性...(Map Properties...)
  3. 在物体属性(Object Properties)窗口,选择"天空贴图名称(Skybox Texture Name)"。
  4. 根据所列出的天空列表,修改成你想要显示的天空盒的名称。

天空盒光照

天空盒光照是预先从每一个toolsskybox的表面添加到世界里,代表直接的阳光(或月光),上方的云的漫反射等。

这些照明设置 - 方向,色彩,亮度等是用于2D天空盒的相当具体的实际映像。天空列表(en)提供了一些Valve的天空盒的建议设定。还要注意的是,如果env_fog_controller(en)没有对应特定的天空盒的话,它们就会看起来像出错一样。


English (en)Español (es)Português do Brasil (pt-br)Русский (ru)中文 (zh)Translate (Translate)
Toolsskybox.gif

天空盒照明(en)通过每一个toolsskybox(en)纹理的固体进入地图。其基本属性由三个实体组合使用来控制(有些游戏是四个实体):

  • light_environment指定直射日光的方向、颜色和强度,以及漫反射光的颜色和强度。
  • shadow_control实体指定light_environment所创建的动态阴影(en)的方向、颜色和距离。如果没有该实体,动态阴影将会有bug且不可配置。
  • env_sun在天空盒中放置一个发光的图标来表示太阳在天空中的明显位置。
  • env_cascade_light给地图投射一个精细的实时阴影,其设置通常来自light_environment。只能用于反恐精英:全球攻势Insurgency黑山

要使它们有意义,确保以上每个实体在地图中只有一个,并且实体的Pitch and Yaw <角度>设置为相同的值。(Pitch相当于太阳的仰角,而Yaw则类似于指南针轴承。)

这些照明设置——方向、颜色、强度等,是以具体2D天空盒的图像而定的。天空列表(en)文章提供了一些Valve的天空盒的设置。worldspawn实体定义了使用的天空盒。另外请注意,如果env_fog_controller的设置与使用的特定天空盒不对应,雾气看起来会不正确。

Note.png注意:Pitch会对light_environmentenv_sun强制,但不能对shadow_controlPitch的强制也不能被关闭,且它的旋转是从水平方向逆时针开始的(因此竖直向下是-90°),而<角度> Pitch的旋转是顺时针的(因此竖直向下是+90°)。一个应对方法是确保你的Pitch强制只重复<角度>的值;例如,如果你的shadow_controllight_environmentenv_sun<角度>是「45 -60 0」,把Pitch设置为「-45」。

==See also==

Warning.png警告:不幸的是,Valve给light_environment(en)env_sun(en)实体里引进了Pitch override参数,而没有给shadow_control(en)。更不幸的是,Pitch override无法被关闭并且其旋转是横向顺时针方向测量计数器(所以正下是-90°)。反之,<angles> Pitch 顺时针方向旋转 (所以正下是+90°)。解决方法就是,确保你的Pitch override只是重复<angles>的值;举个例子, 如果你的shadow_control(en), light_environment(en)env_sun(en)<angles>是"45 -60 0",设置Pitch override为"-45"。

创建一个自定义的2D Skybox的贴图

# 准备好你的图像文件。你需要6张分辨率相同的图像:

    • <skyname>BK
    • <skyname>DN
    • <skyname>FT
    • <skyname>LF
    • <skyname>RT
    • <skyname>UP
  1. 转换它们到VTF文件(en) 确认你"Clamp S"和"Clamp T",否则当运行在低贴图细节的情况下你会看到裂缝。
  2. \materials\skybox\里为每一个贴图创建材质,使用下列的模板:
UnlitGeneric
{
	$basetexture(en) "<VTF>"
	$hdrcompressedtexture(en) "<VTF>"
	$nofog(en) 1
	$ignorez(en) 1
}

现在,在Hammer(en)里,找到地图(Map) > 地图属性(Map Properties) > 天空盒贴图名(Skybox Texture Name),键入你的天空盒名称,不要包含任何边标记。

使用起源为Goldsource(en)创建一个2D天空盒

可以创建一个用于Goldsource(HL1的引擎)的区域地图为一个2D天空盒。这里是一个简单的例子:

  1. 创建一个带置换贴图和树线的大型户外区域,并且用雾隐藏边缘。我们称它 胡萝卜汁 .
  2. 在游戏里载入地图并打开作弊("sv_cheats 1")。
  3. 打开控制台后输入 "noclip"然后按回车来激活noclip(无碰撞)模式。
  4. 飞到你想要的天空盒的中心。
  5. 打开控制台并输入"mat_envmaptgasize 256",按回车
  6. 现在键入"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目录里,像地图里的天空盒一样使用它

参见

环境相关的文章
天空和环境地图 起源 起源: 天空盒 (2D)天空盒 (3D)HDR 天空带有 Terragen 的天空盒带有 Terragen 的 Skybox - 高级天空列表


起源2 起源2: 天空盒 (3D)

地形和置换表层制作 置换表层Creating Holes in Displacements|在置换表层中打孔数字高程模型使用 Worldmachine 创建自定义地形


小作品

This article or section is a stub. You can help by expanding it.