#7412 Score: 0
食铁兽
Participant

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