我将体积数据加载为 8 位 GL_LUMINANCE 纹理。
我已经发布了一个关于如何在 OpenGL ES 2.0 中直接加载 16 位亮度纹理的问题,但我没有得到解决方案。因此,为了加载 16 位数据,我尝试将 16 位值重新缩放为 8 位,如下所示:
newvol[i] = 255 * (oldVol[i] + 32768)/66536;
我确认 16 位数据是短符号的。对于下面显示的数据集,我发现最小值/最大值为 (-32768, 32516)
但是上面的转换会产生伪影(剪辑?),如下面的横截面所示:
转换错了吗?有没有更好的方法来转换为 8 位?