Zh/3D Skybox
译者:joyo_a(百度ID)
添加一个3D天空盒可以成为一个地图的视觉处理的强大补充。3D天空盒是由地图作者在地图的游戏部分边界之外构建的额外区域。加载地图时,起源会放大3D天空盒区域中的对象,并将它们放置在天空盒和玩家之间的当前地图边界之外。这是用来让你的地图在(默认)1:16的比例下有更广阔的世界外观的外观,而不是太贵的预算。3D天空盒是非交互式的 - 玩家和其他实体不能移动到3D天空盒空间。
3D天空盒的几何形状与普通的几何体几乎没有区别。正常地图几何体和3D天空盒的无缝过渡是完全可能的,并且应用在很多官方起源游戏的地图上,例如Counter-Strike: Source。



Template:注意 Template:注意 Template:注意 Template:注意
优点
标准天空盒是简单的2D图像,通过映射到一个立方体以便他们围绕整个地图。3D天空盒是完整的3D几何体,并且在玩家在地图中移动时具有合适的视差。由于它们是实时渲染的,所以它们可以随着显卡的分辨率进行扩展,并且还支持2D天空盒所不支持的实时着色器效果。
使用3D天空盒的主要好处是,它允许地图作者使地图看起来比标准的世界几何体大得多。没有3D天空盒的最大的地图是每边32768个单位。使用3D天空盒,地图可以扩展到16倍。
这个尺寸的地图是可以的,因为3D天空盒是在Hammer编辑器中以标准地图的1/16的比例创建的。在运行时,引擎会将其缩回以匹配地图其余部分的比例。这不仅节省了编辑器视图中的空间,而且编译和渲染也更便宜。
由于其比例,3D天空盒的光照贴图和纹理分辨率要低得多。这使得3D天空盒几何体比标准的世界几何体更便宜。
如果创建与主地图相同的低细节天空盒,则可以使用3D天空盒克服绘制距离限制。希望这样做的mod团队将不得不开发代码来缓解地图版本之间的转换。
基本特征
3D Skyboxes具有以下特点:
- 在Hammer编辑器中以1:16的比例构建(默认),然后在引擎中以16倍的尺寸渲染以匹配世界几何体。
- 支持具有着色效果的材质,如法线贴图,水,环境贴图,代理(proxies)等。
- 非互动 - 玩家和其他世界实体不能进入3D天空盒。3D天空盒只是地图范围的可视扩展。
- 可以用笔刷,位移,静态和动态道具,灯光,笔刷实体和点实体(如env_sprite)构造。
- 放置在3D天空盒中的任何模型必须以1:16的比例制作。标准模型(道具)不能在3D天空盒中正确缩放。必须使用特殊的1:16比例的版本。对于Half-Life 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天空盒的最有效方法是使用地图中主要部分的一些几何体。创建主地图的几何体后,按照以下步骤操作:
- 在世界原点(坐标0,0,0)处添加一个sky_camera实体,这是地图网格的中心。sky_camera是渲染器用来将3D天空盒与地图的主要部分对齐的参考点。换句话说,它作为一个标记,告诉渲染器3D天空盒的源点和世界的源点是如何相互关联的。您可以将此过程视为与选择所有3D天空盒几何体相似,然后将该选择中的sky_camera实体与世界原点(0,0,0)对齐。几何体被转换回到世界上的那个位置。这是天空盒在引擎中呈现时使用的相同概念。
- 选择地图的一些不同的部分,你可以为3D天空盒中的比例和位置使用红线。为此目的选择的共同元素则是一些较大的结构,以及定义地图边缘的墙壁,悬崖,丘陵等。确保你创建的sky_camera也被选中。Template:注意
- 从编辑(Edit)菜单中选择复制(Copy),或点击CTRL-C。
- 从编辑(Edit)菜单中选择选择性粘贴(Paste Special)。将要复制的份数(Number of copies)设置为1,将所有其他值设置为0。点击确定(OK)。这将出现你选择的几何体的副本。
- 如果尚未打开,则在工具栏中打开缩放纹理锁定(Scaling Texture Lock)。它的图标类似于<tl>。这将随着几何体缩小纹理。
- 保持被选中的几何体,从工具(Tools)菜单中选择变换(Transform)。选择缩放(Scale)旁边的单选按钮。为X,Y和Z键入一个.0625的值。这是相当于1:16的十进制数——3D天空盒的比例。点击确定(OK)。Template:注意
- 你现在拥有1:16比例版本的参考几何体。现在拖动(移动)到地图的另一个你希望建立你的3D天空盒的地方。只要没有触及主地图的几何体区域的任何部分,它在哪里都没关系。
- 删除正常的世界地图区域的sky_camera实体。重要:应该只保留3D天空盒中的sky_camera实体在地图中。在L4D2(或者是其他的起源游戏)中,忘记这个步骤(在地图上有多个sky_camera)会导致所有导航区域都被阻塞。
- 在参考几何体周围构建3D天空盒几何体,并将其用作指导。你可以构建无缝接触参考几何体的天空盒几何体。你可以使用笔刷和位移几何体。模型也可以放置,但由于3D天空盒的尺寸是1:16,任何模型也必须是1:16的比例。模型
hl2\models\props_skybox\coast01.mdl
是1:16比例的示例模型。尝试将3D摄像机放置在玩家的高度的附近。这会给你一个很好的想法:当3D天空盒在引擎中呈现时,它看起来会是怎样的。 - 在参考几何体周围添加一个空心立方体笔刷,并为其应用
tools\toolsskybox
材质。标准的2D立方体天空盒将出现在这些表面上。3D天空盒区域必须用这些笔刷密封。 - 完成后,删除或隐藏除sky_camera实体以外的所有参考几何体。你可能会发现最好将参考几何体添加到其自己的可见组中,以便可以打开和关闭或重新放置参考几何体。确保在保存和编译地图之前将其关闭,否则会将其编译到3D天空盒中。
- 你的原始地图仍然需要
tools\toolsskybox
材质,无论你是否想要看到天空;但现在将显示3D天空盒以及2D天空盒(这是以前的操作)。 - 如果你希望地图的一部分仅显示2D天空盒而不显示3D天空盒几何体,请使用仅绘制2D天空盒的tools\toolsskybox2d贴图。这个纹理没有限制,它可以和普通的天空盒纹理一起使用,没有任何问题。当出现I.E.弹窗并且你只想从中看到天空就像在一个非常高的建筑里一样时,这个功能非常有用。
测试
如果你正确密封了3D天空盒,并且地图没有泄漏,现在可以编译地图并在引擎中查看新的3D天空盒。
示例
- 有关3D天空盒的示例,请参阅
sdk_content\hl2\mapsrc\sdk_3d_skybox.vmf
。 - 用3D天空盒扩展绘制距离的一个例子(注释)
- 3D天空盒视频教程
- 关于3D天空盒的水/世界的半条命2示例VMF
用3ds Max制作3D天空盒
如果你使用Wall Worm Model Tools在3ds Max内制作你的地图,你也可以用比传统Hammer方法更简单的方式创建3D天空盒。 Wall Worm可以让你在地图的比例下构建你的3D天空盒,避免了缩小天空盒的需求。
要做到这一点,只需使用Wall Worm附带的Anvil工具中的标签功能“标记”天空盒几何体即可。
环境相关的文章 | |
---|---|
天空和环境地图 | ![]() |
地形和置换表层制作 | 置换表层 • Creating Holes in Displacements|在置换表层中打孔 • 数字高程模型 • 使用 Worldmachine 创建自定义地形 |
3D天空盒的相关教程(俄语)
教程作者:Project-S