问题标签 [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 回答
82 浏览

c - Xcode和Visual Studio中的OpenGL结果差异

我写了一个简单的 OpenGL 代码,它在 Visual Studio 中正常工作。但是当它被转移到 Xcode 时。这是编译成功,但结果不同。什么都没有。

我只更改了 OpenGL、GLUT 头文件。

我怀疑gluPerspectiveXcode 中的范围不同,但我不知道确切的原因。

它是如何运作的?

这是我在 xcode 中的代码

0 投票
1 回答
5356 浏览

python - 如何在 PyOpenGL 上创建一个可以对鼠标移动进行“透视旋转”的相机?

我正在创建一个第一人称视角的 RPG,并且我想在移动鼠标时在 PyOpenGL 中旋转相机(就像 Minecraft 等其他一些游戏一样)。我可以使用什么功能来执行此操作以及如何执行此操作?

我尝试使用gluLookAt(),但我不明白它是如何工作的,尽管我通过了不同的来源。我什至不知道它是否有帮助。

0 投票
1 回答
2421 浏览

c++ - glPushMatrix() glPopMatrix() 不起作用

我尝试编写两个独立移动的对象,这意味着它们都在移动两个不同的方向,但它不能连续移动。当我放在glTranslatef()外面时glPushMatrix()......glPopMatrix()它工作正常。

我希望第一个正方形对象会不断向右移动,但似乎只是平移一次然后停在该位置。

0 投票
1 回答
526 浏览

python - GL_LINES 没有显示在立方体顶部?

我正在尝试使用 OpenGL 和 Pygame 创建一个 3d 魔方。但是,当我尝试在GL_QUADS我创建的表面上绘制线条时,它们不会出现。

我试过把线放在GL_LINES后面,GL_QUADS但它们仍然没有显示为黑线。

有没有人有办法解决吗?另外,我将如何调整线条的粗细?

这是代码的样子:

0 投票
1 回答
1869 浏览

python - 如何在 PyOpenGL 中旋转某个对象(四边形)?

我正在 PyOpenGL 中制作一个游戏,其中一个对象(例如长方体)应该面向相机。为此,我必须旋转特定对象。我怎样才能做到这一点?

glRotatef() 旋转整个世界,但不是单个对象,所以我不能使用它。另外,glPushMatrix() 的解决方法如何分别旋转多个四边形?(Pygame,PyOpengl)不起作用。改变顶点的解决方案会很好。

我预计物体会在 z 轴上转动 30 度,但事实并非如此。实际上,如果我应用此代码,它也会错误地移动(定义了对象向我移动的移动函数)。

0 投票
2 回答
962 浏览

c++ - 如何在OpenGL中绘制一组坐标?

我正在尝试用 C++ 制作康威的生命游戏,并且正在使用 OpenGL(但我对 OpenGL 很陌生),因为它支持负坐标,因此支持无限的世界。
我有一个名为 GameOfLife 的类,它处理整个世界,并将活细胞作为向量中的 [x, y] 坐标。因此,我将在整个活动单元格坐标中使用 for 循环,并为每个坐标渲染一个像素。
但是,无论我做什么,屏幕上都不会出现任何我尝试过的东西。下面是带有空glBeginglEnd函数的代码。我应该在它们之间放置什么才能渲染。

我试过:
将每个坐标除以 400 得到float1 个像素。
在第三边和第四边的 x 和 y 上加 1/400。

0 投票
1 回答
1286 浏览

python - 如何测试 pygame 屏幕中的 2d 点是否是 PyOpenGL 中 3d 对象的一部分?

我正在 PyOpenGL 中制作一个游戏(RPG),我有一个十字准线。我想检查一个 3d 对象是否在十字准线中(或检测它是否在一个点上),这是一个 2d 叠加。我怎样才能做到这一点?

我尝试使用 screen.get_at() 函数,但它显示错误“无法在 OpenGL 表面上调用”。此外,它也不好,因为它只检测一种颜色,而不是一个物体(虽然你可以使用颜色来确定一个物体,但是如果有几个物体具有相同的颜色呢?)。

这就是我确定距离的方法:

计算距离您最近的距离的触摸功能:

编辑 - 完整代码 - 浮点除以 0:

0 投票
0 回答
1742 浏览

opengl - glColor3f 和 glColor3d 的区别

简而言之,我正在处理的代码使用 OpenGL 将数据(存储为双精度数据)表示为某些几何图形的颜色。使用顶点之间的默认颜色阴影,然后对几何图形上的颜色进行采样,以查看不同像素处的值并将它们转换回我的数据。目前它是使用 1D 纹理映射完成的,这样我绘制和采样的任何值都可以精确地定位在比例尺上。然而,由于我正在使用的数据存储为双精度数据,因此当所有绘制和采样的值都映射到 14 位纹理贴图上时,会丢失很多精度。

所以为了解决这个问题,现在我正在使用浮点颜色来实现代码。我正在使用带有 GL_RGBA32F 渲染缓冲区颜色附件的 FBO。我不明白的是,如果我使用 glColor3d 与 glColor3f 设置顶点的颜色会发生什么变化。如果我理解正确,使用单精度浮点渲染缓冲区,我为 RGB 采样的值基本上是 GLfloat 类型,而不是 GLdouble。

另外,有什么方法可以配置我的渲染缓冲区,以便我可以使用 GLdouble 颜色值进行绘制并能够采样回 GLdouble 值?查看OpenGL 4.5 规范 p198,没有任何颜色格式的每个颜色通道的精度超过 32f。据我了解,双精度颜色是相当现代的技术,只支持较新的系统,这只会让我对 glColour3d 的存在更加困惑。

0 投票
1 回答
114 浏览

python - 如何在面向对象的 PyOpenGL 中进行击退?

我正在使用 PyOpenGL 制作游戏,并且我想在物体足够近时在相机上应用击退。击退只是根据敌人的朝向将相机向后放置。

我已经在一张纸上建模并发现了

但它似乎不起作用,我想处理对象的正面,而不是 x、y 和 z 之间的关系。

另外,我尝试了在 Unity 2D TopDown 游戏解决方案中击退玩家:

但不知何故,如果我转动视角,我可以控制如何回击(例如,如果我面向左侧,我将被撞回左侧)。

完整代码:

无论我如何旋转视图,我都希望被击退,但如果我旋转视图,我可以改变我要击退的位置。

0 投票
1 回答
800 浏览

python - How to darken the light for the whole scene in PyOpenGL?

I am making a game in PyOpenGL and I want to let the light to be darkened when the player dies. How can I do that?

I've tried several resources like Tweak the brightness/gamma of the whole scene in OpenGL and https://www.gamedev.net/forums/topic/535812-disable-opengl-lighting-completely-to-dark-scene/ with no luck.

I expected the scene to be dark, but instead it returns a traceback about decorators. Even if I delete these, nothing changes on my scene.