查看: 1382|回复: 4

请教关于osgmovie的问题

[复制链接]

该用户从未签到

发表于 2010-5-3 21:50:47 | 显示全部楼层 |阅读模式
如题,我目前使用osgmovie例子的程序作为播放器,当我要从osgmovie切换到三维场景漫游时,我在回调函数中对投影矩阵进行了重设(从正射投影转换到透视投影),但此时发现一个问题,三维场景中的光照消失了,模型一片漆黑,请教一下各位这是什么原因呢?需要进行那些调整呢?感谢各位老师~

该用户从未签到

发表于 2010-5-3 22:05:42 | 显示全部楼层
您需要提供更多的信息以供大家进行讨论和判断

该用户从未签到

 楼主| 发表于 2010-5-3 22:24:44 | 显示全部楼层
您需要提供更多的信息以供大家进行讨论和判断
array 发表于 2010-5-3 22:05


恩是这样,场景的根节点下我有2个子节点,一个是osgmovie例子的节点,另外一个例如说是某个三维模型,那么我在根节点上附加了键盘事件,来实现切换这2个节点显示的功能。
但osgmovie那个程序实现时使用了正射投影,那么我在切换的时候首先重新设置投影矩阵为透视投影,那么可以切换到之前加载的三维模型,但问题就在这里,这个模型好像没有光照,一片漆黑,不明白是什么原因。
大概就是这样的问题,不知是否说明清楚~

该用户从未签到

发表于 2010-5-4 08:40:51 | 显示全部楼层
osgmovie的方法完全可以简化为:一个HUD形式的四边形节点,加上视频纹理贴图。您反复提及“osgmovie例子的节点”,我个人并不赞同这种“顺手拈来”的工程方式,因为这个例子不是专门为此准备的。

因此您强调的“这个模型好像没有光照,一片漆黑”也就没有更多的线索可循。如果只是简单的HUD节点来渲染视频,那么决不会影响到别的模型,并且这个问题决不会与投影方式有关。

因此,出现问题的一个重要可能性就是您沿用了osgmovie例子中的着色器代码!着色器会清除一切有关纹理、光照、材质等固定管线的实现方法,如果您不重新在着色器代码中实现它们的话,自然会看到一片漆黑~~而这里的GLSL代码其实并没有太多的实际意义,如果您并不是全盘照搬的话,那么想必不会遇到这个问题了~~

该用户从未签到

 楼主| 发表于 2010-5-4 23:28:34 | 显示全部楼层
呵呵,谢谢array老师了,我在研究一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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