在游戏开发中,降低纹理IO成本的一种常见方法是将多个mipmap纹理图像连接到一个图像,如下所示。

然而,在opengl中,纹理采样会执行双线性插值,这会导致mipmap-texture edges.How中出现伪影,从而避免伪影?
也许从最接近的纹理、uv和软件双线性插值采样是一种有效的方法,但需要额外的成本。
发布于 2019-04-24 13:33:35
在你的问题中你说
减少纹理IO成本的常用方法是将多个mipmap纹理图像连接到一个图像,如下所示。
我在想,也许您的意思是像在texture atlas中一样,但是您的示例似乎只显示了一个图像,其中包含2个map 1,4 (!)MIP映射级别2的副本,以及级别N的2^N副本!
您的目标是节省什么纹理I/O成本?据我所知(我参与图形硬件的开发已经有几年了),这让事情变得更糟。我想知道这是否可能是针对某种软件渲染器的,但是你提到了OpenGL,所以这似乎不太可能。
你为什么不坚持传统的方法呢?将顶层映射传递给API,然后手动提供较低分辨率的映射,或者,如果可用,让硬件为您生成它们?
图形硬件(至少我所涉及的所有硬件)都经过了高度优化--在内存使用、带宽和执行速度方面--以有效地处理这种情况,并且您所关心的边界问题将会消失。
顺便说一句,对于这类问题,你也可以试试https://computergraphics.stackexchange.com/社区。
https://stackoverflow.com/questions/55687599
复制相似问题