Opengl es 片段着色器16位纹理访问

Opengl es 片段着色器16位纹理访问,opengl-es,Opengl Es,我正在使用“OES_texture_half_float”扩展,但无法从通过photoshop导出的png纹理中读取16位值 gl.texImage2D gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.HALF_FLOAT, texture.image) 从teximage2d(uSampler,vtexturecord)获取的值不会产生正确的结果。关于我可能做错了什么?嗯,我非常确定PNG的16位像素格式是定点(无符号规范化),而不

我正在使用“OES_texture_half_float”扩展,但无法从通过photoshop导出的png纹理中读取16位值

gl.texImage2D  gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.HALF_FLOAT, texture.image)

teximage2d(uSampler,vtexturecord)
获取的值不会产生正确的结果。关于我可能做错了什么?嗯,我非常确定PNG的16位像素格式是定点(无符号规范化),而不是浮点。如果是浮点格式,就不需要像OpenEXR这样的特殊格式。如果您试图将无符号规格化为半浮点数的像素数据传输到GLES中,将得到纯垃圾,它不支持数据转换。感谢您的更正。对于我来说,从数据表中获取纹理信息的更好方法似乎是使用OES_texture_float并绑定到使用FloatArray32创建的纹理。有什么我应该警惕的吗?你是如何从PNG数据生成纹理的输入数据的?您不能将16位定点直接输入到OpenGL ES中-应用程序必须在上传之前将其转换为OpenGL格式。使用float32和float16的问题完全相同-原始数据不是这种格式。值是从另一个3d应用程序生成的,然后通过javascript解析,然后创建一个包含浮点值的映射。嗯,我非常确定PNG的16位像素格式是定点(无符号规范化),而不是浮点。如果是浮点格式,就不需要像OpenEXR这样的特殊格式。如果您试图将无符号规格化为半浮点数的像素数据传输到GLES中,将得到纯垃圾,它不支持数据转换。感谢您的更正。对于我来说,从数据表中获取纹理信息的更好方法似乎是使用OES_texture_float并绑定到使用FloatArray32创建的纹理。有什么我应该警惕的吗?你是如何从PNG数据生成纹理的输入数据的?您不能将16位定点直接输入到OpenGL ES中-应用程序必须在上传之前将其转换为OpenGL格式。使用float32与float16的问题完全相同-原始数据不是该格式。值是从另一个3d应用程序生成的,然后通过javascript解析,javascript随后创建包含浮点值的映射。