问题标签 [pyopengl]

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 回答
681 浏览

python - 线条不会在具有完全黑色纹理的屏幕外帧缓冲区上渲染

如果我有一个绑定了纹理的帧缓冲区,它只是带有完整 alpha 的黑色,我尝试在其上画一条线,即使该线具有完整的 alpha,它也不会渲染。我不傻,所以线条肯定不是黑色的。如果纹理是白色的,那么线条会突然正确渲染,就好像它后面的纹理颜色会影响线条的颜色,这是愚蠢的。只有线条具有透明度,它们后面的颜色才应该有效果。

我正在使用线条平滑。我使用以下混合功能,这显然是要使用的功能,

我该如何解决?

大量代码:

对于画线:

设置帧缓冲对象:

纹理的创建:

使用帧缓冲对象在屏幕或 Surface 对象的纹理上绘制大量线条的函数:

这就是我认为重要的一切。除了初始化代码:

0 投票
3 回答
1415 浏览

python - OpenGL 新手和弃用

我已经开始使用 PyOpenGL 3.0.1b 在 Python 中使用 OpenGL。

我查看了一些示例代码并开始运行它并对其进行修改等。一切都很好,直到我变得不那么无知了。

http://pyopengl.sourceforge.net/documentation/manual-3.0/index.xhtml列出了 OpenGL 函数以及它们是否被弃用。所以我心想,我只需要找到一些不使用所有这些已弃用的废话的最新教程。

几个小时后,没有这样的运气!弃用示例代码后弃用的示例代码......我可以在某个地方获取非弃用教程吗?

0 投票
3 回答
5363 浏览

python - OpenGL中的透明FrameBuffer背景

我想使用 glClear 和 glClearColor 用包括 alpha 透明度的颜色填充帧缓冲区。但是,当绑定到渲染到屏幕的纹理时,帧缓冲区始终呈现为不透明。

我希望渲染到帧缓冲区的所有内容都保持透明度。我只是想改变背景。

请参阅以下代码:

surface.background_alpha 应该是帧缓冲背景的透明度。这是我的初始化代码:

代码有点乱,因为我做了很多调整才能让事情正常工作,而且我还没有把所有的东西都整理好。

如果有人可以帮助我,我非常感谢你。

0 投票
3 回答
1184 浏览

python - 为 pyopengl 和 numpy 构建交错缓冲区

我正在尝试在交错数组中批量处理一堆顶点和纹理坐标,然后再将其发送到 pyOpengl 的 glInterleavedArrays/glDrawArrays。唯一的问题是我无法找到足够快的方法将数据附加到 numpy 数组中。

有一个更好的方法吗?我原以为预先分配数组然后用数据填充它会更快,但是生成python列表并将其转换为numpy数组会“更快”。尽管 4096 个四边形的 15 毫秒似乎很慢。

我已经包含了一些示例代码及其时间安排。

使用随机数的计时:

编辑说明:更改代码以为每次渲染生成随机数,以减少对象重用并每次模拟不同的顶点。

编辑注2:添加静态缓冲区并强制所有 numpy.empty() 使用 dtype=float32

注意 2010 年 4 月 1 日:仍然没有进展,我真的不觉得任何答案都解决了问题。

0 投票
5 回答
10308 浏览

python - pyopengl:它可以取代 c++ 吗?

我正在开始一门计算机图形学课程,我必须选择一门语言。

选择在 C++ 和 Python 之间。我对 C++ 没有任何问题,python 正在进行中。所以我想沿着 python 之路走下去,使用 pyopengl 作为图形部分。

不过我听说,性能是个问题。

python / pyopengl 是否成熟到足以挑战 C++ 的性能?

我意识到这是一个很长的目标,但我想听听你对 pyopengl 使用的想法和经验。

0 投票
1 回答
1326 浏览

python - 实现 pyglet 会破坏我曾经工作的帧缓冲区 OpenGL 代码

这个问题重复了我之前的问题,但是我之前的问题是失败的,因为我没有正确复制一些重要信息,所以我必须重做。

我在调用 OpenGL 函数时遇到错误。也许 pyglet 没有正确初始化 OpenGL?该错误发生在以前有效的简单函数中:

错误是:

glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,surface.frame_buffer)ctypes.ArgumentError:参数2::错误类型

类型不对?那么现在 glGenFramebuffersEXT(1) 是否给出了错误的类型?为什么会这样?

在调用该函数之前,我初始化了一个管理我的游戏的类实例。这是初始化方法:

Surface 是我创建的一个类,它的行为有点像 pygame.Surface 类,但使用 OpenGL 纹理。

该方法设置了 Window 和 OpenGL(可能不正确,这是问题所在?),在调用它之后,我为我的游戏设置了一些东西,它使用 setup_framebuffer 函数渲染到纹理。然后调用 pyglet.app.run() 应该希望运行我的 game_loop 方法,因为我做了 self.window.set_handler('on_draw,self.game_loop) 但我的游戏在它到达那里之前就崩溃了。

这是我第一次使用 pyglet。该文档没有向我解释我做错了什么。任何人都可以帮忙吗?

谢谢你。

0 投票
0 回答
801 浏览

wxpython - OpenGL 和 ImportError 对存在的模块没有加速

我正在使用 wxPython 和 OpenGL 编写程序。该程序有效,但没有任何抗锯齿,我收到以下错误消息:(我正在使用 ArchLinux)

但是,当我查看我的 site-packages 文件夹时,我看到那里存在该模块。我有一个使用 GLCanvas 的 wxPython 演示程序,它运行良好,没有任何错误。

我的程序与 GLCanvas 演示非常相似,只涉及平移、旋转、绘制四边形和一些基本照明。

我在这里做错了什么?(代码超过200行,如有需要我会编辑并放在这里)

0 投票
4 回答
2185 浏览

opengl - PyOpenGL:glVertexPointer() 偏移问题

我的顶点交错在一个 numpy 数组(dtype = float32)中,如下所示:... tu, tv, nx, ny, nz, vx, vy, vz, ...

渲染时,我像这样调用 gl*Pointer() (我之前启用了数组):

结果是没有渲染。但是,如果我组织我的数组,使顶点位置是第一个元素(... vx, vy, vz, tu, tv, nx, ny, nz, ... )我在渲染时得到正确的顶点位置但纹理坐标和法线未正确渲染。

这让我相信我没有正确设置指针偏移量。我应该如何设置它?我在我的其他 C++ 应用程序中使用几乎完全相同的代码并且它可以工作。

0 投票
2 回答
8173 浏览

python - Pyglet OpenGL 绘图抗锯齿

我一直在寻找一种在 OpenGL 中消除锯齿线的方法,但它们似乎都不起作用......这是一些示例代码:

谁能看到我做错了什么?

0 投票
2 回答
3496 浏览

python - PyOpenGL 是开始学习 opengl 编程的好地方吗?

我想开始学习 OpenGL,但我真的不想学习另一种语言来做到这一点。我已经非常精通 python 并且喜欢这种语言。我只想知道它与常规 api 有多接近?我是否能够轻松地遵循教程和书籍而没有太多麻烦?

我知道 C++ 提供了更好的性能,但是仅仅为了学习,我会在 PyOpenGL 上出错吗?