在 1:20 我說右邊的 Fragment 會不正確地進行混色。實際上因為有 Z 緩衝區,右邊的 Fragment 會被左邊的遮擋掉。當我在講的時候我想到的是 Z 緩衝區只讀不寫的作法,這種作法讓所有面都有作用。這樣繪製會有混色錯誤,但通常比直接遮擋好看。

遮擋第二近的面的問題在於有時你沒有遮擋到它們。有些像素上遠的三角形先畫,有些像素上近的先畫,結果會看到不連續。「只讀不寫」的作法無法消滅不連續的問題,但能稍微減緩不連續的效果。

Dunn 和 Bavoil 寫了一篇 很棒的文章 介紹近代透明的作法。你能在 這裡 讀到更多深度剝除的資料。隨機式透明的文章 介紹了這個技巧,裡面還有其他先前做法的介紹。排序網格上的三角形使其繪製順序在任何角度都正確的論文在 這裡

這裡有個 WebGL 的 深度剝除展示,與 實作細節

還有一種作法是 Alpha to Coverage,即像素內(Sub-pixel)執行的紗門透明。它的優點在不需要排序,但當紗門的圖樣重疊時會產生假影。