Vision引擎中光照影响位元蒙版

引言
位元蒙版系统提供了在 vForge 对象之间迅速撤销 / 建立关系的手段。 动态光源带有一组位元蒙版,可以和对象属性中的位元蒙版对应。 如两者的位元蒙版设为相同的值,则该对象会受到光照。 例如,在一个带有多个光照的场景中,您可以使用这些位元蒙版选择每个光照影响哪些场景对象。
注:
     该机能仅在正向渲染环境中起效。 在延迟模式下会被忽略,因为光照是作为后期处理效果应用的,其中不再包含位元蒙版的任何信息。
下图显示了一个动态对象和光照的位元蒙版属性设置:

动态光照 / 动态对象
如果您使用动态源来影响一个动态对象(例如实体图形),则可以使用 ObjectInfluenceBitmask(对象影响位元蒙版),精确指定该光源影响哪些动态物体。 仅当光源的 ObjectInfluenceBitmask 与对象的 LightInfluenceBitmask 设为相同的位元时,该光源才会影响该对象。
下图中,对象的 LightInfluenceBitmask 设为“bit0”,光照的 ObjectInfluenceBitmask 设为 None。 该设置将阻止光源照亮该对象。

而在下一张图中,光照的 ObjectInfluenceBitmask 设为”bit0”,对象的 LightInfluenceBitmask 也设为”bit0”。 结果是对象受该光照的影响。

静态光照 / 动态对象
如果您让一个静态光源影响动态对象,这通常通过光照网格实现。 在这种情况下,光照网格中没有每个光源的具体信息,因此您可以将源的ObjectInfluenceBitmask 设为 bit0(光源不会影响光照网格)或任意其他值(光源会影响光照网格)。

动态光照 / 静态对象
在让动态光源影响静态几何网格的情景下,您也可以精确指定动态光源和静态几何网格的影响对应关系。 如果静态几何网格的 LightInfluenceBitmask 和动态光源的 WorldInfluenceBitmask 设为相同的位元,则该静态几何网格会被该光源影响;否则不受其影响。
转自: project anarchy中文社区 http://www.anarchy.cn/portal.php?mod=view&aid=73

猜你喜欢

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