查看: 2464|回复: 3

osg网格的一个问题???

[复制链接]

该用户从未签到

发表于 2011-9-19 11:50:01 | 显示全部楼层 |阅读模式
我在使用osgShape 的例子中为了显示网格,使用如下代码:

osg:olygonMode *pm = new osg::PolygonMode(osg::PolygonMode::FRONT_AND_BACK,osg::PolygonMode:INE);
stateset->setAttributeAndModes(pm,osg::StateAttribute::ON);

得到网格如图:

网格图片

网格图片


其中不知道为什么,所有的图形都有图中所标示的矩形中斜线
以前在OSG2.8.0好像没有

不知道有什么方法可以取消掉么?????

该用户从未签到

 楼主| 发表于 2011-9-19 11:57:56 | 显示全部楼层
这是在OSG2.8.0中的图形,代码一样的
dddd2.jpg

该用户从未签到

 楼主| 发表于 2011-9-19 14:12:20 | 显示全部楼层
已经解决,osg新版本增加了GlBeginEndAdapter 类,其中在::end()函数中将GL_QUADS,GL_QUAD_STRIP 改写了,只需要改回来就可以了

该用户从未签到

发表于 2013-4-8 19:01:03 | 显示全部楼层
多谢。确实管用。 代码如下:

  //   if (_primitiveMode==GL_QUADS)
         //{
                ////sd 增加以绘制矩形格网
                //        glDrawArrays(_primitiveMode, 0, _vertices->size());
                ////sd
                ////sd 注释以避免绘制三角格网
                ////        _state->drawQuads(0, _vertices->size());
                ////sd
         //}
  //   else if (_primitiveMode==GL_QUAD_STRIP)
  //   {
  //       // will the winding be wrong? Do we need to swap it?
  //       glDrawArrays(GL_TRIANGLE_STRIP, 0, _vertices->size());
  //   }
  //   else if (_primitiveMode==GL_POLYGON) glDrawArrays(GL_TRIANGLE_FAN, 0, _vertices->size());
  //   else glDrawArrays(_primitiveMode, 0, _vertices->size());

        //sd 增加之使得上述四种情况下均绘制矩形格网
                glDrawArrays(_primitiveMode, 0, _vertices->size());
        //
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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