对于格式为GL_RGBA8且带有无符号字节和格式的纹理,是否期望块效min / mag过滤器GL_NEAREST?

时间:2014-05-05 06:54:51

标签: opengl-es-3.0

当格​​式GL_RGB5_A1与unsigned_byte纹理数据(无mipmap)一起使用时,应用的纹理是块状的,其中min / mag过滤器为GL_NEAREST。 当用于格式GL_RGBA8的相同代码时,应用的纹理是平滑的。我的假设是对于RGBA8也使用GL_NEAREST滤镜,纹理图像应该是附着的块状。 OPGNELES 3.0支持这种格式和纹理类型。 它是使用glTexImage3D应用的尺寸为256x256x256的3D纹理,视口设置为640x480。 纹理生成如下

for(k = 0; k < 256; k++) for(j = 0; j < 256; j++) for(i = 0; i < 256; i++)
{
    pUBPointer[0] = 255-i;
    pUBPointer[1] = 255-j;
    pUBPointer[2] = 255-k;
    pUBPointer[3] = 0xFF;

    pUBPointer += 4;
}

预期吗?

  1. 格式为RGB5_A1的图片
  2. 格式RGBA8的图片
  3. enter image description here enter image description here

1 个答案:

答案 0 :(得分:2)

按预期工作。 nearest只从最近的texel纹理中获取一个样本。 RGB8纹素(在一个方向上)之间的差异是1/256 - 这在视觉上几乎是不可分割的。但是,对于RGB5,每种颜色只分配5位,因此差值为1/32。