[扫盲帖]  3D画面中,多边形以及锯齿的关系

2004-05-13 23:34 | EyesOnline

写给rookie们看的帖,对这两个概念模糊的老兄实在太多了,经常能看到一些不知所云的推论 - -|||

下面尽量会写得通俗一点...还看不懂的可以去买块豆腐撞死算了 - -b

以球体为例,
图1中的球体,Segments=15
图2中的球体,Segments=50

图1:


图2:


两张图的右侧是局部放大400%后的结果

可以明显看出,图2的球体用了更多的多边形,所以边缘要圆滑了很多,
但是,同样也可以明显看出,无论模型本身用了多少多边形,在没有使用抗锯齿输出时,边缘始终会有锯齿

在屏幕上,画面是由像素构成的,
比如800x600分辨率的一个画面,就是由800x600个像素所构成,
每一个像素就是一个正方形的小方块

3D画面输出到屏幕上,最终显示的结果也只是一张平面的图片,所以同样也是以像素所构成

在不具备抗锯齿的条件下,画面就会产生锯齿,而锯齿的每一个直角的小阶梯,就是一个个像素所构成的

而抗锯齿这样的技术,其算法是相当消耗资源的,
以目前主流PC和游戏主机的机能,是无法在实时演算的画面中通过软件来做到抗锯齿的,
必须由硬件来完成,比如Geforce4Ti4200之类的显卡就具备FSAA功能,
但目前的一些主流游戏主机,比如PS2,是不具备抗锯齿功能的硬件的,因此PS2上所有游戏的所有实时演算的3D画面都存在同样的锯齿,
平时在网络上能看到的一些PS2游戏的高清晰的没有锯齿的截图,那是在开发机上的截图,而不是PS2实机截图

先以一张平面图片为例:


所谓的抗锯齿,就是在对象和后面背景所相交的这条边缘上,计算出一圈半透明的像素以达到柔和过度

在3D中同样也是如此,下图便是将上文中的两个球体进行抗锯齿运算后的结果:


在抗锯齿的技术应用到游戏之前,玩家都喜欢在配置条件允许的情况下,尽可能得提高3D游戏的分辨率设定,因为会觉得画面看起来更精细,原理何在呢?
就是因为分辨率越高,单个像素在屏幕上所占的面积就越小,那么构成的锯齿就越不明显,所以看起来画面就更精细...

最后再来两张实例...DC模拟器的截图

开了fsaa4x的效果:



没开fsaa4x的效果:



自己比较吧,懒得再说了...

写得有点乱...将就着看吧...

若还有兴趣的,自个儿看这两篇去吧
http://www.gameres.com/Articles/Program/Visual/Other/fsaa.htm
http://www.gameres.com/Articles/Program/Visual/3D/Antialiasing.htm








-

好好学习...天天向上... = =