Vision引擎光照中时间变化

引言

为了帮助您设计户外项目,Vision 引擎提供一种特殊的光照系统,用于模拟白天和黑夜的自然循环。 本章将描述 vForge 中相关的时间变化组件和其功能。 时间变化系统还有很多控制大气条件的属性,例如雾和天空属性。这些属性彼此组合,可以创造出逼真的白昼 / 夜晚大气效果。

时间变化系统可在正向和延迟渲染下使用,也可在 vForge 中设定和配置。
   注:对静态光照(光照贴图、光照网格)使用正向渲染时,您需要确保时间变化与场景中的光影恰当地融为一体。
虽然时间变化系统也提供天空和雾属性设置,本章仅集中讲述该系统的光照部分。 
 
什么是时间变化系统
时间变化系统是一个循环时间系统,会从早晨、中午、傍晚到夜晚的天空,然后再次重头开始循环。 时间变化系统可在正向和延迟渲染下使用,也可在 vForge 中设定和配置,或通过代码动态控制。

时间变化系统可控制光源的位置、指向、颜色和强度。 其实现方式是为光源(通常为平行光照)附加一个特殊组件,即时间变化附加组件。 附加到光源后,该组件会控制光源的位置、指向和颜色属性,使用当前时间来更新光源。
 
把时间变化组件附加到光源上后,应避免直接调用光照的 SetPosition、SetDirection 和 SetColor 方法。
  注:对静态光照(光照贴图、光照网格)使用正向渲染时,您需要确保时间变化与场景中的光影恰当地融为一体。
 
时间变化属性
时间变化属性可以在主层找到。 如果时间变化属性不可见,可能是因为时间变化被关闭。 要启用时间变化,请将以下值设为 Ture:

使用这些属性来调整光照和颜色,以适合项目需要:
AmbientColor(环境色): 反映环境色随时间变化的色彩曲线。
 
SunColor(太阳色): 反映太阳光随时间变化的色彩曲线(如启用太阳光)。
 
DepthFog(深度雾): 创建一个高质量距离雾,带有编辑雾的起点、有效范围以及颜色的控制选项。 深度雾可通过时间变化控制,用来添加颜色和浓度渐变。 
 
HeightFog(渐变雾): 渐变雾可以为地形增添额外的魅力。 用渐变雾填充地形中的峡谷,可以带来极大的恢宏感和距离感,与大气散射结合,将使您的关卡质量更上一层楼。 渐变雾可通过时间变化控制,用来添加颜色和浓度渐变。 您可以编辑雾的起点和有效范围,以及颜色属性。 
 
ControlSky(控制天空): 如启用,时间变化系统将使用天空加权曲线来控制天空层的强度。
 
DawnSkyFade(黎明天空渐变): 控制白昼天空和黎明天空纹理之间渐变的曲线编辑器。
 
DuskSkyFade(黄昏天空渐变): 控制白昼天空和黄昏天空纹理之间渐变的曲线编辑器。
 
NightSkyFade(夜晚天空渐变): 控制白昼天空和夜晚天空纹理之间渐变的曲线编辑器。
 
SunDirectionHorizontal(日光水平指向): 该值指定了日光水平指向(绕 z 轴),即太阳在哪个角度升起和下落。 取值范围为 [0.0 … 360.0] 度。
 
SunDirectionVertical(日光垂直指向): 该值指定了日光垂直指向,即太阳在天空运行的角度。 取值范围为 [-90.0 … 90.0] 度。
 
SunRiseTime(太阳升起时间): 太阳升起的时间。 取值范围为 [0.0 … 0.5],对应子夜 12 点到正午 12 点的时间范围。
 
SunSetTime(日落时间) :太阳落下的时间。 取值范围为 [0.5 … 10],对应正午 12 点到子夜 12 点的时间范围。
 
Current Time(当前时间): 使用该值设定与一天 24 小时循环对应的当前时间。
 
曲线编辑器
每个时间变化曲线属性,例如环境或太阳色,都有其自己的曲线编辑器, 这些编辑器可通过该属性右侧的 […] 按钮打开。 对于 vForge 中所有属性编辑器而言,这是一种常见的打开子编辑器的方式。 这些曲线编辑器可以让您方便地设定数据,让项目获得所需的观感。

vForge 中有两种类型的曲线编辑器,一种编辑颜色值,另一种编辑数据值。
 
单曲线编辑器:
用于随时间变化改变单个值的曲线编辑器。

每条贝塞尔曲线都有若干句柄,让您平滑地更改到所需时间点的值。
添加点: 您可以  点击鼠标左键 曲线上的任意位置,轻松添加新的控制点。 曲线会在新控制点处自动适应弯曲。
移除点: 如需移除曲线上不需要的控制点,选中您想移除的点并点击移除图标。
吸附到网格: 开启吸附到网格选项,拖拽控制点时会自动吸附到最近的网格线。 此外,当拖拽曲线起点时,该点也会吸附到终点,反之亦然。
曲线预设: 您可以通过对应的按钮添加、应用或删除偏好曲线预设,或恢复默认曲线预设。 
 
颜色曲线编辑器:
用于随时间变化改变颜色的曲线编辑器。

这一编辑器的工作方式与单曲线编辑器类似,主要差别在于,您可以选择 RGBA 图标中的某一个,单独编辑 RGBA 曲线。
时间变化编辑器
时间变化编辑器让您综览时间变化系统的设置,包括各种大气值曲线。 点击时间变化属性标题旁的 […] 按钮即可打开该编辑器。

在编辑器底部选择一种曲线梯度,使用曲线编辑器面板中的贝塞尔曲线来编辑各种值随时间变化的变化。 所附带的曲线工具可让您实现希望的设置,如果您完成一条合意的曲线,可以通过预设曲线保存。
环境色曲线: 指定环境色在一天当中的变化。
太阳色曲线: 指定太阳色在一天当中的变化。
雾色曲线: 指定雾色在一天当中的变化。
天空层渐变曲线: 指定天空层权重在一天当中的变化。 第一个天空层(白天)全天保持全部的强度。 其余层(黎明、黄昏和夜晚)混合在该层上方。 混合可通过对应的曲线控制。
 
如何使用时间变化系统
在项目中添加时间变化系统最简单的方式是在场景中添加预建时间变化日光图形。 其方法是从图形创建器面板中选择 Time of Day Sunlight(时间变化日光)图形并拖拽到场景中。

这将打开一个简单的动态阴影和背光设定向导。 背光会在场景阴影部分添加额外的环境光。 完成对话框并确认后,您会在场景图形列表中看到一个代表时间变化光照的新条目。 从场景中移除该条目很简单,只需在场景图形列表中选择背光平行光照即可。

   注:如果您想过更改光照角度或颜色,请使用时间变化属性或编辑器,因为您不能直接更改任何光照旋转和颜色属性。
 
时间变化组件属性
要创建你自己的时间变化光照图形,你必须给一个平行光照添加时间变化组件和可选的阴影贴图组件。 该组件会提供您需要的光照类型的选项。 以下是可用附件选项的属性。

AttachmentType(附件类型): 时间变化组件提供了四种不同类型:
 
SUNLIGHT(日光): 如果附加光源代表日光,请使用该类型
SUNBACKLIGHT(太阳背光): 如果附加光源代表背光,请使用该类型
MOONLIGHT(月光): 如果附加光源代表月光,请使用该类型
CORONA(光晕): 如果附加光源代表太阳光晕或镜头眩光,请使用该类型
ENABLEDATNIGHT(夜晚启用): 如果附加光源代表夜晚开启、白天关闭的光源,请使用该类型。
为观察其效果,每个附加组件都必须添加到一个新的平行光照上。
   提示:在您的场景中添加一个带时间变化组件的平行光照,将附件设为 SUNLIGHT。 在您的场景中添加另一个带时间变化组件的平行光照,将附件设为 MOONLIGHT。 现在,移动当前时间,您会得到平衡的白昼 / 夜晚光照。
Intensity(强度): 定义附加光源的光照强度。 当附件类型设为 CORONA,该值没有任何效果。
可以同时为不限数量的光照附加时间变化组件。 通常,带有时间变化组件的光源不应超过四个(每一个所附加的组件类型各不相同)。
为了根据太阳指向启用和更新阴影,您可以结合使用阴影贴图组件和时间变化附加组件。 另外也可以把两种组件附加到一个光源上,并将附件类型设为 MOONLIGHT,以此定义月光阴影.

猜你喜欢

转载自projectanarchy.iteye.com/blog/2099038