Graphics 什么样的pic格式可以在opengl es中生成mimap

Graphics 什么样的pic格式可以在opengl es中生成mimap,graphics,opengl-es,Graphics,Opengl Es,作为标题,我以前使用.dds,它确实有效,现在我使用.png类型,它能生成mipmap吗?这里是我正在使用的函数:glTexImage2D(…)。或者是gluBuild2DMipmaps(…)更好的选择?DDS是一种包含预计算mipmaps的图像格式。就质量而言,预先计算的mipmap提供了最好的质量,因为它们可以使用高级过滤内核(如lancoz)进行离线下采样,而不必关心运行时效率 PNG不包含其他mipmap级别,因此您必须在运行时计算mipmap。但是,您不应为此使用gluBuild2DM

作为标题,我以前使用
.dds
,它确实有效,现在我使用
.png
类型,它能生成mipmap吗?这里是我正在使用的函数:
glTexImage2D(…)
。或者是
gluBuild2DMipmaps(…)
更好的选择?

DDS是一种包含预计算mipmaps的图像格式。就质量而言,预先计算的mipmap提供了最好的质量,因为它们可以使用高级过滤内核(如lancoz)进行离线下采样,而不必关心运行时效率

PNG不包含其他mipmap级别,因此您必须在运行时计算mipmap。但是,您不应为此使用
gluBuild2DMipmaps
。首先,已知该函数在某些条件下会表现出错误行为,而且它会无条件地将所有图像重新采样为2维幂次方,尽管由于OpenGL-2非2维幂次方对于纹理图像非常合适

相反,您应该使用
glTexImage2D(…)
加载基本级别的图像,并使用
glGenerateMipmap(…)
(从OpenGL-3开始提供)从中构建mipmap图像金字塔。如果不使用OpenGL-3,可以使用扩展(如果可用)

但是,请注意,在线生成mipmap的效果可能不如离线生成

另一种可能的方法是使用JPEG2000图像;JPEG2000图像编码的本质导致图像金字塔随时可用。OTOH JPEG2000的编码和解码成本非常高