查看: 1967|回复: 8

在线求助

[复制链接]

该用户从未签到

发表于 2009-4-9 20:07:22 | 显示全部楼层 |阅读模式
我想实现一个鼠标画线的功能 在GROUP下加了一个自己的GUIEventHandler
想让线跟着鼠标走 每次鼠标MOVE的时候我都将
        _lineGeometry->removePrimitiveSet(0);//,i
                     _lineGeometry->addPrimitiveSet(initPointPrimit());
                      _lineGeometry->setVertexArray(initPointArray());
                 initPointPrimit 重新构建顶点索引 initPointArray重新构建顶点
为什么会出错嫩 还经常是反汇编的
难道要再写个NODECALLBACK?

该用户从未签到

发表于 2009-4-9 20:40:59 | 显示全部楼层
这种时候通常要设置_lineGeometry的setDataVariance为DYNAMIC

该用户从未签到

 楼主| 发表于 2009-4-9 20:57:17 | 显示全部楼层
恩 刚试了 NODEcallback也不管用 锐哥能介绍一下原理吗?

该用户从未签到

发表于 2009-4-9 21:01:52 | 显示全部楼层
设置_lineGeometry->setDataVariance(DYNAMIC),这个做了吗?

该用户从未签到

 楼主| 发表于 2009-4-9 21:22:32 | 显示全部楼层
锐哥指点肯定 行了啊 哈哈 多谢锐哥就想知道知道原理 这是为什么嫩

该用户从未签到

发表于 2009-4-9 21:26:48 | 显示全部楼层
简单说来就是指示这个几何体不能同时被“更新和绘制”。对于多线程模型来说,一个对象在上一帧绘制(DRAW)的同时被下一帧更新(Update)是常有的事情,但如果在Update过程中改变了对象的某些属性,而这些属性又正好被绘制线程使用,那么就会造成崩溃,因此需要用DYNAMIC来特别指示系统

具体的解释和实现原理请参看《最长的一帧》

该用户从未签到

 楼主| 发表于 2009-4-9 21:31:41 | 显示全部楼层
呵呵 好的 多谢 多谢 是该多学习学习了

该用户从未签到

 楼主| 发表于 2009-4-9 21:32:30 | 显示全部楼层
PS:期待你的OSG与GLSL(2)

该用户从未签到

发表于 2009-4-9 21:57:45 | 显示全部楼层
呃,抱歉暂时停载。因为可能会以“高于”网络连载的形式出现~~~~当然也可能无法如愿,到时候自然会继续开始连载,请见谅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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