如何从没有工件的“一个”Mipmap纹理中进行采样?

问题描述 投票:0回答:1

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

One MipMapping Image

但是在opengl纹理中,采样会执行双线性插值,这会导致mipmap纹理边缘出现伪像。如何避免伪像?

也许从nearst纹理uv和软件双线性插值采样是一种有效的方法,但需要额外的成本。

c++ graphics textures texture-mapping mipmaps
1个回答
0
投票

在你的问题中,你说

降低纹理IO成本的常用方法是将多个mipmap纹理图像连接到一个图像,如下所示。

我想也许你的意思是在texture atlas,但是你的例子似乎只显示一张图片,其中包含2份MIP地图等级1份,4份(!)MIP地图等级2副本,以及2 ^ N份等级N!

您希望节省哪些纹理I / O成本?据我所知(我已经参与了多年的图形硬件开发),这使事情变得更糟。我想知道这是否适用于某种软件渲染器但是你提到OpenGL所以这似乎不太可能。

你为什么不坚持传统方法?将顶层映射传递给API,然后手动提供较低分辨率的映射,或者,如果可用,让硬件为您生成它们?

图形硬件(至少我已经参与其中)在内存带宽和执行率的使用方面进行了高度优化,以便有效地处理这种情况,并且您所关注的边界问题将会消失。

顺便说一句,对于这类问题,你也可以试试https://computergraphics.stackexchange.com/社区。

© www.soinside.com 2019 - 2024. All rights reserved.