2D 天空盒

From Valve Developer Community
Jump to: navigation, search
English Русский

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

Skybox Template.jpg

添加天空到地图

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

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

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

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

更改显示的天空盒

参见天空列表
Sky change.png

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

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

天空盒光照

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

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


English Русский
Toolsskybox.gif
天空盒照明通过每一个toolsskybox纹理的笔刷进入地图。其基本属性由三个实体组合使用来控制:
  • light_environment定义(a)漫反射天窗的颜色和强度以及(b)直射日光的方向,颜色和强度。
  • 它还创建了只能由shadow_control实体覆盖/控制的(buggy,不可配置)动态阴影
  • env_sun在天空盒中放置一个glow sprite来表示太阳在天空中的明显位置。

为了理解这些,只要确保在地图上只有这些实体中的每一个,并且为这三个实体的Pitch and Yaw <angles>设置为相同的值。(Pitch相当于太阳的仰角,而Yaw则类似于指南针轴承。)

天空列表文章提供了一些Valve的天空盒的设置。worldspawn实体定义了使用的天空盒。另外请注意,如果env_fog_controller设置与使用的特定天空盒不对应,则会显得不正确。
Warning.png 警告: 不幸的是,Valve给light_environmentenv_sun实体里引进了Pitch override参数,而没有给shadow_control。更不幸的是,Pitch override无法被关闭并且其旋转是横向顺时针方向测量计数器(所以正下是-90°)。反之,<angles> Pitch 顺时针方向旋转 (所以正下是+90°)。解决方法就是,确保你的Pitch override只是重复<angles>的值;举个例子, 如果你的shadow_control, light_environmentenv_sun<angles>是"45 -60 0",设置Pitch override为"-45"。

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

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

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

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

使用起源为Goldsource创建一个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目录里,像地图里的天空盒一样使用它

参见

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