Difference between revisions of "3D Skybox:zh-cn"

From Valve Developer Community
Jump to: navigation, search
m (Redo title after moving this page; wording)
(Sync from English version; edit category)
Line 1: Line 1:
{{otherlang2
+
{{lang
 
|title=3D天空盒
 
|title=3D天空盒
|en=3D Skybox
 
|ru=3D Skybox:ru
 
|it=3D Skybox:it
 
|de=3D Skybox:de
 
 
}}
 
}}
  
{{note:zh-cn|译者:joyo_a(百度ID)由于原文改动太多,所以特别在这里说明本译文是翻译2017年11月16日修改的文章。如果原文有大变动,请以最新修改日期的文章为准。}}
+
添加一个''3D天空盒''可以成为地图视觉处理的一个强大补充。3D天空盒是由地图作者在地图的游戏部分边界之外构建的额外区域。加载地图时,起源会放大3D天空盒区域中的对象,并将它们放置在[[skybox|天空盒]]和玩家之间的当前地图边界之外。由于(默认)1:16的比例,这可以让你的地图呈现出更广阔的世界而无需损失太多性能。3D天空盒是非交互的——玩家和其他实体不能移动到3D天空盒空间。
  
添加一个''3D天空盒''可以成为一个地图的视觉处理的强大补充。3D天空盒是由地图作者在地图的游戏部分边界之外构建的额外区域。加载地图时,起源会放大3D天空盒区域中的对象,并将它们放置在[[skybox|天空盒]]和玩家之间的当前地图边界之外。这是用来让你的地图在(默认)1:16的比例下有更广阔的世界外观的外观,而不是太贵的预算。3D天空盒是非交互式的 - 玩家和其他实体不能移动到3D天空盒空间。
+
3D天空盒可以做到与正常的几何体几乎无法分辨。正常地图几何体和3D天空盒的无缝过渡是完全可能的,并且应用在包括[[Counter-Strike: Source|反恐精英:起源]]在内的很多官方起源游戏的地图上。
  
3D天空盒的几何形状与普通的几何体几乎没有区别。正常地图几何体和3D天空盒的无缝过渡是完全可能的,并且应用在很多官方起源游戏的地图上,例如[[Counter-Strike: Source]]。
+
{{bug|在{{Portal}}传送门中,''透过传送门观察时,3D天空盒无法正确渲染。'' - [[Image:3dSkyboxProb.png|30 px|example]].}}
 
+
{{note:zh-cn|3D天空盒不是[[2D skybox|2D天空盒]]的替代品。2D天空盒总是在3D天空盒的背景中。要编辑或更改标准2D天空盒,请参阅[[Skybox (2D)|2D天空盒]]。}}
{{bug|在{{Portal}}Portal,''透过传送门观察时,3D天空盒无法正确渲染。'' - [[Image:3dSkyboxProb.png|30 px|example]].}}
+
{{note:zh-cn|在{{l4d}}求生之路中,默认比例为1:32,而不是1:16(但1:16能正常运行!)。}}
{{note:zh-cn|3D天空盒不是[[2D skybox|2D天空盒]]的替代品。2D天空盒总是在3D天空盒的背景中。要编辑或更改标准2D天空盒,请参阅[[Skybox (2D)]]。}}
 
{{note:zh-cn|在{{l4d}},默认比例为1:32,而不是1:16(但是1:16工作正常!)。}}
 
 
{{note:zh-cn|为避免照明问题,请勿使用[[light]]实体(或没有Env_前缀的任何其他灯光实体)。}}
 
{{note:zh-cn|为避免照明问题,请勿使用[[light]]实体(或没有Env_前缀的任何其他灯光实体)。}}
{{note:zh-cn|在{{Portal2}}Portal 2,除非将<code>r_skybox_draw_last</code>设置为<code>0</code>,否则一些天空盒几何体将不可见。}}
+
{{note:zh-cn|在{{Portal2}}传送门2中,除非将<code>r_skybox_draw_last</code>设置为<code>0</code>,否则一些天空盒几何体将不可见。}}
  
 
==优点==
 
==优点==
  
标准天空盒是简单的2D图像,通过映射到一个立方体以便他们围绕整个地图。3D天空盒是完整的3D几何体,并且在玩家在地图中移动时具有合适的视差。由于它们是实时渲染的,所以它们可以随着显卡的分辨率进行扩展,并且还支持2D天空盒所不支持的实时着色器效果。
+
标准天空盒是简单的2D图像,通过映射到一个立方体以便他们围绕整个地图。3D天空盒是完整的3D几何体,并且在玩家在地图中移动时具有合适的视差。由于它们是实时渲染的,它们与显卡的分辨率一同缩放,并且还支持2D天空盒所不支持的实时着色器效果。
  
使用3D天空盒的主要好处是,它允许地图作者使地图看起来比标准的世界几何体大得多。没有3D天空盒的最大的地图是每边32768个单位。使用3D天空盒,地图可以扩展到16倍。
+
使用3D天空盒的主要好处是它允许地图作者使地图看起来比标准的世界几何体大得多。没有3D天空盒的最大的地图是每边32768个单位。使用3D天空盒,地图可以扩展到16倍。
  
这个尺寸的地图是可以的,因为3D天空盒是在Hammer编辑器中以标准地图的1/16的比例创建的。在运行时,引擎会将其缩回以匹配地图其余部分的比例。这不仅节省了编辑器视图中的空间,而且编译和渲染也更便宜。
+
这种尺寸的地图能够存在是因为3D天空盒是在Hammer编辑器中以标准地图的1/16的比例创建的。在运行时,引擎会将其缩回以匹配地图其余部分的比例。这不仅节省了编辑器视图中的空间,而且编译和渲染也更便宜。
  
 
由于其比例,3D天空盒的光照贴图和纹理分辨率要低得多。这使得3D天空盒几何体比标准的世界几何体更便宜。
 
由于其比例,3D天空盒的光照贴图和纹理分辨率要低得多。这使得3D天空盒几何体比标准的世界几何体更便宜。
  
如果创建与主地图相同的低细节天空盒,则可以使用3D天空盒克服绘制距离限制。希望这样做的mod团队将不得不开发代码来缓解地图版本之间的转换。
+
如果创建与主地图相同的低细节天空盒,则可以使用3D天空盒克服绘制距离限制。想要这样做的mod团队必须开发代码来解决地图版本之间的转换。
  
 
===基本特征===
 
===基本特征===
Line 35: Line 29:
 
3D天空盒具有以下特点:
 
3D天空盒具有以下特点:
  
* 在Hammer编辑器中以1:16的比例构建(默认),然后在引擎中以16倍的尺寸渲染以匹配世界几何体。
+
* 在Hammer编辑器中(默认)以1:16的比例构建,然后在引擎中以16倍的尺寸渲染以匹配世界几何体。
* 支持具有着色效果的材质,如法线贴图,水,环境贴图,代理(proxies)等。
+
* 支持具有着色效果的材质,如法线贴图、水、环境贴图、代理等。
* 非互动 - 玩家和其他世界实体不能进入3D天空盒。3D天空盒只是地图范围的可视扩展。
+
* 非互动——玩家和其他世界实体不能进入3D天空盒。3D天空盒只是地图范围的视觉扩展。
* 可以用笔刷,位移,静态和动态道具,灯光,笔刷实体和点实体(如[[env_sprite]])构造。
+
* 可以用固体、位移、静态和动态道具、灯光、固体实体和点实体(如[[env_sprite]])来构造。
* 放置在3D天空盒中的任何模型必须以1:16的比例制作。标准模型([[Prop_Types_Overview|道具]])不能在3D天空盒中正确缩放。必须使用特殊的1:16比例的版本。对于[[Half-Life 2]],这些道具可以在<code>models/props_skybox</code>目录中找到。
+
* 放置在3D天空盒中的任何模型必须以1:16的比例制作。标准模型([[Prop_Types_Overview|道具]])不能在3D天空盒中正确缩放。必须使用特殊的1:16比例的版本。对于[[Half-Life 2|半条命2]],这些道具可以在<code>models/props_skybox</code>目录中找到。
 
* 不应该包含[[info_player_start]],NPC或怪物。
 
* 不应该包含[[info_player_start]],NPC或怪物。
* 具有较低的光照贴图和纹理分辨率(因为它们创建的比例)。
+
* 由于它们创建的比例,具有较低的光照贴图和纹理分辨率。
 
* 必须有自己的光源,尽管非天空盒部分的[[light_environment]]也将用于3D天空盒的照明。
 
* 必须有自己的光源,尽管非天空盒部分的[[light_environment]]也将用于3D天空盒的照明。
 
* 使用[[sky_camera]]实体来控制它们与非天空盒世界几何体的对齐方式。
 
* 使用[[sky_camera]]实体来控制它们与非天空盒世界几何体的对齐方式。
 
* 3D天空盒有自己的雾气参数,可以在[[sky_camera]]实体中调节。
 
* 3D天空盒有自己的雾气参数,可以在[[sky_camera]]实体中调节。
* 3D天空盒中的几何体不像其他几何体一样被遮挡或剔除。将大量细节化的笔刷几何体或模型添加到3D天空盒,尤其是使用半透明材料,会严重影响性能。
+
* 3D天空盒中的几何体不像其他几何体一样被遮挡或剔除。将大量细节化的固体或模型添加到3D天空盒,尤其是使用半透明材质,会严重影响性能。
* 地图必须有一个<code>[[light_environment]]</code>,否则3d天空盒中的模型将被错误地点亮。<code>light_environment</code>放在地图的非天空盒部分,不需要放在3D天空盒中。
+
* 地图必须有一个<code>[[light_environment]]</code>,否则3D天空盒中的模型将被错误地照亮。如果<code>light_environment</code>放在地图的非天空盒部分,则不需要放在3D天空盒中。
  
 
==3D天空盒的制作==
 
==3D天空盒的制作==
 
* 关于[[sky_camera]]实体的注意事项:点实体不会缩小。
 
* 关于[[sky_camera]]实体的注意事项:点实体不会缩小。
  
创建与当前地图匹配或“排列”的3D天空盒的最有效方法是使用地图中主要部分的一些几何体。创建主地图的几何体后,按照以下步骤操作:
+
创建与当前地图匹配或「对接」的3D天空盒的最有效方法是使用地图中主要部分的一些几何体。创建主地图的几何体后,按照以下步骤操作:
  
 
# 在世界原点(坐标0,0,0)处添加一个[[sky_camera]]实体,这是地图网格的中心。[[sky_camera]]是渲染器用来将3D天空盒与地图的主要部分对齐的参考点。换句话说,它作为一个标记,告诉渲染器3D天空盒的源点和世界的源点是如何相互关联的。您可以将此过程视为与选择所有3D天空盒几何体相似,然后将该选择中的[[sky_camera]]实体与世界原点'''(0,0,0)'''对齐。几何体被''转换''回到世界上的那个位置。这是天空盒在引擎中呈现时使用的相同概念。
 
# 在世界原点(坐标0,0,0)处添加一个[[sky_camera]]实体,这是地图网格的中心。[[sky_camera]]是渲染器用来将3D天空盒与地图的主要部分对齐的参考点。换句话说,它作为一个标记,告诉渲染器3D天空盒的源点和世界的源点是如何相互关联的。您可以将此过程视为与选择所有3D天空盒几何体相似,然后将该选择中的[[sky_camera]]实体与世界原点'''(0,0,0)'''对齐。几何体被''转换''回到世界上的那个位置。这是天空盒在引擎中呈现时使用的相同概念。
# 选择地图的一些不同的部分,你可以为3D天空盒中的比例和位置使用红线。为此目的选择的共同元素则是一些较大的结构,以及定义地图边缘的墙壁,悬崖,丘陵等。确保你创建的[[sky_camera]]也被选中。{{注意|重要的是'''不要'''选择任何模型实体,只有笔刷。模型不能用作参考几何体,因为模型不能在Hammer编辑器中缩小。}}
+
# 选择地图的一些不同的部分,你可以为3D天空盒中的比例和位置使用红线。为此目的选择的共同元素则是一些较大的结构,以及定义地图边缘的墙壁、悬崖、丘陵等。确保你创建的[[sky_camera]]也被选中。{{note:zh-cn|重要的是'''不要'''选择任何模型实体,只有笔刷。模型不能用作参考几何体,因为模型不能在Hammer编辑器中缩小。}}
 
# 从'''编辑'''(Edit)菜单中选择'''复制'''(Copy),或点击CTRL-C。
 
# 从'''编辑'''(Edit)菜单中选择'''复制'''(Copy),或点击CTRL-C。
 
# 从'''编辑'''(Edit)菜单中选择'''选择性粘贴'''(Paste Special)。将'''要复制的份数'''(Number of copies)设置为'''1''',将所有其他值设置为'''0'''。点击'''确定'''(OK)。这将出现你选择的几何体的副本。
 
# 从'''编辑'''(Edit)菜单中选择'''选择性粘贴'''(Paste Special)。将'''要复制的份数'''(Number of copies)设置为'''1''',将所有其他值设置为'''0'''。点击'''确定'''(OK)。这将出现你选择的几何体的副本。
 
# 如果尚未打开,则在工具栏中打开'''缩放纹理锁定'''(Scaling Texture Lock)。它的图标类似于<tl>。这将随着几何体缩小纹理。
 
# 如果尚未打开,则在工具栏中打开'''缩放纹理锁定'''(Scaling Texture Lock)。它的图标类似于<tl>。这将随着几何体缩小纹理。
# 保持被选中的几何体,从'''工具'''(Tools)菜单中选择'''变换'''(Transform)。选择'''缩放'''(Scale)旁边的单选按钮。为'''X,Y和Z'''键入一个.0625的值。这是相当于1:16的十进制数——3D天空盒的比例。点击'''确定'''(OK)。{{注意|如果你希望几何体上的纹理相应地缩放,请确保已启用纹理锁定。}}
+
# 保持几何体被选中,从'''工具'''(Tools)菜单中选择'''变换'''(Transform)。选择'''缩放'''(Scale)旁边的单选按钮。为'''X,Y和Z'''键入一个.0625的值。这是相当于1:16的十进制数——3D天空盒的比例。点击'''确定'''(OK)。{{note:zh-cn|如果你希望几何体上的纹理相应地缩放,请确保已启用缩放纹理锁定。}}
# 你现在拥有1:16比例版本的参考几何体。现在拖动(移动)到地图的另一个你希望建立你的3D天空盒的地方。只要没有触及主地图的几何体区域的任何部分,它在哪里都没关系。
+
# 你现在拥有1:16比例版本的参考几何体。现在拖动(移动)到地图的另一个你希望建立你的3D天空盒的地方。只要没有触及主地图的几何体区域的任何部分,它在哪里都没关系。
 
# 删除正常的世界地图区域的[[sky_camera]]实体。''重要'':应该只保留3D天空盒中的[[sky_camera]]实体在地图中。在L4D2(或者是其他的起源游戏)中,忘记这个步骤(在地图上有多个sky_camera)会导致所有导航区域都被阻塞。
 
# 删除正常的世界地图区域的[[sky_camera]]实体。''重要'':应该只保留3D天空盒中的[[sky_camera]]实体在地图中。在L4D2(或者是其他的起源游戏)中,忘记这个步骤(在地图上有多个sky_camera)会导致所有导航区域都被阻塞。
 
# 在参考几何体周围构建3D天空盒几何体,并将其用作指导。你可以构建无缝接触参考几何体的天空盒几何体。你可以使用笔刷和位移几何体。模型也可以放置,但由于3D天空盒的尺寸是1:16,任何模型也必须是1:16的比例。模型<code>hl2\models\props_skybox\coast01.mdl</code>是1:16比例的示例模型。尝试将3D摄像机放置在玩家的高度的附近。这会给你一个很好的想法:当3D天空盒在引擎中呈现时,它看起来会是怎样的。
 
# 在参考几何体周围构建3D天空盒几何体,并将其用作指导。你可以构建无缝接触参考几何体的天空盒几何体。你可以使用笔刷和位移几何体。模型也可以放置,但由于3D天空盒的尺寸是1:16,任何模型也必须是1:16的比例。模型<code>hl2\models\props_skybox\coast01.mdl</code>是1:16比例的示例模型。尝试将3D摄像机放置在玩家的高度的附近。这会给你一个很好的想法:当3D天空盒在引擎中呈现时,它看起来会是怎样的。
 
# 在参考几何体周围添加一个空心立方体笔刷,并为其应用<code>tools\toolsskybox</code>材质。标准的2D立方体天空盒将出现在这些表面上。3D天空盒区域必须用这些笔刷密封。
 
# 在参考几何体周围添加一个空心立方体笔刷,并为其应用<code>tools\toolsskybox</code>材质。标准的2D立方体天空盒将出现在这些表面上。3D天空盒区域必须用这些笔刷密封。
 
# 完成后,删除或隐藏除[[sky_camera]]实体'''以外'''的所有参考几何体。你可能会发现最好将参考几何体添加到其自己的可见组中,以便可以打开和关闭或重新放置参考几何体。确保在保存和编译地图之前将其关闭,否则会将其编译到3D天空盒中。
 
# 完成后,删除或隐藏除[[sky_camera]]实体'''以外'''的所有参考几何体。你可能会发现最好将参考几何体添加到其自己的可见组中,以便可以打开和关闭或重新放置参考几何体。确保在保存和编译地图之前将其关闭,否则会将其编译到3D天空盒中。
 +
# 如果你在3D天空盒中有非参考几何体的固体,把它们全都转化为func_detail。{{note:zh-cn|唯一的例外是置换表层。由于显而易见的原因,不要把置换表层转化为实体。}}
 
# 你的原始地图仍然需要<code>tools\toolsskybox</code>材质,无论你是否想要看到天空;但现在将显示3D天空盒以及2D天空盒(这是以前的操作)。
 
# 你的原始地图仍然需要<code>tools\toolsskybox</code>材质,无论你是否想要看到天空;但现在将显示3D天空盒以及2D天空盒(这是以前的操作)。
# 如果你希望地图的一部分仅显示2D天空盒而不显示3D天空盒几何体,请使用仅绘制2D天空盒的tools\toolsskybox2d贴图。这个纹理没有限制,它可以和普通的天空盒纹理一起使用,没有任何问题。即:当你只想从中看到天空就像在一个非常高的建筑里一样时,这个功能非常有用。
+
# 如果你希望地图的一部分仅显示2D天空盒而不显示3D天空盒几何体,请使用仅绘制2D天空盒的tools\toolsskybox2d贴图。这个纹理没有限制,它可以和普通的天空盒纹理一起使用,没有任何问题。当你只想从中看到天空,就像在一个非常高的建筑里一样时,这个功能非常有用。
  
 
==测试==
 
==测试==
Line 72: Line 67:
  
 
== 示例 ==
 
== 示例 ==
 +
 
* 有关3D天空盒的示例,请参阅<code>sdk_content\hl2\mapsrc\sdk_3d_skybox.vmf</code>。
 
* 有关3D天空盒的示例,请参阅<code>sdk_content\hl2\mapsrc\sdk_3d_skybox.vmf</code>。
* [http://www.steamreview.org/external/vdc/3dskybox/3dskybox_drawdistextend.zip 用3D天空盒扩展绘制距离的一个例子](注释)
+
* [http://www.steamreview.org/external/vdc/3dskybox/3dskybox_drawdistextend.zip 用3D天空盒扩展绘制距离的一个例子](有注释)
 
* [http://www.type3studios.com/downloads/tutorials/SdkNutsTutorials/akg_3Dskybox01.zip 3D天空盒视频教程]
 
* [http://www.type3studios.com/downloads/tutorials/SdkNutsTutorials/akg_3Dskybox01.zip 3D天空盒视频教程]
 
* [http://www.type3studios.com/downloads/tutorials/SdkNutsTutorials/wiseEscape.zip 关于3D天空盒的水/世界的半条命2示例VMF]
 
* [http://www.type3studios.com/downloads/tutorials/SdkNutsTutorials/wiseEscape.zip 关于3D天空盒的水/世界的半条命2示例VMF]
Line 79: Line 75:
 
== 用3DS Max制作3D天空盒 ==
 
== 用3DS Max制作3D天空盒 ==
  
如果你使用[[Wall Worm Model Tools]]在[[3ds Max]]内制作你的地图,你也可以用比传统Hammer方法更简单的方式创建3D天空盒。 Wall Worm可以让你在地图的比例下构建你的3D天空盒,避免了缩小天空盒的需求。
+
如果你使用[[Wall Worm Model Tools]]在[[3DS Max]]内制作你的地图,你也可以用比传统Hammer方法更简单的方式创建3D天空盒。 Wall Worm可以让你在地图的比例下构建你的3D天空盒,免除了缩小天空盒的需要。
  
要做到这一点,只需使用Wall Worm附带的Anvil工具中的标签功能“标记”天空盒几何体即可。
+
要做到这一点,只需使用Wall Worm附带的Anvil工具中的标签功能「标记」天空盒几何体即可。
  
 
[http://dev.wallworm.com/document/114/exporting_a_level_from_3ds_max_into_source.html 观看演示并下载示例场景。]
 
[http://dev.wallworm.com/document/114/exporting_a_level_from_3ds_max_into_source.html 观看演示并下载示例场景。]
  
{{envart}}
+
== 参见 ==
 
 
[[Category:Level Design]]
 
[[Category:Glossary]]
 
[[Category:Tutorials]]
 
[[Category:Skybox]]
 
[[Category:English]]
 
 
 
==3D天空盒的相关教程(俄语)==
 
教程作者:[https://vk.com/project_source Project-S]
 
  
 
*[https://www.youtube.com/watch?v=XjH3PqMIu8c 关于3D天空盒(俄)]
 
*[https://www.youtube.com/watch?v=XjH3PqMIu8c 关于3D天空盒(俄)]
Line 101: Line 88:
 
*[https://www.youtube.com/watch?v=tosebp1MSeg 简单置换表层(俄)]
 
*[https://www.youtube.com/watch?v=tosebp1MSeg 简单置换表层(俄)]
 
*[https://www.youtube.com/watch?v=q8htPBT-0ng 笔刷世界和置换表层(俄)]
 
*[https://www.youtube.com/watch?v=q8htPBT-0ng 笔刷世界和置换表层(俄)]
 +
 +
{{envart}}
 +
 +
[[Category:Level Design:zh-cn]]
 +
[[Category:Glossar:zh-cny]]
 +
[[Category:Tutorials:zh-cn]]
 +
[[Category:Skybox:zh-cn]]
 +
[[Category:Chinese]]

Revision as of 04:37, 31 August 2019

English

添加一个3D天空盒可以成为地图视觉处理的一个强大补充。3D天空盒是由地图作者在地图的游戏部分边界之外构建的额外区域。加载地图时,起源会放大3D天空盒区域中的对象,并将它们放置在天空盒和玩家之间的当前地图边界之外。由于(默认)1:16的比例,这可以让你的地图呈现出更广阔的世界而无需损失太多性能。3D天空盒是非交互的——玩家和其他实体不能移动到3D天空盒空间。

3D天空盒可以做到与正常的几何体几乎无法分辨。正常地图几何体和3D天空盒的无缝过渡是完全可能的,并且应用在包括反恐精英:起源在内的很多官方起源游戏的地图上。

Bug: [Portal]传送门中,透过传送门观察时,3D天空盒无法正确渲染。 - example.
注意:
3D天空盒不是2D天空盒的替代品。2D天空盒总是在3D天空盒的背景中。要编辑或更改标准2D天空盒,请参阅2D天空盒
注意:
<Left 4 Dead>求生之路中,默认比例为1:32,而不是1:16(但1:16能正常运行!)。
注意:
为避免照明问题,请勿使用light实体(或没有Env_前缀的任何其他灯光实体)。
注意:
[Portal 2]传送门2中,除非将r_skybox_draw_last设置为0,否则一些天空盒几何体将不可见。

优点

标准天空盒是简单的2D图像,通过映射到一个立方体以便他们围绕整个地图。3D天空盒是完整的3D几何体,并且在玩家在地图中移动时具有合适的视差。由于它们是实时渲染的,它们与显卡的分辨率一同缩放,并且还支持2D天空盒所不支持的实时着色器效果。

使用3D天空盒的主要好处是它允许地图作者使地图看起来比标准的世界几何体大得多。没有3D天空盒的最大的地图是每边32768个单位。使用3D天空盒,地图可以扩展到16倍。

这种尺寸的地图能够存在是因为3D天空盒是在Hammer编辑器中以标准地图的1/16的比例创建的。在运行时,引擎会将其缩回以匹配地图其余部分的比例。这不仅节省了编辑器视图中的空间,而且编译和渲染也更便宜。

由于其比例,3D天空盒的光照贴图和纹理分辨率要低得多。这使得3D天空盒几何体比标准的世界几何体更便宜。

如果创建与主地图相同的低细节天空盒,则可以使用3D天空盒克服绘制距离限制。想要这样做的mod团队必须开发代码来解决地图版本之间的转换。

基本特征

3D天空盒具有以下特点:

  • 在Hammer编辑器中(默认)以1:16的比例构建,然后在引擎中以16倍的尺寸渲染以匹配世界几何体。
  • 支持具有着色效果的材质,如法线贴图、水、环境贴图、代理等。
  • 非互动——玩家和其他世界实体不能进入3D天空盒。3D天空盒只是地图范围的视觉扩展。
  • 可以用固体、位移、静态和动态道具、灯光、固体实体和点实体(如env_sprite)来构造。
  • 放置在3D天空盒中的任何模型必须以1:16的比例制作。标准模型(道具)不能在3D天空盒中正确缩放。必须使用特殊的1:16比例的版本。对于半条命2,这些道具可以在models/props_skybox目录中找到。
  • 不应该包含info_player_start,NPC或怪物。
  • 由于它们创建的比例,具有较低的光照贴图和纹理分辨率。
  • 必须有自己的光源,尽管非天空盒部分的light_environment也将用于3D天空盒的照明。
  • 使用sky_camera实体来控制它们与非天空盒世界几何体的对齐方式。
  • 3D天空盒有自己的雾气参数,可以在sky_camera实体中调节。
  • 3D天空盒中的几何体不像其他几何体一样被遮挡或剔除。将大量细节化的固体或模型添加到3D天空盒,尤其是使用半透明材质,会严重影响性能。
  • 地图必须有一个light_environment,否则3D天空盒中的模型将被错误地照亮。如果light_environment放在地图的非天空盒部分,则不需要放在3D天空盒中。

3D天空盒的制作

  • 关于sky_camera实体的注意事项:点实体不会缩小。

创建与当前地图匹配或「对接」的3D天空盒的最有效方法是使用地图中主要部分的一些几何体。创建主地图的几何体后,按照以下步骤操作:

  1. 在世界原点(坐标0,0,0)处添加一个sky_camera实体,这是地图网格的中心。sky_camera是渲染器用来将3D天空盒与地图的主要部分对齐的参考点。换句话说,它作为一个标记,告诉渲染器3D天空盒的源点和世界的源点是如何相互关联的。您可以将此过程视为与选择所有3D天空盒几何体相似,然后将该选择中的sky_camera实体与世界原点(0,0,0)对齐。几何体被转换回到世界上的那个位置。这是天空盒在引擎中呈现时使用的相同概念。
  2. 选择地图的一些不同的部分,你可以为3D天空盒中的比例和位置使用红线。为此目的选择的共同元素则是一些较大的结构,以及定义地图边缘的墙壁、悬崖、丘陵等。确保你创建的sky_camera也被选中。
    注意:
    重要的是不要选择任何模型实体,只有笔刷。模型不能用作参考几何体,因为模型不能在Hammer编辑器中缩小。
  3. 编辑(Edit)菜单中选择复制(Copy),或点击CTRL-C。
  4. 编辑(Edit)菜单中选择选择性粘贴(Paste Special)。将要复制的份数(Number of copies)设置为1,将所有其他值设置为0。点击确定(OK)。这将出现你选择的几何体的副本。
  5. 如果尚未打开,则在工具栏中打开缩放纹理锁定(Scaling Texture Lock)。它的图标类似于<tl>。这将随着几何体缩小纹理。
  6. 保持几何体被选中,从工具(Tools)菜单中选择变换(Transform)。选择缩放(Scale)旁边的单选按钮。为X,Y和Z键入一个.0625的值。这是相当于1:16的十进制数——3D天空盒的比例。点击确定(OK)。
    注意:
    如果你希望几何体上的纹理相应地缩放,请确保已启用缩放纹理锁定。
  7. 你现在拥有1:16比例版本的参考几何体。现在拖动(移动)到地图的另一个你希望建立你的3D天空盒的地方。只要没有触及主地图的几何体区域的任何部分,它在哪里都没关系。
  8. 删除正常的世界地图区域的sky_camera实体。重要:应该只保留3D天空盒中的sky_camera实体在地图中。在L4D2(或者是其他的起源游戏)中,忘记这个步骤(在地图上有多个sky_camera)会导致所有导航区域都被阻塞。
  9. 在参考几何体周围构建3D天空盒几何体,并将其用作指导。你可以构建无缝接触参考几何体的天空盒几何体。你可以使用笔刷和位移几何体。模型也可以放置,但由于3D天空盒的尺寸是1:16,任何模型也必须是1:16的比例。模型hl2\models\props_skybox\coast01.mdl是1:16比例的示例模型。尝试将3D摄像机放置在玩家的高度的附近。这会给你一个很好的想法:当3D天空盒在引擎中呈现时,它看起来会是怎样的。
  10. 在参考几何体周围添加一个空心立方体笔刷,并为其应用tools\toolsskybox材质。标准的2D立方体天空盒将出现在这些表面上。3D天空盒区域必须用这些笔刷密封。
  11. 完成后,删除或隐藏除sky_camera实体以外的所有参考几何体。你可能会发现最好将参考几何体添加到其自己的可见组中,以便可以打开和关闭或重新放置参考几何体。确保在保存和编译地图之前将其关闭,否则会将其编译到3D天空盒中。
  12. 如果你在3D天空盒中有非参考几何体的固体,把它们全都转化为func_detail。
    注意:
    唯一的例外是置换表层。由于显而易见的原因,不要把置换表层转化为实体。
  13. 你的原始地图仍然需要tools\toolsskybox材质,无论你是否想要看到天空;但现在将显示3D天空盒以及2D天空盒(这是以前的操作)。
  14. 如果你希望地图的一部分仅显示2D天空盒而不显示3D天空盒几何体,请使用仅绘制2D天空盒的tools\toolsskybox2d贴图。这个纹理没有限制,它可以和普通的天空盒纹理一起使用,没有任何问题。当你只想从中看到天空,就像在一个非常高的建筑里一样时,这个功能非常有用。

测试

如果你正确密封了3D天空盒,并且地图没有泄漏,现在可以编译地图并在引擎中查看新的3D天空盒。

示例

用3DS Max制作3D天空盒

如果你使用Wall Worm Model Tools3DS Max内制作你的地图,你也可以用比传统Hammer方法更简单的方式创建3D天空盒。 Wall Worm可以让你在地图的比例下构建你的3D天空盒,免除了缩小天空盒的需要。

要做到这一点,只需使用Wall Worm附带的Anvil工具中的标签功能「标记」天空盒几何体即可。

观看演示并下载示例场景。

参见

Environment articles:
Skies and environment maps Skybox (2D)Skybox (3D)HDR SkiesSkybox with TerragenSkybox with Terragen - AdvancedList of skies
Terrain and displacement mapping DisplacementsHoles in displacementsDigital Elevation Models