Vision引擎组件系统中阴影贴图组件与光晕 / 镜头眩光介绍

组件 - 阴影贴图组件
注:由于硬件要求,移动设备无法支持该功能。 不过,这些平台有一个替代方案。
阴影贴图组件可附加到光源上,使光源具备贴图阴影的功能。 这是在场景中创建阴影的优先选择。 阴影贴图组件共有两种,一种用于平行光照和聚光灯,另一种用于点光照 / 全局光照。

 附件图形类型
组件可附加到以下任何图形类型上:
  • 平行光照 - 静态和动态
  • 点光照 - 静态和动态
  • 聚光灯 - 静态和动态
 属性

 组件 - 光晕 / 镜头眩光
光晕和镜头眩光组件可用于增强光源的表现力。 光晕在光源周围创造一圈光环,镜头眩光则创造出从光源指向镜头中心的眩光效果,模仿强光在镜头上产生的折射。
以下图片显示了这两种组件的效果:

 共有属性
两种组件的属性非常相似,所以可先介绍两者的共有属性:

  • QueryRadius
    决定了该效果可见的程度,会在光源位置绘制一个屏幕空间四边形,并计算可见像素数量。 可见的特效由屏幕空间四边形内可见的那部分像素产生,且该部分像素透明度将倍增。
    该参数设定了这一四边形的大小。 例如,值为 8,则绘制 16×16 的四边形。 该值设得越高,特效被障碍遮挡时的渐变就越平滑。 但设得太高可能导致可见的伪影,因为在光照不可见时四边形可能可见。
  • PreGlowMS / AfterGlowMS
    这两个参数定义了特效可视性发生变化时出现或消失的速度。 例如,假如将  AfterGlowMS 设为 100,则光晕从完全可见转为完全不可见的消失过程耗时 100 毫秒。
  • DepthBias
    该属性定义了特效可视性判定应在距光照多少距离(以世界单元为单位)之外的位置进行。 例如,假如  DepthBias 设为 200,特效可视性判定应在距离光照 200 个世界单元的位置进行,与镜头距离也近 200 个世界单位。 放在提灯内的蜡烛是此类应用的一个实例。 在这种情况下,该设置可以确保特效不被提灯遮挡。 但该值设得过高会导致可见的伪影,因为特效可能会穿墙可见。
  • FadeOutStart / FadeOutEnd
    FadeOutStart 定义了特效距光照多少距离(以世界单元为单位)之内依旧保持全部强度。 在  FadeOutStart 和  FadeOutEnd 之间的距离,特效会线性淡出。 FadeOutEnd 设为 0 可完全禁用淡出。
  • VisibleBitmask(Corona Only)(可视性位元蒙版(仅限光晕))
    VisibleBitmask 属性决定了光晕在每个渲染环境下的可视性。 一个应用实例是在镜子中关闭渲染。 为此,您需要取消设置镜子图形所使用的位图(在镜子的 ContextBitmask 属性中定义)。
  • OnlyVisibleInSpotLight(仅限聚光灯)
    该属性只在附加到聚光灯后影响其光晕 / 镜头眩光。 如设为 True,则仅当镜头位于聚光灯定义的圆锥体内时,光晕才可见。 另外还请注意,投射纹理不会被用于计算光晕的强度。 该计算所使用的是简单的 falloff(衰减)函数。
 光晕外观属性

  • CoronaTexture(光晕纹理)
    该属性设定用于光晕效果的纹理。 空白键值则使用默认纹理。
  • CoronaScaling(光晕缩放比例)
    该属性更改光晕纹理的尺寸。 光晕的最终尺寸取决于初始纹理大小和该值的倍增数。
  • CoronaFixedSize(光晕固定尺寸)
    该属性决定了光晕是否受透视法缩短的影响。 将值设为 True 则使光晕大小始终不变,无论光照距离多远。
  • CoronaScaleWithIntensity(带强度的光晕缩放比例)
    如该属性设为 True,则光晕缩放比例会乘以其可见度。 通过这一属性,特效的可见度降低时,特效不仅会淡出,而且尺寸也会变小。
  • CoronaUseGlobalFadeOut(光晕使用全局淡出)
    将该属性设为 Ture 则忽略组件的  FadeOutStart 和  FadeOutEnd 参数,使用代码中全局定义的值。
  • CoronaRotate(光晕旋转)
    如启用该选项,则光晕会基于离镜头距离旋转。
镜头眩光属性

每个镜头眩光特效可设定最多 16 个眩光,绘制在连接光照位置和镜头中心的射线上。 每个眩光都有以下三个设定:

  • FlareTexture[0]
    定义了眩光特效使用的纹理。 设为空白键值则关闭对该眩光的渲染。
  • Scale[0]
    Scale(缩放比例)属性定义眩光与屏幕高度相比之下的相对大小。 如果值为 0.5,则眩光会在一个边长为屏幕高度一半的正方形内渲染。
  • PositionOnRay[0]
    该属性定义了眩光在光照位置(0.0)和图像中心(1.0)之间的射线上的位置。 该值可以大于 1.0,把眩光移动到图像中心之外。
  • 转自:projectanarchy中文社区 http://www.anarchy.cn/portal.php?mod=view&aid=67

猜你喜欢

转载自plmkome.iteye.com/blog/2095592
今日推荐