查看: 1943|回复: 5

OSG中使用opengl的问题,先谢过。

[复制链接]

该用户从未签到

发表于 2009-10-3 09:02:53 | 显示全部楼层 |阅读模式
在OSG中找到了使用opengl的方法。但是我在试验性质的画一个矩形时候出现了opengl中的坐标与OSG中的坐标并不匹配的现象(我这么推测,也不知道表达是否合理)!请各位帮我看看。
具体代码也很少,我附上来:
virtual void drawImplementation(osg::RenderInfo&) const
{
  //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);   // 清除屏幕及深度缓存
  //glLoadIdentity();       // 重置当前的模型观察矩阵
  glPushMatrix();
  //glRotated(-90,1,0,0);
  glBegin(GL_QUADS);       // 绘制
   glColor3f(1.0f,0.0f,0.0f);    // 设置当前色为红色
   glVertex3f( 225.0f, 270.0f, 0.0f);   
   glVertex3f(500.0f,270.0f, 0.0f);     
   glVertex3f( 500.0f,50.0f, 0.0f);     
   glVertex3f( 225.0f, 50.0f, 0.0f);   
  glEnd();   
  glPopMatrix();
}
截图00.jpg

该用户从未签到

 楼主| 发表于 2009-10-3 09:06:31 | 显示全部楼层
补充下,我后面的红色矩形给的坐标是从地形中取过来的,大致范围为x(200-520),y(50-300)。另有一个迷惑,按理说osg与opengl的坐标系需要一个转换的,可是为什么我不转出现的图形确实正常的,二转了后(比如使用glRotated或者将y与z值变换)却更与我要的效果离谱。

该用户从未签到

发表于 2009-10-3 15:12:06 | 显示全部楼层
要注意您绘制这个自定义几何体时的局部坐标系;此外如果您想使用glRotate的话,注意它的旋转参数不是角度值而是弧度值,即PI/2而非90.0

该用户从未签到

 楼主| 发表于 2009-10-3 18:01:44 | 显示全部楼层
谢谢您的回复。您说的我知道了。我的问题没有说清楚。我取的四个坐标点是地形的四个角的坐标点(近似),然而矩形出来后却明显出现偏差。 3# array

该用户从未签到

发表于 2009-10-3 22:40:53 | 显示全部楼层
我粗略地看了一下,如果那个模型是lz.osg的话,那么(200, 50)-(520,300)应该不是它的角点,因为这块示例地形的中心在原点。您再确定一下

该用户从未签到

 楼主| 发表于 2009-10-4 08:20:01 | 显示全部楼层
谢谢,我已经找到问题了,按照您的提示! 5# array
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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