[英]Import PNG texture to memory but not framebuffer- using C++ and OpenGL
我正在研究一种可能的碰撞检测方法,用于我正在开发的简单游戏,但我现在卡住了。
我正在尝试将纹理加载到内存中而不是加载到帧缓冲区中,并使用坐标从中读取像素(特别是颜色)...我可以轻松读取缓冲区内容并获取坐标处像素的颜色但我无法工作如何在纹理上做到这一点,它甚至可能吗?
任何帮助/指导/研究内容或可能的功能将不胜感激。
注意:我使用的是OpenGL 2.0
OpenGL不是图像处理,也不是图像访问库。 这是一个绘图API,因此应该对它进行处理。 使用OpenGL可以读回(整个)纹理(尽管效果不是很好)。 在OpenGL-ES上,没有直接的方法来读取纹理数据。
您已将整个纹理图像放在常规缓冲区中? 很好,因为这就是你想要操作的东西。 读回单个像素的颜色只是愚蠢的,因为它会在函数调用开销的情况下堵塞CPU。
将png解码为常规缓冲区。 通过glGenTextures创建纹理; 通过glBindTexture绑定纹理; 通过glTexImage2D将图像加载到纹理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.