3

我现在正在尝试使用片段着色器来处理纹理上的图像。但是,我发现片段着色器仅支持 10 位浮点数,因此当屏幕长度为 1280 像素时,我无法获取存储在像素中的值,因为我无法使用 10 位来采样 1280 像素.

我想知道如何准确地获得大纹理上的像素?

4

1 回答 1

0

浮点数有 3 种不同的精度格式。OpenGL ES 着色语言参考说:

  1. highp: 16 位,浮点范围:-2^62 到 2^62,整数范围:-2^16 到 2^16
  2. mediump: 10 位,浮点范围:-2^14 到 2^14,整数范围:-2^10 到 2^10
  3. lowp: 8 位,浮点范围:-2 到 2,整数范围:-2^8 到 2^8

为了能够从 >1024x1024 纹理中采样,您必须highp通过将以下代码放在GLSL程序开头来切换精度。

precision highp float;
于 2012-11-09T12:29:43.147 回答