查看: 1384|回复: 5

我想通过改变顶点纹理索引值的方式来实现纹理动画,碰到问题

[复制链接]

该用户从未签到

发表于 2012-8-14 17:43:41 | 显示全部楼层 |阅读模式
本帖最后由 huahua880820 于 2012-8-14 17:44 编辑

用的是EventHandler做的Frame更新,纹理索引值在一直变动, 但是三维图像上 只变动了一次。 请问一下  像这种不断改变纹理索引值的方法 在OSG能够实现动画么?  还是在渲染的时候纹理的索引值就只能固定了 ?

PS:我确定我的函数可以更改纹理索引值 并且正确改变了纹理显示

该用户从未签到

发表于 2012-8-14 19:39:57 | 显示全部楼层
能,构造几何体的时候取消显示列表,用VBO。另外建议在回调里面更新,不要在eventhandle里更新。

该用户从未签到

发表于 2012-8-15 07:49:16 | 显示全部楼层
都可以实现,在改变之后Dirty() 就可以了

该用户从未签到

 楼主| 发表于 2012-8-15 14:56:28 | 显示全部楼层
liuzhiyu123 发表于 2012-8-15 07:49
都可以实现,在改变之后Dirty() 就可以了

非常感谢,通过Dirty能够让纹理运动起来了

但是又碰到下面这个问题
Warning: detected OpenGL error 'invalid value' after RenderBin::draw

然后我的模型总是一闪一闪的,非常奇怪,网上找了下,说我也许需要一个更好的图形显示卡? 不知道你们有没有碰到过这个问题,求指教~

该用户从未签到

发表于 2012-8-15 15:09:35 | 显示全部楼层
是的,可能您用的有些功能,显卡不支持,所以就出现这样的提示了

该用户从未签到

 楼主| 发表于 2012-8-15 16:39:57 | 显示全部楼层
liuzhiyu123 发表于 2012-8-15 15:09
是的,可能您用的有些功能,显卡不支持,所以就出现这样的提示了

哈哈 找到解决方法啦

灰常感谢!~

使用 State-> setCheckForGLErrors(osg:: State:: ONCE_PER_ATTRTBUTE) 后 ,就好了,也不闪了也不出错了  嘿嘿 虽然我不知道怎么好的。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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