问题标签 [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.
python - 线条不会在具有完全黑色纹理的屏幕外帧缓冲区上渲染
如果我有一个绑定了纹理的帧缓冲区,它只是带有完整 alpha 的黑色,我尝试在其上画一条线,即使该线具有完整的 alpha,它也不会渲染。我不傻,所以线条肯定不是黑色的。如果纹理是白色的,那么线条会突然正确渲染,就好像它后面的纹理颜色会影响线条的颜色,这是愚蠢的。只有线条具有透明度,它们后面的颜色才应该有效果。
我正在使用线条平滑。我使用以下混合功能,这显然是要使用的功能,
我该如何解决?
大量代码:
对于画线:
设置帧缓冲对象:
纹理的创建:
使用帧缓冲对象在屏幕或 Surface 对象的纹理上绘制大量线条的函数:
这就是我认为重要的一切。除了初始化代码:
python - OpenGL 新手和弃用
我已经开始使用 PyOpenGL 3.0.1b 在 Python 中使用 OpenGL。
我查看了一些示例代码并开始运行它并对其进行修改等。一切都很好,直到我变得不那么无知了。
在http://pyopengl.sourceforge.net/documentation/manual-3.0/index.xhtml列出了 OpenGL 函数以及它们是否被弃用。所以我心想,我只需要找到一些不使用所有这些已弃用的废话的最新教程。
几个小时后,没有这样的运气!弃用示例代码后弃用的示例代码......我可以在某个地方获取非弃用教程吗?
python - OpenGL中的透明FrameBuffer背景
我想使用 glClear 和 glClearColor 用包括 alpha 透明度的颜色填充帧缓冲区。但是,当绑定到渲染到屏幕的纹理时,帧缓冲区始终呈现为不透明。
我希望渲染到帧缓冲区的所有内容都保持透明度。我只是想改变背景。
请参阅以下代码:
surface.background_alpha 应该是帧缓冲背景的透明度。这是我的初始化代码:
代码有点乱,因为我做了很多调整才能让事情正常工作,而且我还没有把所有的东西都整理好。
如果有人可以帮助我,我非常感谢你。
python - 为 pyopengl 和 numpy 构建交错缓冲区
我正在尝试在交错数组中批量处理一堆顶点和纹理坐标,然后再将其发送到 pyOpengl 的 glInterleavedArrays/glDrawArrays。唯一的问题是我无法找到足够快的方法将数据附加到 numpy 数组中。
有一个更好的方法吗?我原以为预先分配数组然后用数据填充它会更快,但是生成python列表并将其转换为numpy数组会“更快”。尽管 4096 个四边形的 15 毫秒似乎很慢。
我已经包含了一些示例代码及其时间安排。
使用随机数的计时:
编辑说明:更改代码以为每次渲染生成随机数,以减少对象重用并每次模拟不同的顶点。
编辑注2:添加静态缓冲区并强制所有 numpy.empty() 使用 dtype=float32
注意 2010 年 4 月 1 日:仍然没有进展,我真的不觉得任何答案都解决了问题。
python - pyopengl:它可以取代 c++ 吗?
我正在开始一门计算机图形学课程,我必须选择一门语言。
选择在 C++ 和 Python 之间。我对 C++ 没有任何问题,python 正在进行中。所以我想沿着 python 之路走下去,使用 pyopengl 作为图形部分。
不过我听说,性能是个问题。
python / pyopengl 是否成熟到足以挑战 C++ 的性能?
我意识到这是一个很长的目标,但我想听听你对 pyopengl 使用的想法和经验。
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。该文档没有向我解释我做错了什么。任何人都可以帮忙吗?
谢谢你。
wxpython - OpenGL 和 ImportError 对存在的模块没有加速
我正在使用 wxPython 和 OpenGL 编写程序。该程序有效,但没有任何抗锯齿,我收到以下错误消息:(我正在使用 ArchLinux)
但是,当我查看我的 site-packages 文件夹时,我看到那里存在该模块。我有一个使用 GLCanvas 的 wxPython 演示程序,它运行良好,没有任何错误。
我的程序与 GLCanvas 演示非常相似,只涉及平移、旋转、绘制四边形和一些基本照明。
我在这里做错了什么?(代码超过200行,如有需要我会编辑并放在这里)
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++ 应用程序中使用几乎完全相同的代码并且它可以工作。
python - Pyglet OpenGL 绘图抗锯齿
我一直在寻找一种在 OpenGL 中消除锯齿线的方法,但它们似乎都不起作用......这是一些示例代码:
谁能看到我做错了什么?
python - PyOpenGL 是开始学习 opengl 编程的好地方吗?
我想开始学习 OpenGL,但我真的不想学习另一种语言来做到这一点。我已经非常精通 python 并且喜欢这种语言。我只想知道它与常规 api 有多接近?我是否能够轻松地遵循教程和书籍而没有太多麻烦?
我知道 C++ 提供了更好的性能,但是仅仅为了学习,我会在 PyOpenGL 上出错吗?