我现在正在编写一个程序,用GL阴影语言帮助使用GPU生成纹理。但是,我想知道是否可以获取存储在纹理中的数据并将其写入数组中?是否有可能获得存储在纹理中的数据在opengl es 2.0
1
A
回答
1
这不是什么大不了的,如果你有glGetTexImage*()。
如果glGetTexImage *()不可用,则必须将纹理四边形渲染到连接到FBO(如果支持)的渲染缓冲区,或渲染到后台缓冲区并使用glReadPixels()从要么渲染目标。如果渲染目标的大小不足,则必须分别渲染和检索多个贴图。
在实施任一方法,注意到其他状态,它决定如何以及在何处的像素实际上将被写入到:
GL_PACK_ALIGNMENT
(图像线对准; 1,2,4或8个字节)时需要为请求的图像大小分配适当的内存。例如,一个24位DIB(.bmp)使用4个字节的行对齐。每像素3个字节,最后需要填充,如果(image.width * 3) % 4 != 0
。 附加填充字节总量为:readSize.y * ((alignment - readSize.x % alignment) % alignment)
。GL_PIXEL_PACK_BUFFER
,像素传输的目标缓冲区绑定(可能在您的情况下未使用并显式设置为0)。
相关问题
- 1. 的OpenGL ES 2.0:在纹理
- 2. OpenGL ES 2.0纹理
- 3. 的OpenGL ES 2.0 - 复制纹理数据
- 4. 使用OpenGL ES的纹理缓存,而不是glReadPixels获得的纹理数据
- 5. 设置OpenGL ES 2.0纹理
- 6. opengl es 2.0纹理坐标
- 7. OpenGL es 2.0 Android纹理
- 8. OpenGL ES 2.0 - 画纹理?
- 9. OpenGL ES 2.0衍生纹理
- 10. opengl es 2.0纹理加载
- 11. Android OpenGL ES 2.0纹理
- 12. 纹理被拉伸在android opengl es 2.0
- 13. OpenGL ES 2.0中的浮点纹理
- 14. 从OpenGL ES 2.0中的纹理读取
- 15. OpenGL ES 2.0中的模版纹理
- 16. OpenGL ES 2.0中的纹理点?
- 17. OpenGL ES 2.0中的纹理图集
- 18. 如何在OpenGL ES 2.0中使用2D纹理渲染3d纹理数据?
- 19. 是否有可能获得供应商特定的OpenGL ES 2.0方法列表?
- 20. OpenGL ES 2.0 - 渲染纹理时减少存储空间
- 21. 纹理计划 - 的OpenGL ES 2.0的Android
- 22. Android的OpenGL ES 2.0的黑色纹理
- 23. 在OpenGL ES 2.0的显示函数中生成纹理
- 24. 在Android中获得最大的OpenGL ES 2.0纹理大小限制
- 25. opengl es 2.0纹理正确的方式
- 26. 负载多纹理的OpenGL ES 2.0
- 27. OpenGL 2.0 es Android的framebuffer纹理
- 28. OpenGL ES纹理内存
- 29. Android NDK OpenGL ES 2.0纹理间距
- 30. OpenGL ES 2.0加载动态纹理
谢谢你的协助。它似乎支持函数glReadPixels,我会尝试它。 – Timothy
不客气,快乐的编码! – Sam