Virtools中有效制作实时镜子反射效果的方法说明------特此贴出,弥补时间罪过!

有段时间没去VT的相关论坛了,以前贴过一些问题请教帖子,待问题解决后也没怎么看过了……后来竟然被误解了,标上不厚道的罪名,实在不是本意,罪过~~罪过~~
于是特意贴出该贴说明,给需要用到的朋友。

详细情况可以看论坛帖子:http://www.virtools.com.cn/bbs/dispbbs.asp?boardID=39&ID=5035 (貌似要注册了帐号才能登陆看到内容,麻烦点呢……)
VT中制作实时镜子效果的方法,按方便来说,就是使用Planar Reflection BB功能,但是会有针对大场景进行反射消耗系统资源过大的问题,如果是用Planar Reflection BB貌似无法避免该状况的发生。还有一个比较高深的方法,实现起来麻烦点,具体最好参考范例文档当中的相关文件,我现在还是没能很好理解。当然如果有懂的朋友指导一下,小弟感激不尽!先谢谢咯!
首先镜子反射用到镜子Planar Reflection 这个BB,当然需要参与到反射效果的物体要在属性中加上反射属性,具体处理手法可参考刘老师的书,这里主要提一下怎么处理镜子后面的物体如何才能不透出显示!因为书中谈到做反射时,材质调整是用的Transparent模式,要加上一点透明才能有发射效果的产生,于是这样使用起来遇到镜子后面有物体时,便会出现如下的情况:
























因为这里的反射原理是将要反射的物体复制一份到镜面物体的对应一边上,所以如果镜面后有物体的话针对Transparent模式是透明状态下,就无法避免镜面后物体透出显示并可能遮挡发射物体的情况发生……
消除这种状况,我处理手法就是改动材质模式,平面镜子反射的材质Mode使用Mask类型,然后将Alpha Ref value值改为0,如图所示:




















这样镜子的效果就不会出问题了。
有的朋友指出“有没有可能先把镜子后面的东西都hide掉,当走过去的看不到镜子的时候再show……”,这也是一种处理方法,当然这会增加判断和相应的处理模块,而且通用性不好。
当然了做大场景的话,考虑到系统的资源消耗问题,前期的规划也是十分必要的,就像我说的:“使用了Portals,将房间划分了几个Place,感觉墙壁的设置要更在建模场景的时候就要进行规划,不然如果一个墙壁既属于Place1又属于Place2就不好设定了……”
 简单说明完毕,欢迎大家讨论……谢谢!


CR   于 2008-5-24 19:07:42

没有评论:

发表评论