【发布时间】:2015-09-17 23:07:58
【问题描述】:
我有一个 16 位灰度 PNG,值在 [0,65535] 中,我在 WebGL 中用作纹理:
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
在着色器中,我只读取 R 组件并使用该值从颜色表中查找 RGBA。
这很好用。但是我真的不明白这里发生了什么。图像每个像素有 2 个字节。相反,我告诉 WebGL 它有 4 个组件,每个组件 1 个字节。我认为这将导致读取两个像素而不是一个。
图像的精度为 2 字节。由于每个组件都被指定为只有 1 个字节,我想知道;这样做会不会降低精度?
理想情况下,我只想向 GPU 发送一个 16 位通道 R。 我该怎么做?
【问题讨论】: