Heute morgen habe ich begonnen meinen Würfel/Zylinder in eine Kugel zu verwandeln. Da ich ja bereits einen Vertex-Shader hatte, der die Umwandlung in einen Zylinder vornimmt, muss ich also nur diesen so erweitern, dass es eine Kugel wird. Nun so langsam werde ich in Geometrie immer besser (ja ich kann noch lernen 😉 ) und die Formeln waren recht schnell erarbeitet. Die y-Koordinate muss zusätzlich noch die z-Koordinate beeinflussen (vorher war es nur die x verantwortlich) und die x-Koordinaten müssen in Abhängigkeit von der y-Koordinate gestaucht werden. Die Änderung hat gerade einmal etwa 15 Zeilen Code im Vertex-Shader benötigt. Zeigt auch mal wieder die Mächtigkeit von Shadern. So sieht der aktuelle Stand aus:
CubeCaps fehlen noch. Die muss ich für die Kugel neu programmieren. Ich hoffe aber noch eine bessere allgemeine Lösung im Würfel zu finden, so dass ich hier auch einfach den Shader drauf ansetzen kann. Mal schauen. Auch so gibt es noch ein paar kleinere unschöne Stellen. Die Ecken der Arbeitsflächen überlappen (warum auch immer) und die reklektierende Ebene ist nun zu weit oben für runde caps.
Ach bis das ganze im SVN ist, wird es auch noch ein paar Tage dauern. Ich hab ein bißchen was angeschaut und muss dass nun langsam aber sicher einspielen. Die Kugel benötigt aber zwingend einige der Änderungen.