Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 作业二提高部分思考 › Reply To: 作业二提高部分思考
食铁兽
Participant
我是这样理解的:
出现黑边的原因在于先画绿三角后画蓝三角。这样的话先画绿三角的边会得到i/4绿+(4-i)/4黑,因此在边界生成了看起来像黑的颜色。而再画蓝三角时这边直接z值过高给舍弃了。反之先画z值高的蓝三角就不会出现这个问题,因为蓝色取代了背景黑色。
然而实际绘制先后顺序无法决定。在demo中也许可以改变顶点顺序来调整顺序,但复杂一点的场景就无法解决这个问题。如果在画z值较大的三角形时对每个像素判定是否在z值小的三角形边上,且这条边两侧中只有一侧与其他三角形接壤,那似乎又要用一个屏幕大小的buffer来储存这个信息。
当然实际肯定是有解决方法的,然而我不知道。。。找了半天也就看到一个关于这个的讨论。希望有大佬能够解答吧。。。