Hi,
ich bin gerade mit dem Buch "3D-Spieleprogrammierung mit DirectX9 und C++" fertig geworden und habe angefangen ein "3D 5Gewinnt" zu schreiben.
Das Spiel ist an sich schon ziemlich fertig.
Jetzt wollt ich allerdings die Spielsteine, die von oben auf ein brett herunterfallen, transparent machen. Jetzt überschneiden sich die Steine nach einer Kamera drehung allerdings manchmal so, dass die hinteren Steine die vorderen überlappen (weil ja der Z-Buffer aus ist).
Jetzt müsste ich sie doch eigentlich der Entfernung zur Kamera nach ordnen und dann in dieser Reihenfolge rendern?
Dummerweise gibt es bis zu 216 Steine und daher erscheint es mir ein bisschen irrsinnig. Welche möglichkeiten habe ich in diesen Fall, bzw. was hab ich vercheckt?
Zum Alpha-Blending hab ich folgende Einstellung hergenommen (auszug aus Effekt-Datei):
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[...]
AlphaBlendEnable = True;
SrcBlend = SrcColor;
DestBlend = InvSrcColor;
CullMode = CW;
ZWriteEnable = False;
}
PASS P2
{
// Das gleiche mit den vorderen Dreiecken
CullMode = CCW;
}
}
|