在做完作业(又名研究)并尝试将问题上发布的 Java 代码参考直接转换为 Python 后,在尝试让 Python/Numpy 根据像素颜色的位置更新巨大的像素颜色数组时,经历了非常非常悲伤的经历涟漪效应的涟漪(抱歉,我的第一语言不是英语),因此为效果计算的每次传递解析几个(x,y)位置并将其传输到屏幕上的显示表面(随后出现surfarray),我得出的结论——得到了其他评论者的支持——Pygame 只是won't足够强大,能够实际遍历整个像素阵列并将计算结果以至少 24 fps 的速率应用到屏幕上的每个像素(对于低于平均水平的体验)。
引用背后的开发者的话最后的光芒制作公司 http://www.cs.unm.edu/~imallett/site/和前者几何工程 http://geometrian.com/programming/projects/index.php,伊恩·马利特:
PyGame 不太适合像素推送。除了 GPU 之外,什么都不是。
然后搜索结果是搜索Alkahest http://en.wikipedia.org/wiki/Alkahest- 一些东西永远不会被真正找到 - 并且基于波纹图像的相同想法,但这次通过使用透明度来看穿Pygame 表面的几层,我发布了问题Pygame 圆形裁剪/遮罩 https://gamedev.stackexchange.com/questions/18923/pygame-circular-cropping-masks关于游戏开发。这选择的答案 https://gamedev.stackexchange.com/questions/18923/pygame-circular-cropping-masks/18941#18941实际上证实了我已经担心 Pygame 永远不会成为现实的事实macho足以胜任这份工作。
一天后,我回到之前的开发思路,发现Ogre3D http://www.ogre3d.org/。事实证明,(1) Ogre3D 和示例是开源的,(2) 其中一个示例是与移动物体交互的 3-D 水模型,这与我尝试在 2-D 中实现的效果完全相同,但是以更专业的方式。
由于我对 C/C++ 的了解为零,所以我决定询问如何定制Ogre3D水演示 https://gamedev.stackexchange.com/questions/18921/ogre3d-customize-water-demo为了一睹从哪里开始寻找,其中一个答案向我指出了 Touchscape 提供的软件,其中提供了 SDK(请参阅这个答案 https://gamedev.stackexchange.com/questions/18921/ogre3d-customize-water-demo/18937#18937).
Ogre3D 几乎把它包起来了。水波纹效果,OpenGL(它可能可选地 http://www.ogre3d.org/tikiwiki/Hardware基于硬件的使用)、游戏引擎和 Python 包装器Python-Ogre http://www.python-ogre.org/- 所以我对我自己的问题的回答,
任何人都可以使用 OpenCV/OpenGL 和 Pygame 提供此效果的合适实现吗?
基本上是
是的。检查 Ogre3D 的水演示,随 SDK 一起提供 - 并将其插入 Python 通过Python-Ogre http://www.python-ogre.org/.