簡體   English   中英

OpenGL ES 2.0:帶浮點或half_float紋理的glReadPixels()

[英]OpenGL ES 2.0 :glReadPixels() with float or half_float textures

我正在為iPhone(iOS 4.1)編寫一個OpenGL ES 2.0應用程序。 在計算結束時,在着色器中完成,我需要將一些數據寫回CPU。 據我所知,這可以通過glReadPixels()來完成。 為了保持精度,我想在着色器之間使用half_float或浮動紋理,這似乎是擴展支持的。

問題:是否可以使用glReadPixels()讀取float或half_float紋理?

謝謝,

拉爾斯

我也遇到過這個問題。 對於iOS,您可以使用GL_EXTENSIONS參數檢查可用的擴展名列表 - 必須出現GL_OES_texture_float。 但! 根據規范,這不提供從GPU讀取浮點值的機會。 這是來自glReadPixels()docs:

只接受兩個格式/類型參數對。 始終接受GL_RGBA / GL_UNSIGNED_BYTE,並且可以通過查詢GL_IMPLEMENTATION_COLOR_READ_FORMAT和GL_IMPLEMENTATION_COLOR_READ_TYPE來發現其他可接受的對。

因此,您可以使用以下代碼檢查可閱讀的可用類型/格式:

GLint ext_format, ext_type;
glGetIntegerv(GL_IMPLEMENTATION_COLOR_READ_FORMAT, &ext_format);
glGetIntegerv(GL_IMPLEMENTATION_COLOR_READ_TYPE, &ext_type);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM