0

当格式 GL_RGB5_A1 与 unsigned_byte 纹理数据(无 mipmap)一起使用时,应用的纹理是带有 min/mag 过滤器 GL_NEAREST 的块状。当格式 GL_RGBA8 使用相同的代码时,应用的纹理是平滑的。我的假设是,对于使用 GL_NEAREST 过滤器的 RGBA8,纹理图像应该是块状的。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 格式的图像

在此处输入图像描述 在此处输入图像描述

4

1 回答 1

2

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

于 2014-05-05T08:14:42.180 回答