查看: 3131|回复: 3

请教:如何用osg实现镜面反射效果?

[复制链接]

该用户从未签到

发表于 2009-2-11 16:23:56 | 显示全部楼层 |阅读模式
请教一下OSG中如何实现镜面反射周围场景的效果?万分感谢!

该用户从未签到

发表于 2009-2-11 18:51:18 | 显示全部楼层
帮你查了下osg mailing list,里面有个人想做汽车的后视镜的效果,robert的建议是这样的:
For the timing being one could use osgViewer::Viewer in your case by
making the rear-view mirror a slave Camera, or a nested Camera being
placed in the scene graph.  The osghud example should provide some
inspiration as it has support for doing HUD as part of the scene
graph, as part of osgViewer::Viewer as a slave Camera, or as a
separate View in CompositeViewer.
我觉得他的意思大概是 在viewer下面加多一个slave  camera 来渲染镜子,然后用hud的方式加到场景中。不过这样会听影响速度的(降一半的fps)。不过这是07年的事了。至于后来有没有什么好方法我也不知道。我是新手所以也帮不上多少忙,抱歉。

原文的连接在:
http://lists.openscenegraph.org/ ... -August/000489.html

该用户从未签到

发表于 2009-2-11 19:24:44 | 显示全部楼层
有很多方法可以供您参考:
一是使用模板检验,和Nehe教程中阴影的制作流程应该比较类似。不过OSG中要反复开关各种检验的确比较麻烦,可以考虑自己写一个Drawable类来完成这一系列工作。
二是使用FBO,将周围的场景渲染到纹理,再把纹理直接贴在这个镜子上。只要对矩阵运算比较清楚,这样做应该可以充分利用现代显卡的特点,还可以使用GPU做一些精彩效果的实现。
aya_daxiang朋友介绍的方法应该也是可行的,但是如果真的会影响速度太多的话,我个人还是建议使用FBO或者PBuffer把场景渲染到纹理(RTT),效果保证可以让人满意

该用户从未签到

 楼主| 发表于 2009-2-24 12:48:02 | 显示全部楼层
最近一直没上网,感谢解答
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表