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

c - 在原点和用户给定的旋转点的坐标上保持相同的三角形?

我一直在研究围绕原点和用户指定的坐标旋转一个三角形。任务是旋转相同的三角形(相同的尺寸)。到目前为止,我能够在原点做到这一点。但是当它在用户指定的坐标处旋转时,三角形的形状正在增加。

0 投票
1 回答
1591 浏览

opengl - 旋转前后的 OpenGL 平移

以下是关于如何绘制机器人的手臂和肩膀并通过一些用户输入旋转它们的代码(取自http://www.glprogramming.com/red/chapter03.html ):

我理解绘制肩膀和旋转它的代码。对于肩部:首先我们将其沿 x 轴向后平移一个单位,这样当我们进行旋转时,它会沿原点作为枢轴旋转。然后我们将它向后平移(在 x 轴上向前移动一个单位)。此转换将应用于已缩放的立方体。

现在,我的问题是肘部。为什么在旋转之前和之后在 x 轴上都有向前平移?

0 投票
1 回答
1743 浏览

c++ - 纹理平面上的 OpenGL 照明不起作用

我想照亮纹理平面,但这不起作用。实体球体上的光很好,但纹理平面不光。

整个图像

实心球体上的照明效果很好。

但是,纹理平面上的照明不起作用。(GL_DECAL,GL_REPLACE;我也试过 GL_MODULATE)

这是我的渲染代码片段。(GitHub上的完整代码

加载纹理。

初始化

显示回调

光照初始化函数

Light.On() 函数

这是纹理平面绘制功能。

我更改了矢量方向,更改了glTexEnvf属性,更改了代码的顺序,但没有修复错误。我认为我的代码中有一个基本错误,但我找不到它。为什么会发生这种情况,我该如何解决?

0 投票
2 回答
608 浏览

c - 如何在(旧)opengl(2.4)中以程序方式绘制(超/ n-)立方体

几周以来,这一直困扰着我,我没有结束对它的研究,因为我目前超负荷,它让我落后于第一年的 CS (opengl) 大学课程,这首先让我研究了这个:如何绘制所有只有一个 for 循环的立方体的面。

练习让我们列出一个正方形的所有顶点的坐标,然后是一个立方体的所有顶点的坐标,然后画一个。我很快注意到,因为它是一个立方体,并且所有长度都相等,因此映射到二进制。我注意到正方形顶点坐标自然映射到我在第一学期在数字电子学中学习的格雷码。我想知道它是否在为立方体做一些事情,实际上它正在通过所有连续的顶点,然后我发现它被称为汉密尔顿路径欧拉循环(我不确定,我看到这与蛇有关一个盒子这些页面上的问题,包括格雷码),但它不允许我计算每个(最好是连续的,所以我可以使用 GL_QUADS 甚至 GL_QUAD_STRIP)面来分解我绘制的立方体(尽管它应该允许我计算一个 - 我猜 - 所有行的特殊排序数组,也许然后我可以从那里计算每个面?)。

我还尝试使用 opengl 转换来做到这一点,因为我们在课程中继续学习它们,因为我猜它可能会将更多计算推迟到 gpu 而不是 cpu,并且几乎成功了,但是我的 for 循环需要 8 次迭代所以有2个无用的隐藏面孔:

我有点想继续我的研究,尽管我缺乏时间,而且通常最终失败的想法经常在我脑海中浮现。现在,每次我被要求为某物画一个立方体时,我都会花 1 个多小时继续这个过程。

让我兴奋的还有,如果我成功分解了立方体的过程计算,这可能会从维度的概念中抽象出来,然后将相同的算法推广到第 n 维应该很容易,从而给出一个简单、自然和简单的绘制正方体或任何超立方体的方法……这与我经常经历的很长的实验相匹配,试图概括在第 n 维必须给我的所有东西(当他们要求在 2D 中绘制螺旋时首先这样做)。

PS:关于维度空间的数学、n维、顶点分布、线、面的有序分布以及与格雷码的关系,我还应该在math.stackexchange.com上问吗?

0 投票
2 回答
6805 浏览

opengl - 不了解 gluOrtho2D 函数

我无法执行什么gluOrtho2D()功能?它是在OpenGL窗口的某个特定点固定原点还是其他什么?

这是因为gluOrtho2D(1,1,1,1)将原点固定在窗口的中间。

如果它在某个时候没有固定原点,那么有什么方法可以修复原点,因为我已经读过没有所谓的“OpenGL Window坐标”这样的东西?

我读到gluOrtho2D(0,640,480,0)修复了窗口左上角的原点,但是如果其他值作为参数发送,我怎么知道它在哪里移动?

0 投票
1 回答
255 浏览

c++ - opengl light减少反射

我正在尝试在我的场景中应用灯光。然而,所有物体都在极度反射,颜色变得扭曲。

在此处输入图像描述

如何获得类似于此示例的反射:

在此处输入图像描述

我假设我为材料选择了错误的值?

这就是我设置灯光和材质的方式:

0 投票
1 回答
803 浏览

python - 如何使用 opengl 和 pyglet 设置剪切平面

我正在对我的代码的一个问题进行故障排除,即如果任何图元的深度值不为零,它将不会在屏幕上呈现。我怀疑它会被剪掉。

有没有一种简单的 Pythonic 方法可以在 pyglet 中设置我的剪裁平面?

到目前为止,这是我的代码:

我正在使用FirstPersonCamera这里的代码段:

https://gist.github.com/mr-linch/f6dacd2a069887a47fbc

0 投票
1 回答
3285 浏览

python - 在python中没有可见窗口的OpenGL渲染视图

我需要渲染一些场景。我设法使用 pyopengl 和 pygame 在 python 中做到这一点。问题是它会在短时间内创建一个窗口。

我想渲染相同的图像并保存它,而不创建可见窗口(或者可能根本不创建窗口,甚至没有 pygame)。

0 投票
1 回答
754 浏览

python - PyOpenGL:glutTimerFunc 回调缺少必需的参数“值”

使用 PyOpenGL,我正在尝试创建一个简单的三角形,该三角形在每次刷新调用时都会改变颜色,并且我正在尝试使用 glutTimerFunc(...) 来执行此操作。

这是我得到的错误......

我尝试传递“值”并将其放在 display() 的参数列表中,但没有成功。

0 投票
1 回答
445 浏览

c++ - 如何在 glRotatef 中使用 glm::mat4

在现代 OpenGL 中,我会像这样平移、旋转、缩放等:

但是现在由于我无法控制的原因,我必须使用一些旧的 OpenGL,并且我已经将代码更改为如下所示:

以上几乎是等价的,但我不知道如何使用glm::mat4. glRotatef想要一个角度并为 xyz 浮动。我已经查看了`glm::decompose'以将它们从 4x4matrix 中取出,但不是很清楚。

可能吗?