我正在尝试拼凑一个基本上包括以下内容的场景:
- 地球的 2D 图像(想想 NASA 卫星摄影),已旋转成与此类似的视图,并且,
- 我想要放置在特定纬度/经度坐标的圆柱管。
我已经设法按照上面的链接设置了 2d 图像,但我正在努力创建圆柱体。我希望达到的效果应该与此类似。无论如何,我意识到这个描述并不是很多,我想那是因为我知道的太少了,我不知道该问什么。
有什么提示吗?我应该查找的 GL 函数的名称将特别有用。我正在使用 PyOpenGL 以防万一。
本教程解释了如何使用二次曲线来节省在 GL 中绘制对象的时间,有一个靠近底部的圆柱体示例。这个站点也是一个很好的 OpenGL 学习资源。虽然它使用 C,但您可以查看使用的函数并根据需要实现它们。
GLUT 是一个库,它提供常用行为的 opengl 调用集合,包括创建基本形状,例如圆柱体。
一旦您设法使用 GLUT 创建了一个圆柱体,您就可以使用矩阵变换将圆柱体定位到您想要的位置。
如果您还没有检查过这些,它们可能很有用:
http://pyopengl.sourceforge.net/documentation/
您在原始帖子中提供的视频具有许多您可能会或可能不会尝试效仿的效果。
GLU/GLUT 创建的对象是在您当前模型视图空间的原点创建的,因此您需要将它们翻译/旋转/缩放到您想要的位置。
查看 glColor,在绘制圆柱体之前设置渲染颜色。
对于透明效果,需要做一些额外的工作。
查找“混合”、glEnable (GL_BLEND)、glBlendFunc,以了解透明度的基础知识。
这个 HeNe 教程可能有用:http ://nehe.gamedev.net/data/lessons/lesson.asp?lesson=08
可能会导致渲染透明图像出现问题的一件事是,您绘制图像的顺序变得很重要,因为 z-buffer 剪辑和混合的工作方式。您可能会发现您需要绘制距离您的观看位置越来越远的圆柱体。
感谢您的回答。
我已经阅读了 nehe 教程,它们非常好。事实上,它们在 PyOpenGL 中包含的演示中被翻译成 python。我想我的问题更多是在我绘制它之后设置圆柱体的属性,我应该更具体,对不起。我可能遗漏了一些简单的东西,但经过几个小时的尝试,我却空空如也。我确实使用了 GLUT 库并尝试绘制一个 glutSolidSphere 作为测试。在我的场景中,我似乎无法让它像我在原始帖子中链接到的光线那样着色。
我想一个更好的问题是我应该寻找什么 GL 命令来产生可以在光线动画中看到的效果(OP 中的链接)。