查看: 1692|回复: 3

旋转物体时出现闪动的疑惑

[复制链接]

该用户从未签到

发表于 2009-11-4 15:35:27 | 显示全部楼层 |阅读模式
本帖最后由 qele 于 2009-11-4 15:45 编辑

场景中只画了一个Box。当用鼠标拖动旋转时,画面闪动的严重。
  1. osg::Vec3 center(36499900, 4026931, -17);
  2. float size = 100;
  3. osg::Box* box = new osg::Box( center, size );
复制代码
找了好多原因,最后尝试把center坐标缩小一些,
  1. center *= 0.01f;
复制代码
这时居然一切运行正常,画面很流畅~
仅仅把center缩小就可以解决,为什么呢?

不知大家是否知道原因?
谢谢!!

该用户从未签到

 楼主| 发表于 2009-11-4 15:42:01 | 显示全部楼层
本帖最后由 qele 于 2009-11-4 15:44 编辑

不知是不是projection Matrix的问题?

该用户从未签到

发表于 2009-11-4 15:55:39 | 显示全部楼层
我想也许是因为float类型的精度问题,因为glVertex3f只能准确绘制单精度浮点数。您可以尝试在Geode之上追加一个MatrixTransform节点,由他负责把中心位置适当平移,避免Box::setCenter的值过大。

该用户从未签到

 楼主| 发表于 2009-11-4 16:59:59 | 显示全部楼层
3# array

感谢array的提醒!
就是因为数值过大造成的;用一个Translate节点(double类型的)过渡一下就好了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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