HDR光照设置

From Valve Developer Community
Jump to: navigation, search
English

译者:桃李果树(百度ID)

注意:此翻译仅供参考。本译文是翻译2009年1月8日 (四) 18:22修改的文章。请以最新修改日期的原文为准。

概述

本文解释了一些可用于HDR光照的高级技术。有关标准HDR方法的说明,请阅读HDR光照基础

添加一个自定义的env_tonemap_controller

使用logic_auto来设置env_tonemap_controller值。点击放大。

我们的示例地图还包含演示HDR效果的实体。第一个需要放置的实体是env_tonemap_controller,该实体可以控制地图中的HDR设置,并允许我们覆盖默认的HDR值。继续并将其命名为tonemap

现在我们可以通过几种方法来触发这个实体,在这里我们展示了一个用于在进入地图时修改设置的logic_auto实体。在env_tonemap_controller上的有用的输入是:

SetAutoExposureMax

  • 设置曝光即将出现的最亮程度。

SetAutoExposureMin

  • 设置曝光即将出现的最暗程度。

SetBloomScale

  • 设置在地图上的光晕效果的比例。

重要提示

如果该地图使用env_tonemap_controller,则不能直接使用用于更改HDR参数的控制台命令。相反,env_tonemap_controller实体输入必须被触发才能更改设置。这可以通过标准的实体I/O或者使用ent_fire命令来完成,其命令格式如下:

ent_fire <env_tonemap_controller name> <input name> <new value>

例如,如果env_tonemap_controller被命名为tonemap_global,则可以使用以下命令:

ent_fire tonemap_global SetBloomScale 3
ent_fire tonemap_global SetAutoExposureMax 6
ent_fire tonemap_global SetAutoExposureMin .8

添加可触发的env_tonemap_controller

你也可以使用触发器来设置env_tonemap_controller值。点击放大。

env_tonemap_controller也可以用trigger_multiple触发。在这里,我们看到一个触发器,当玩家进入房屋时会改变HDR值。先声明一下这只是单人游戏,因为如果这些数值发生变化,他们会在全局意义上影响所有玩家。

注意:由于env_tonemap_controller会影响所有客户端,因此以这种方式触发它们通常仅适用于单人游戏。

为LDR和HDR模式添加不同的光照数值

可以为light_environment实体设置单独的HDR值。点击放大。

使用lights.rad的所有实体灯光和纹理灯光都可以包含两组用于 LDR + HDR 的光照。一般来说,由于一些原因,HDR光照值需要比LDR值略低。首先HDR具有自动曝光功能,可以补偿较暗的区域并使空间变亮。其次,光晕效果有过度照亮某些表面的倾向,因此调低亮度值也有助于这方面的工作。

环境光照

以下是使用HDR设置的light_environment实体的屏幕截图。BrightnessHDRAmbientHDR的默认值是(-1, -1, -1, 1),这意味着使用与LDR相同的设置。要更改HDR值,只需在这些字段中输入新值。

HDR纹理光照

可以使用lights.rad为纹理光设置单独的HDR值。点击放大。

控制“纹理”光照值的lights.rad文件也允许独立的HDR设置。上面突出显示的数字显示了第二组4个数字如何应用于HDR值(红,绿,蓝,亮度),如果未输入第二组数字,vrad默认会使用LDR设置。

其他光照

其他类型的光源(包括lightlight_spot)也具有HDR值。你可以按照为light_environment实体设置灯光的相同方式为这些灯光设置HDR值。

更多HDR控制台命令

以下是控制台可用于动态修改引擎中HDR设置的命令列表。

mat_dynamic_tonemapping 0/1(默认值 1)

  • 启用或禁用动态(自动)HDR色调映射。

mat_autoexposure_max 0-20(默认值 2)

  • 设置即将到达的最亮(最大)曝光度。在大多数情况下其数值不应超过20。

mat_autoexposure_min 0-20 (default .5)

  • 其中0是即将到达的最暗(最小)曝光度。在大多数情况下其数值不应超过20。其典型值小于1。

mat_hdr_tonemapscale 0-20

  • 适用于mat_dynamic_tonemapping设置为0(关闭)的情况。设置一个明确的曝光值。在大多数情况下其数值不应超过20。

mat_disablebloom 0/1 (default 1)

  • 禁用光晕效果。

mat_bloomscale 0-16 (default 1)

  • 设置HDR光晕效果的次数(比例)。较高的值等于更多的光晕效果。在大多数情况下其数值不应超过16。

参见

HDR光照基础

创建HDR天空盒

env_tonemap_controller