通过PyOpenGL拼凑2D图像

时间:2008-11-24 03:44:15

标签: opengl visualization pyopengl

我正在努力拼凑一个基本上由以下内容组成的场景:

  1. 地球的二维图像(想想NASA卫星摄影)已被旋转到类似于this的视图中,
  2. 我希望放置在特定纬度/经度坐标处的圆柱形管。
  3. 我设法设置了2d图像,如上面的链接所示,但我正在努力创建圆柱体。我希望实现的效果应该与this类似。无论如何,我意识到这种描述并不是很多,我想这是因为我知道的很少,我不知道该问什么。

    任何提示?我应该查找的GL函数的名称将特别有用。我正在使用PyOpenGL以防万一。

4 个答案:

答案 0 :(得分:1)

本教程解释了如何使用二次方来节省在GL中绘制对象的时间,有一个圆柱靠近底部的示例。该站点也是OpenGL整体的一个很好的学习资源。虽然它使用C,但您可以看到所使用的功能并根据需要实现它们。

http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=18

答案 1 :(得分:1)

GLUT是一个库,它提供常用行为的opengl调用集合, 包括创建圆柱形等基本形状。

一旦您设法使用GLUT创建圆柱体,您可以使用圆柱体定位圆柱体 矩阵转换到您想要的位置。

如果您还没有检查过它们,它们可能会有用:

http://pyopengl.sourceforge.net/documentation/

http://www.opengl.org/documentation/red_book/

http://www.opengl.org/resources/libraries/glut/

答案 2 :(得分:1)

您在原始帖子中提供的视频有许多效果,您可能会或可能不会尝试模仿。

GLU / GLUT创建的对象是在当前模型视图空间的原点创建的,因此您需要将它们平移/旋转/缩放到所需的位置。

查看glColor,在绘制圆柱体之前设置渲染颜色。

对于透明效果,需要做一些额外的工作。

查找'blend',glEnable(GL_BLEND),glBlendFunc,了解透明度的基础知识。

这个HeNe教程可能很有用:http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=08

渲染透明图像可能导致问题的一件事是,绘制图像的顺序变得很重要,因为z缓冲区裁剪和混合的工作方式。您可能会发现需要绘制距离观察位置越来越远的圆柱体。

答案 3 :(得分:0)

感谢您的回答。

我已经阅读了他们的教程,他们非常好。事实上,它们在PyOpenGL中包含的演示中被翻译成python。我想我的问题更多的是在绘制后设置圆柱的属性,我应该更具体,对不起。我可能遗漏了一些简单的东西,但经过几个小时的尝试后,我的空虚。我确实使用了GLUT库并尝试绘制glutSolidSphere作为测试。在我的场景中,我似乎无法使它像我在原始帖子中链接到的光线一样着色。

我想一个更好的问题就是我应该用什么GL命令来产生效果,就像在光线动画中看到的那样(OP中的链接)。