PS Vita屏幕的分辨率是544p,PSP游戏的分辨率是272p,长宽都是两倍,像素的数量是四倍。大家可以想象一下,vita屏幕上每个2X2的色块,都会对应psp游戏的一个像素,对不对?
如何决定这些2X2的色块的颜色值呢?我们需要一种插值方法。
假如我们不勾选双重线性过滤,那vita就会进行Nearest-neighbor interpolation。
在这个情况下,每个2X2的色块(含四个像素),它们最邻近的像素就是那个对应的psp游戏的像素。因为是选取最邻近像素的颜色,所以屏幕上每个2X2的色块都是同一个颜色。
打个直观的比喻,就好像是一个像素生出了好几个相同的像素。这就是最邻近方法的核心思想。
假如我们勾选了双重线性过滤,那vita就会进行更多的计算了。
这时候,针对vita屏幕上的每个像素,GPU会去找离它最近的四个psp游戏的像素。有了这四个像素之后,再分别根据自己与它们之间的距离,做加权平均值(Weighted average)。距离越近,权重就越大。
简单的说,每一个新像素都会受到几个旧像素的染色,最后会出现一个比较平滑过渡的结果。
以上就是过滤(filtering)最基本的思想。无论是单纯的把小图像放大,还是应用到纹理上,大致都是这样一个思路。
最后提一下,双重线性过滤在视频播放器和模拟器中应用的很多,它是把分辨率低的图像放大的常用方法。
关心更多细节的玩家,可以参考这篇:https://msdn.microsoft.com/en-us/library/windows/desktop/bb172357(v=vs.85).aspxus/library/windows/desktop/bb172357%28v=vs.85%29.aspx
好,今天的内容就结束啦~
最开始我们提到过,N64的GPU支持三重线性纹理过滤(Trilinear texture filtering)。那么,三重是什么?纹理过滤又有什么不一样呢?大家明天见!
如何决定这些2X2的色块的颜色值呢?我们需要一种插值方法。
假如我们不勾选双重线性过滤,那vita就会进行Nearest-neighbor interpolation。
在这个情况下,每个2X2的色块(含四个像素),它们最邻近的像素就是那个对应的psp游戏的像素。因为是选取最邻近像素的颜色,所以屏幕上每个2X2的色块都是同一个颜色。
打个直观的比喻,就好像是一个像素生出了好几个相同的像素。这就是最邻近方法的核心思想。
假如我们勾选了双重线性过滤,那vita就会进行更多的计算了。
这时候,针对vita屏幕上的每个像素,GPU会去找离它最近的四个psp游戏的像素。有了这四个像素之后,再分别根据自己与它们之间的距离,做加权平均值(Weighted average)。距离越近,权重就越大。
简单的说,每一个新像素都会受到几个旧像素的染色,最后会出现一个比较平滑过渡的结果。
以上就是过滤(filtering)最基本的思想。无论是单纯的把小图像放大,还是应用到纹理上,大致都是这样一个思路。
最后提一下,双重线性过滤在视频播放器和模拟器中应用的很多,它是把分辨率低的图像放大的常用方法。
关心更多细节的玩家,可以参考这篇:https://msdn.microsoft.com/en-us/library/windows/desktop/bb172357(v=vs.85).aspxus/library/windows/desktop/bb172357%28v=vs.85%29.aspx
好,今天的内容就结束啦~
最开始我们提到过,N64的GPU支持三重线性纹理过滤(Trilinear texture filtering)。那么,三重是什么?纹理过滤又有什么不一样呢?大家明天见!