【发布时间】:2012-06-01 00:49:04
【问题描述】:
我正在尝试使用用于读取图像的通用代码读取已加载浮点值的纹理,该代码尝试将其读取为(8 位)整数值。
我期待它将值限制在 0..1 并且基本上使它看起来非常可怕,但仍然可以识别。相反,它是完全黑色的,就好像它读取了所有黑色值一样。
纹理是 GL_R32F 格式,我正在尝试将其读取为 GL_UNSIGNED_BYTE,并以 GL_RGBA 作为输出。
这应该有效吗?如果没有,我应该寻找什么样的东西?
【问题讨论】:
-
您想要完成的究竟是什么?为什么要 OpenGL 进行转换?你不能把它原样读回来然后自己转换吗?
-
我正在尝试使用我的默认“读取此纹理并另存为 PNG”来读取该纹理。上传 (glTexImage) 会为您进行转换,所以我希望 glGetTexImage 也能这样做。如果这不起作用,我将不得不自己破解它,这是更多的代码和更多的工作......
-
数学上,你在寻找什么转换?给定一个存储在纹理中的浮点值,你想取回什么整数值?您希望应用于这些值的数学方程式是什么?
-
嗯...与加载带有浮点值的整数纹理相同。它将 0...1 转换为 0...
。我期待 0...1 转换为 0...255 并获得具有过饱和区域的黑白图像。相反,它是黑色的。 -
glGetTexImage后glGetError()是否报错?
标签: opengl floating-point int textures