问题标签 [opengl-compat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
116 浏览

c - 如何使用纹理单元(它们似乎不起作用)

我正在尝试使用一个颜色和另一个的 alpha 组合两个纹理,为此我使用 glTexEnvf() 将纹理的两个方面存储在不同的纹理单元中后组合它们。但它不起作用,我认为它是由 GL_TEXTURE1 没有按预期工作引起的,

我知道问题不在于纹理本身,因为我已经对其进行了测试,并且它们正常显示。这当前将 GL_TEXTURE0 的非 alpha 部分显示为黑色,因为似乎没有从 GL_TEXTURE1 中提取颜色数据(我也尝试过 GL_TEXTURE0+1 和所有这些的 ARB 版本,尽管 ARB 拒绝显示任何内容)

我也确定它们的尺寸完全相同,以防万一这可能是问题所在。

这是我的初始化代码(删除了不相关的东西,例如用于获取纹理图像的 devIL 初始化):

对于上下文,我有一个存储有关纹理信息的结构,因为我有动画(我只是通过纹理运行):

它应该只在 GL_TEXTURE0 没有 alpha 的地方显示 GL_TEXTURE1。目前它在 GL_TEXTURE0 没有 alpha 的地方显示为黑色

我刚刚发现其他纹理(在 GL_TEXTURE0 上)现在也没有颜色,(GL_TEXTURE1 仍然根本不显示)这是我用来正常显示图像的代码:

我有一种解决这个问题的感觉,我需要“重置”glTexEnvf,但我不知道如何。

0 投票
1 回答
713 浏览

python - 如何在 PyOpenGL 中更改位图字符的字体大小?

我正在 PyOpenGL 中制作游戏,并且正在使用一些重叠的文本。如何更改包含的字体的字体大小OpenGL.GLUT

这就是我现在所拥有的:

0 投票
1 回答
1293 浏览

python - 如何在 PyOpenGL 中将 png 图像作为图像叠加层?

我正在使用 PyOpenGL 制作游戏,并希望将一些图像作为一些叠加层(例如,暂停按钮)在屏幕上显示。我怎样才能做到这一点?

我试过使用glBitmap(),但它不起作用。

这就是我所拥有的:

我希望它会 blit 图像,但它却抛出了一个异常:

0 投票
1 回答
1322 浏览

python - 有没有办法更快地渲染点OpenGL

我需要在 openGL 中可视化大约 50k-60k 点,我设法将它们全部打印出来,但是当我使用旋转时,每次旋转之间需要很长时间,因为它只是每帧打印所有数据。有没有办法一次打印所有数据并冻结数据的导入,以便保留图像但停止处理?

主要是:

打印所有点,但每次旋转之间会遍历所有点并再次打印它们,因为有 60k+ 个点,每次旋转之间需要太多时间。我需要它只读取一次点并冻结图像而不是旋转。谢谢您的帮助

0 投票
1 回答
161 浏览

opengl - 旋转OpenGL纹理python

我在代码中添加了纹理。但是当我希望它是(x,0,z)时,纹理出现在(x,y,0)轴上[像地面纹理]在哪里。

这就是我添加纹理的方式,当我希望它成为旗地时,它似乎只在 x、y 轴上。

主要->当真时:

我试图添加

但它不会将其更改为地面。任何想法都会很棒

0 投票
2 回答
583 浏览

python - 无法使用 gluSphere() 绘制到相同的位置?

我正在使用 PyOpenGL 制作游戏。我想每 4 秒从一个地方发射一次子弹,但是当我用来gluSphere()绘制子弹时,它并没有出现在我例外的地方(除了第一次绘制球体)。我该如何解决?

相关的代码:

完整代码:

我预计它会绘制球体,但它关闭了灯光并且什么也没做(可能在其他地方绘制)。

0 投票
1 回答
4410 浏览

c++ - 在 C++ 中使用旧版 OpenGL(立即模式)绘制粗线

我想在 C++ 中使用 OpenGL 库创建一条粗线,但它不起作用。我试过这段代码:

这里有什么问题吗?

0 投票
1 回答
90 浏览

opengl - 与 OpenGL 的重叠线

我有两条相互交叉的线,我已将这些线的不透明度设置为0.7。这是代码:

这是这个的输出:代码输出

由于线条不透明度设置为0.7线条相交的部分,因此应该比线条的其余部分暗一点。我怎样才能得到这样的效果?

0 投票
1 回答
383 浏览

python - 如何使用pyglet保存当前视图矩阵

我正在使用 pyglet 并希望有一个可以为场景背景绘制颜色的功能。我目前只是在屏幕上绘制一个从左下角到右上角的矩形。在我开始应用转换之前,这很有效。例如,如果我使用旋转命令,“背景”矩形也会旋转

我尝试使用 glGetFloatv 获取当前矩阵,将其重置为标识,然后将其重置。

此代码返回此错误:

我不确定是什么原因造成的,或者我是否正确地解决了这个问题。我对 openGL 和 pyglet 非常陌生,不确定导致此错误的幕后情况。有没有更好的方法来“重置”转换或在屏幕空间中将某些东西绘制到屏幕上而不是我缺少的转换空间?

编辑:错误是因为我愚蠢地重用了矩阵(也是我的alpha通道)但现在我只是得到了输出

当命令被调用并且程序刚刚结束时。OSX 还会弹出一个窗口询问它是否正确关闭

0 投票
2 回答
357 浏览

python - 如何使用多个 glViewport() 和 glOrtho()

我正在尝试使用 pygame 和 pyopengl,在主窗口中我有 2 个视口、1 个大地图和 1 个小地图(都呈现相同的框架)。我需要两个地图都围绕一个不是 0,0,0 的中心旋转(假设我需要旋转中心为 -130,0,60,这需要是一个常数点)

我也需要 1 个视图来查看距离,glTranslatef(0, 0, -1000) 而第 2 个视图是glTranslatef(1, 1, -200)两个距离都是恒定的

我试着用

但它不会改变旋转.... 0,0,0 左右,否则我可能用错了。

代码如下所示:

我得到的输出是 2 张地图,都围绕 0,0,0 旋转,两者都距离 (0,0,-1000) 并且如果我在 While 循环中更改任何内容,它们都会一起改变。感谢帮助。