Board logo

标题: 3D游戏的锯齿一直以来让人郁闷,但是锯齿产生的原理到底是啥? [打印本页]

作者: OpEth    时间: 2008-6-2 23:40     标题: 3D游戏的锯齿一直以来让人郁闷,但是锯齿产生的原理到底是啥?

锯齿一直是战区一个永恒的话题,也让很多人领悟了写轮眼的秘奥义,但是锯齿到底为什么会无法消除呢?有没有液内达人可以从技术上阐述一下这个问题?
作者: yamazaki120    时间: 2008-6-2 23:44

酒瓶你又开始蛋痛了。。  咱比如说个圆圈吧 把一个圆圈放大NNNNNNN多倍 不是矢量图你会看到什么
作者: 卖哥    时间: 2008-6-2 23:48

因为光栅化图形学就是判断什么东西在前面来实现3D显示效果的技术。
一件东西在一个像素上只有两元的判断,在前或者在后,是这个东西或者已经超出范围。
这样就无法生成平滑的边缘。
锯齿当然可以消除,抗锯采样级数超过色深级数就可以完美消除,换而言之,对非HDR的图像来说,256XAA就可以完全消除锯齿。
作者: zo    时间: 2008-6-2 23:49

瓶子不是搞cad的么?这也要问?
作者: 索尼反装x    时间: 2008-6-2 23:49

一言蔽之,基能不足
作者: 谁家那个小那谁    时间: 2008-6-3 08:11

要是一句话来说
就是 多边形还是不够多
作者: dragonfly    时间: 2008-6-3 08:30

引用:
原帖由 谁家那个小那谁 于 2008-6-3 08:11 发表
要是一句话来说
就是 多边形还是不够多
锯齿和多边形扯上关系了
作者: OpEth    时间: 2008-6-3 09:09

引用:
原帖由 zo 于 2008-6-2 23:49 发表
瓶子不是搞cad的么?这也要问?
CAD可没锯齿。。。。。
作者: OpEth    时间: 2008-6-3 09:10

引用:
原帖由 yamazaki120 于 2008-6-2 23:44 发表
酒瓶你又开始蛋痛了。。  咱比如说个圆圈吧 把一个圆圈放大NNNNNNN多倍 不是矢量图你会看到什么
3d模型和点阵图像是两码事好吧,3d模型上的每一个点都有对应的矢量坐标的。。。。。

在3d建模软件中,你把一个立方体放大一百倍,丫不还是一个立方体么。。。。。

[ 本帖最后由 OpEth 于 2008-6-3 09:11 编辑 ]
作者: yang_p_p    时间: 2008-6-3 11:17

CAD打出来没锯齿,电脑上显示是有的。随便画个斜线就可以看出来是一段一段的。
3D的话渲出来就没锯齿,游戏机上玩的应该都是“没渲出来的“,什么时候机能达到实时渲染就没锯齿了。
2D的话FLASH就没锯齿。
作者: 六翼天使    时间: 2008-6-3 12:09

引用:
原帖由 谁家那个小那谁 于 2008-6-3 08:11 发表
要是一句话来说
就是 多边形还是不够多
您补补课先
作者: 谁家那个小那谁    时间: 2008-6-3 12:25

引用:
原帖由 六翼天使 于 2008-6-3 12:09 发表


您补补课先
战区战习惯了 :D
作者: hyperiris    时间: 2008-6-3 13:07

引用:
原帖由 yang_p_p 于 2008-6-3 11:17 发表
CAD打出来没锯齿,电脑上显示是有的。随便画个斜线就可以看出来是一段一段的。
3D的话渲出来就没锯齿,游戏机上玩的应该都是“没渲出来的“,什么时候机能达到实时渲染就没锯齿了。
2D的话FLASH就没锯齿。:ro ...
买本《计算机图形学》补补课吧。
作者: OpEth    时间: 2008-6-3 13:08

引用:
原帖由 yang_p_p 于 2008-6-3 11:17 发表
CAD打出来没锯齿,电脑上显示是有的。随便画个斜线就可以看出来是一段一段的。
3D的话渲出来就没锯齿,游戏机上玩的应该都是“没渲出来的“,什么时候机能达到实时渲染就没锯齿了。
2D的话FLASH就没锯齿。:ro ...
CAD的锯齿是以像素为单位的,这是没办法的事情,任何在显示器上显示的斜线都是有锯齿的,这是显示器的物理结构造成的,不过3D游戏中的锯齿并非如此。。。。。
作者: djm    时间: 2008-6-3 13:11

点阵和矢量的关系吧
作者: OpEth    时间: 2008-6-3 14:15

233,目前居然还没有一个靠谱的回复。。。。。
作者: 卖哥    时间: 2008-6-3 14:26

我认为我已经解答了

光栅化图形学就是从显示出来的每一个像素往前指,去判断那个像素所对应的位置上最前面的东西是什么,然后把这个东西在这点上的颜色显示出来。

因为是逐像素的二元判断,所以非黑即白,显示出来就成了锯齿。
作者: OpEth    时间: 2008-6-3 14:28

引用:
原帖由 卖哥 于 2008-6-3 14:26 发表
我认为我已经解答了

光栅化图形学就是从显示出来的每一个像素往前指,去判断那个像素所对应的位置上最前面的东西是什么,然后把这个东西在这点上的颜色显示出来。

因为是逐像素的二元判断,所以非黑即白,显示 ...
可惜锯齿的尺寸并非是以像素为单位的。。。。。
作者: 卖哥    时间: 2008-6-3 14:30

必然是以像素为单位的,看PS3、XO的原始分辨率就是这个原理。
因为锯齿必然是1个像素宽的,如果出现不符合的锯齿,必然是插值了,然后通过比例可以计算出原始分辨率。
作者: hugang    时间: 2008-6-3 14:42

抹布,看不懂,太申奥了。
我以为美工画的图如果有50寸,在50寸的电视机上玩,就不会有锯齿,放到60寸电视机上就有了:D
作者: OpEth    时间: 2008-6-3 14:54

引用:
原帖由  于 2008-6-3 14:30 发表 必然是以像素为单位的,看PS3、XO的原始分辨率就是这个原理。  因为锯齿必然是1个像素宽的,如果出现不符合的锯齿,必然是插值了,然后通过比例可以计算出原始分辨率。
那抗锯齿还有毛用,显示器上任何一条斜线都不可能平滑,因为液精点阵的排列方式是矩阵形式,不过3D游戏的锯齿可不仅仅是一个像素那么大哦。。。。。

[posted by wap]


作者: dragonfly    时间: 2008-6-3 14:55

引用:
原帖由 OpEth 于 2008-6-3 14:28 发表

可惜锯齿的尺寸并非是以像素为单位的。。。。。
是以渲染图像的像素为单位的.
作者: dragonfly    时间: 2008-6-3 14:57

引用:
原帖由 hugang 于 2008-6-3 14:42 发表
抹布,看不懂,太申奥了。
我以为美工画的图如果有50寸,在50寸的电视机上玩,就不会有锯齿,放到60寸电视机上就有了:D
电视机分辨率和电视机尺寸有关系么?
作者: firesun    时间: 2008-6-3 15:04

引用:
原帖由 OpEth 于 2008-6-3 14:54 发表
那抗锯齿还有毛用,显示器上任何一条斜线都不可能平滑,因为液精点阵的排列方式是矩阵形式,不过3D游戏的锯齿可不仅仅是一个像素那么大哦。。。。。

[posted by wap]
抗锯齿就是通过颜色抖动使得显示效果平滑。
这是原始图,基本看做没有锯齿。
[attach]65781[/attach]
然后放大到300×300,锯齿出现了。
[attach]65782[/attach]
这个是使用B-Spline算法放大的效果,姑且看做抗锯齿……
[attach]65783[/attach]
其实你在photoshop里面画一条斜线,除了基本色之外的颜色就可以看做抗锯齿的……

[ 本帖最后由 firesun 于 2008-6-3 15:05 编辑 ]
作者: 卖哥    时间: 2008-6-3 15:09

引用:
原帖由 OpEth 于 2008-6-3 14:54 发表
那抗锯齿还有毛用,显示器上任何一条斜线都不可能平滑,因为液精点阵的排列方式是矩阵形式,不过3D游戏的锯齿可不仅仅是一个像素那么大哦。。。。。

[posted by wap]
抗锯齿的原理是增加采样量
从原来的非0即1变成有更多级数,然后像素显示的就是按比例混合后的颜色。
不是消灭锯齿而是造成过渡。
但是采样次数达到色深级数的话,锯齿就可以完全看不见了。

至于锯齿当然不一定是一个像素大,但一定是一个像素宽。
作者: 奎罗兹    时间: 2008-6-3 15:18

这样的?
        oooo
    oooo
oooo

      oooooo
  oooooo
oooo
作者: tooomy    时间: 2008-6-3 15:22

无所谓,只要游戏好玩,有点锯齿也忍了
作者: OpEth    时间: 2008-6-3 15:36

这么说来,锯齿是因为分辨率不够造成的?只要游戏原始分辨率和显示器物理分辨率一致就不会产生超过一个像素宽度的锯齿?

另外,一个像素宽度的锯齿在现有显示技术下不可能消除,因为一个像素只可能显示一个颜色。。。。。

[posted by wap]


作者: RVR    时间: 2008-6-3 15:36

基本没错,就是那样。锯齿可以通过AA技术弥补。

我搜到的,别战我:
http://bbs.levelup.cn/showtopic-574954-1.aspx

[ 本帖最后由 RVR 于 2008-6-3 15:38 编辑 ]
作者: 谁家那个小那谁    时间: 2008-6-3 15:46

为什么图片社用的DC都是高分辨率?
就是图片社出的片子多半都是大尺寸的。试想把200W像素拍的片子放大到20寸出片,看看什么现象?
在比如马赛克,离近了看什么都不是,而且“锯齿”明显。离远了才能看出来组合的是什么东西。
我想锯齿都一个道理吧
作者: 卖哥    时间: 2008-6-3 15:56

抗锯齿的方法有不少

最早的时候抗锯就是放大渲染时候的分辨率,然后4个像素合并一个像素匀色。

现在则是对一个像素内的不同位置进行取样,把取样后的结果混合。

结果都是制造过渡色来让锯齿变得不明显。

抗锯技术可以在视觉上完全消除锯齿,方法就是取样级数达到或超过颜色的色深级数,换而言之,对于非HDR的图像来说,就是256XAA。
作者: OpEth    时间: 2008-6-3 15:58

引用:
原帖由 谁家那个小那谁 于 2008-6-3 15:46 发表
为什么图片社用的DC都是高分辨率?
就是图片社出的片子多半都是大尺寸的。试想把200W像素拍的片子放大到20寸出片,看看什么现象?
在比如马赛克,离近了看什么都不是,而且“锯齿”明显。离远了才能看出来组合的是 ...
照片和显示器没可比性,照片的点距多大?显示器的点距又多大?两者完全不是一个数量级的。。。。。

话说只要把分辨率做到点对点,俺觉得这样的锯齿可以接受,毕竟这已经是显示设备的极限。。。。。

[ 本帖最后由 OpEth 于 2008-6-3 16:00 编辑 ]
作者: 索尼反装x    时间: 2008-6-3 15:59

引用:
原帖由 OpEth 于 2008-6-3 15:58 发表

照片和显示器没可比性,照片的点距多大?显示器的点距又多大?两者完全不是一个数量级的。。。。。
ssaa原理一样。。
作者: 谁家那个小那谁    时间: 2008-6-3 16:00

引用:
原帖由 卖哥 于 2008-6-3 15:56 发表
抗锯齿的方法有不少

最早的时候抗锯就是放大渲染时候的分辨率,然后4个像素合并一个像素匀色。

现在则是对一个像素内的不同位置进行取样,把取样后的结果混合。

结果都是制造过渡色来让锯齿变得不明显。

...
就是边缘像素插值的道理
作者: dragonfly    时间: 2008-6-3 16:21

发个图吧
作者: dragonfly    时间: 2008-6-3 16:24

再来一个
作者: 凤凰    时间: 2008-6-3 16:59

有锯齿才是美,没有光不溜丢的难看死了
作者: dragonfly    时间: 2008-6-3 17:48

引用:
原帖由 凤凰 于 2008-6-3 16:59 发表
有锯齿才是美,没有光不溜丢的难看死了

原来自然界这么丑陋
作者: OpEth    时间: 2008-6-3 17:50

LS很强。。。。。

长知识了。。。。。
作者: dragonfly    时间: 2008-6-3 18:02

引用:
原帖由 OpEth 于 2008-6-3 17:50 发表
LS很强。。。。。

长知识了。。。。。
瓶子你也是我的偶像
作者: Redofish    时间: 2008-6-6 18:29

没有狗牙的游戏是不完整的
作者: aquasnake    时间: 2008-6-7 17:48

用二进制的离散数字来量化现实连续模拟量所造成的数码阶越失真
作者: aquasnake    时间: 2008-6-7 18:03

对于需要拉伸缩小原始像素而在目标显示器分辨率上显示的话,还需要另一个比例放大的算法,当比例并非2^n的时候,就有很大的误差,此误差足可以让显示图象边缘的锯齿以至少2倍以上点距而被肉眼察觉。

以TV为例子,CRT的扫描,由于行扫描的连续性,所以水平锯齿在CRT上不明显,垂直锯齿则很可观,NTSC比PAL在垂直边缘的断续性更大
逐行的CRT显示器,垂直锯齿好点,但垂直方向上还是不如水平方向自然。

LCD,PDP,由于是数字驱动点阵,如果同样的片源,内部不做DSP数字滤波处理,点对点输出,清晰度比CRT好很多,但非点对点,则让信号更劣化。要么模糊不堪(数字处理太多损失边缘细节),要么马赛克现象严重(简单象素复制无抗锯齿滤波),这是个矛盾。

简单地说,CRT可以用技术本身的磁场控制电子冲击的运动轨迹来自然地完成“水平抗锯齿”的效果而不需要显示器内置DSP或者片源输出的后端做抗锯齿处理。

个人很喜欢CRT,如果有先进的柔性有机透明材料技术代替玻管的话,CRT还会老树出新枝

[ 本帖最后由 aquasnake 于 2008-6-7 18:08 编辑 ]
作者: gary1985    时间: 2008-6-8 00:23

数字信号 电视 似乎矩尺就有,模拟信号电视 模糊效果和扫描线 抗矩尺很有道啊!
作者: 久多良木健    时间: 2008-6-9 01:50

引用:
原帖由 OpEth 于 2008-6-3 15:36 发表
这么说来,锯齿是因为分辨率不够造成的?只要游戏原始分辨率和显示器物理分辨率一致就不会产生超过一个像素宽度的锯齿?

另外,一个像素宽度的锯齿在现有显示技术下不可能消除,因为一个像素只可能显示一个颜色。。 ...
几年前toms有过crt上的对比,1600x1200 no aa和1024x768 4x aa对比,结果是1600x1200 no aa锯齿更小,结论更高分辨率效果比aa更好。

的确不可消除,但是可以做成颜色混合,让你分不出这个像素和其他像素之间的明显差别
作者: 叁伍    时间: 2008-6-9 04:19

引用:
原帖由 firesun 于 2008-6-3 15:04 发表

抗锯齿就是通过颜色抖动使得显示效果平滑。
这是原始图,基本看做没有锯齿。
65781
然后放大到300×300,锯齿出现了。
65782
这个是使用B-Spline算法放大的效果,姑且看做抗锯齿……
65783
其实你在photos ...
最后一张图让我记起那些PS2游戏带给我的痛苦的回忆
作者: horsearmor    时间: 2008-6-9 10:25

引用:
原帖由 久多良木健 于 2008-6-9 01:50 发表

几年前toms有过crt上的对比,1600x1200 no aa和1024x768 4x aa对比,结果是1600x1200 no aa锯齿更小,结论更高分辨率效果比aa更好。

的确不可消除,但是可以做成颜色混合,让你分不出这个像素和其他像素之间的明 ...
显示器尺寸都没提……

几年前哪张显卡哪个游戏上到1600X1200?
作者: arex    时间: 2008-6-9 11:13

反正22寸1680x1050的分辨率,开不开AA是一眼就能看出来
作者: 久多良木健    时间: 2008-6-9 13:19

引用:
原帖由 horsearmor 于 2008-6-9 10:25 发表


显示器尺寸都没提……

几年前哪张显卡哪个游戏上到1600X1200?
q3啊,gf3
crt 19寸
作者: horsearmor    时间: 2008-6-9 16:58

19寸CRT,1600X1200那点距够了

22寸不开绝对完蛋




欢迎光临 TGFC Lifestyle (http://tgfcer.com/) Powered by Discuz! 6.0.0