Hi!
In meinem 3D-Spiel habe ich schon vor einiger Zeit eine Skysphere (Skybox als Kugel) eingebaut. Keine Probleme macht es mir, auch Objekte dahinter zeichnen zu lassen, dafür reicht ja:
Allerdings kamen heute 2 neue Probleme dazu:
1. Schatten auf Skysphere
Das Problem sollte nicht allzu groß sein. Ich arbeite ja mit Stencil-Buffer Schatten. (da hatte ich ja auch einige Probleme )
Vom Prinzip her müsste es ja eigentlich das gleiche sein, wie beim Depth-Buffer. Meine 2 Ansätze waren:
1.
Aber da kommt totaler Mist raus. Okay, als ich im Nachhinein nachgeschaut habe, wie ich die Schatten gemacht habe, ist es auch logisch, dass sowas rauskommt, da dann der Rest direkt in den Stencil-Buffer gezeichnet wird und somit als Schatten dargestellt wird.
2.
Sah zwar besser aus, allerdings wurden dann die Schatten nicht vollständig gezeichnet.
2. Antialiasing verursacht bläuliche Linien
Das viel wichtigere Problem ist, dass ich, wenn ich Antialiasing bei Linien mithilfe folgender Zeile einschalte:
haben die Linien, wenn ich den Himmel zeichnen lasse immer eine leicht bläuliche Färbung.
Wovon kommt das?
Anhang 1: mit Himmel, ohne Antialiasing
Anhang 2: mit Himmel, mit Antialiasing <--- Linien leicht bläulich
Anhang 3: ohne Himmel, mit Antialiasing
mfg tdc
In meinem 3D-Spiel habe ich schon vor einiger Zeit eine Skysphere (Skybox als Kugel) eingebaut. Keine Probleme macht es mir, auch Objekte dahinter zeichnen zu lassen, dafür reicht ja:
Java:
glDisable(GL_DEPTH_TEST);
...
//Skysphere wird gezeichnet
...
glEnable(GL_DEPTH_TEST);
Allerdings kamen heute 2 neue Probleme dazu:
1. Schatten auf Skysphere
Das Problem sollte nicht allzu groß sein. Ich arbeite ja mit Stencil-Buffer Schatten. (da hatte ich ja auch einige Probleme )
Vom Prinzip her müsste es ja eigentlich das gleiche sein, wie beim Depth-Buffer. Meine 2 Ansätze waren:
1.
Java:
glDisable(GL_DEPTH_TEST);
glDisable(GL_STENCIL_TEST);
...
glEnable(GL_STENCIL_TEST);
glEnable(GL_DEPTH_TEST);
2.
Java:
glDisable(GL_DEPTH_TEST);
glStencilMask(0);
...
glStencilMask(1);
glEnable(GL_DEPTH_TEST);
2. Antialiasing verursacht bläuliche Linien
Das viel wichtigere Problem ist, dass ich, wenn ich Antialiasing bei Linien mithilfe folgender Zeile einschalte:
Java:
glEnable(GL_LINE_SMOOTH);
Wovon kommt das?
Anhang 1: mit Himmel, ohne Antialiasing
Anhang 2: mit Himmel, mit Antialiasing <--- Linien leicht bläulich
Anhang 3: ohne Himmel, mit Antialiasing
mfg tdc