Vykreslovat dvakrát je nesmysl. Když vykresluješ (polo)průhledné objekty, tak správně to bude jen když to vykreslíš od nejvzdálenějšího po nejbližší. Dělá se to třeba tak, že vykreslíš nejdříve neprůhledné objekty (ideálně od nejbližšího po nejvzdálenější) se zápisem do depth bufferu a pak vykreslíš průhlední objekty od nejvzdálenějšího po nejbližší (není třeba zapisovat do depth bufferu).
Pokud máš v nějakém trojúhelníku jen zcela viditelné a zcela průhledné fragmenty (žádné poloprůhledné), tak se trojúhelník považuje za neprůhledný a průhledné fragmenty jsou vyřazeny alpha testem, takže nedojde k zápisu do depth bufferu.
Problém je v tom, když některé trojúhelníky nejde jednoznačně seřadit podle hloubky. To už je výpočetně náročnější a tam nemám zkušenost s tím, jak to řešit. Nejjednodužším řešením je v takovém případě rozdělit trojúhelníky na menší tak, aby se tam tento problém nevyskytoval. Ale to taky často nejde moc dobře.