问题标签 [opengl]

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 投票
4 回答
6030 浏览

opengl - OpenGL:模型视图矩阵的多用户向量?

有没有办法让OpenGL转换一个我用当前模型视图矩阵给它的通用向量并取回结果?

显而易见的方法是查询模型视图矩阵并自己进行乘法运算,但我几乎可以肯定应该有一种方法可以让 OpenGL 为我做这件事。

0 投票
4 回答
74253 浏览

opengl - OpenGL围绕一个点旋转相机

在 OpenGL 中,我试图围绕一个点旋转相机,相机与该点的距离为 r,并且在旋转时面向该点。换句话说,我希望相机沿距离中心半径为 r 的圆的圆周移动,相机在圆周上的任何点面向中心。

假设在 3d 空间中,圆的中心是 (3, 0, 3);

我试过了:

其中 CameraAngle 是围绕圆圈移动的度数。

我的最终结果是相机仍然沿原点旋转,而不是圆心。谁能帮我解决这个问题?谢谢!

0 投票
4 回答
582 浏览

opengl - 通过 PyOpenGL 拼接 2D 图像

我正在尝试拼凑一个基本上包括以下内容的场景:

  1. 地球的 2D 图像(想想 NASA 卫星摄影),已旋转成与此类似的视图,并且,
  2. 我想要放置在特定纬度/经度坐标的圆柱管。

我已经设法按照上面的链接设置了 2d 图像,但我正在努力创建圆柱体。我希望达到的效果应该与类似。无论如何,我意识到这个描述并不是很多,我想那是因为我知道的太少了,我不知道该问什么。

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

0 投票
6 回答
5024 浏览

opengl - 在opengl中显示任意大小的二维图像

我需要使用纹理在 opengl 中显示 2d 图像。
图像尺寸不一定是 2 的幂。
我想创建一个更大的纹理并将显示限制在我正在使用的部分,但是图像数据将与 openCV 共享,所以我不想一次复制一个像素的数据变成更大的纹理。

编辑 - 事实证明,即使是 Windows 下最简单的英特尔板载显卡也支持非 2 次幂纹理。

EDIT2 - 即使您没有任意纹理大小,然后使您的图像更小并重新缩放到窗口大小,即使在低端硬件上也非常快

0 投票
2 回答
378 浏览

c# - 在 openGL 中跨两个显示上下文同时更新

我有一个 C# .NET 应用程序,我用它创建了一个自定义图像显示控件。每个图像显示代表它自己的显示上下文并使用 glDrawPixels 绘制图像(是的,我知道使用纹理会更好,我计划在未来使用,但这个应用程序已经太远了,我的时间有限)。

我现在正试图让两个图像同时平移。也就是说,当一个图像下移十个像素时,第二个图像下移十个像素。像这样:

好吧,这就是我遇到的问题。只有一个图像显示正在重绘。如果我在两个 Invalidate 调用之间暂停并使暂停持续时间至少为 110 毫秒,则两者都将重绘,但不会同时重绘。所以看起来第二张图片总是试图赶上第一张。另外,110 毫秒的停顿会使动作减慢太多。

我尝试将每个图像的更新和失效放在它自己的线程中,但这没有帮助。

在绘图开始时,我使适当的上下文是当前的,最后我调用 swapbuffers()。我尝试在绘图函数的末尾添加一个 glFinish,但没有任何变化。

会不会是显卡的问题?我被困在使用只有 openGL 1.4 的集成 gpu 上。

希望我已经提供了足够的细节,可以找到我的问题的答案。

0 投票
1 回答
1887 浏览

visual-c++ - 用于空中立体图像(左、右图像)的 OpenGL 3d 立体查看

我的目的: - 显示与整个左右卫星或航空图像重叠的区域

现在我正在为航空立体图像(左、右立体对)进行 OpenGL 3d 立体查看。我使用以下代码显示了我的左右图像:

现在我需要使用 Opengl 以下函数对我的右图像进行 3D 旋转:glRotatef(rightphoto.omega*180/PI,1.0f,0.0f,0.0f); glRotatef(rightphoto.phi*180/PI,0.0f,1.0f,0.0f); glRotatef(rightphoto.kappa*180/PI,0.0f,0.0f,1.0f); 但我无法旋转我的图像。

请帮我如何旋转我的图像!!!!!!!我也想用 3d 旋转显示左右图像相同部分的左侧重叠的整个图像。我不知道如何计算整个左右图像的重叠区域坐标。对不起我糟糕的英语。

0 投票
4 回答
44024 浏览

opengl - 如何将纹理应用于 glutSolidCube

我可以找到有关将纹理映射到指定顶点等的多边形的教程,但没有关于如何将纹理应用于使用 glut (glutSolidCube) 绘制的立方体(或其他东西)的教程。

我正在做类似的事情:

这样做我将纹理应用于立方体,但整个立方体获得纹理中第一个字节的颜色!

使用 glutSolidCube 时,有没有办法将纹理映射到实体立方体(和其他实体)?

0 投票
2 回答
6703 浏览

c++ - OpenGL 和单色纹理

是否可以将单色(具有 1 位图像深度的图形数据)纹理泵入 OpenGL?

我目前正在使用这个:

我在 GL_LUMINANCE 模式下使用 8 位无符号整数的方阵(一个 8 位通道代表所有 3 个通道的亮度和完整的 alpha)来抽它,但它在 IMO 中非常无效,因为数组中的 onlu 值是 0x00 和 0xFF .

我可以(以及如何)以某种方式使用简单的每像素一位布尔数组吗?过大的数组大小会减慢数组上的任何其他操作:(

0 投票
1 回答
4987 浏览

c++ - 如何将 bmp 加载到 GLubyte 数组中?

全部,

我正在尝试将 bmp 文件加载到 GLubyte 数组中(不使用 aux)。

令人难以置信的是,我认为本来是一项微不足道的任务却占用了我数小时的时间。

在 Google 上似乎找不到任何东西!

这是我一起破解的,但它不是很有效:

发生的情况是对 LoadImage 的调用似乎返回了未定义的值(NULL?我无法弄清楚它是否真的在加载 bmp - 有点困惑)。

目前我正在将 bmps 转换为 raw 那么这一切都很容易。

有人有更好更干净的片段吗?

0 投票
3 回答
7632 浏览

opengl - 在不裁剪的情况下缩放 SDL 曲面的正确方法?

缩放 SDL 表面的正确方法是什么?我在网上找到了一种解释,但它需要逐个像素地重绘 Surface。似乎应该有某种方式通过 SDL 本地执行此操作,而不是像那样重绘图像。我无法在涵盖此内容的 SDL 文档中找到任何内容。我可以通过修改曲面的宽度和高度来毫无问题地调整曲面的大小,但生成的曲面会被剪裁。