查看: 1258|回复: 2

osgdistortion例程修改遇到的问题

[复制链接]

该用户从未签到

发表于 2009-11-22 18:01:52 | 显示全部楼层 |阅读模式
我把createDistortionSubgraph函数中顶点纹理对应的地方(两个for循环),修改为
float fHeight = 2.80955;
  float fWidth = 3.74607;
  float fSeta=0.767945f;
  float fRadius=5.0f;
  float px,py,pz; //柱面上的点
  float px1,py1,pz1; //截(平)面上的点
  osg:rawElementsUShort* elements = new osg::DrawElementsUShort(osg:rimitiveSet::TRIANGLE_STRIP);
  int k=0;
  for(int i=0;i<noSteps+1;i++)
  {
   px = fRadius * cos(fSeta / 2 + osg::PI / 2 - i * fSeta / noSteps);
   py = fHeight / 2;
   pz = -fRadius * sin(fSeta / 2 + osg::PI  / 2 - i * fSeta / noSteps);
   vertices->push_back(osg::Vec3(px,py,pz));
   texcoords->push_back(osg::Vec2(i / noSteps, 1));
   colors->push_back(osg::Vec4(1.0f,1.0f,1.0f,1.0f));
   vertices->push_back(osg::Vec3(px,-py,pz));
   texcoords->push_back(osg::Vec2(i / noSteps, 0));
   colors->push_back(osg::Vec4(1.0f,1.0f,1.0f,1.0f));
   elements->push_back(k);
   k++;
   elements->push_back(k);
   k++;
  }
polyGeom->addPrimitiveSet(elements);

然后运行,就什么都没有了?哪位高手能给解析一下 ?

该用户从未签到

发表于 2009-11-22 20:29:58 | 显示全部楼层
一个很简单的问题:int i=10, int noSteps=50,那么您认为i/noSteps是多少?答案是0!然后您想必就知道这段代码的问题在哪里了
此外您还要继续检查一下纹理坐标的设置结果是否正确,我没有进一步细看您的代码

该用户从未签到

 楼主| 发表于 2009-11-23 08:41:47 | 显示全部楼层
谢谢管理员,知道了!看来是c语言不够扎实
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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