Kugel

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.

3 Replies to “Kugel”

  1. Wie verhält sich Cube und Kugel, wenn man Desktops nicht nur nebeneinander, sondern bspw. in 4 Zeilen mit 3 Spalten angeordnet hat? Werden die Desktops dann auf Cube/Kugel nebeneinander dargestellt, oder korrekt in Matrix-Form (was ich mir bei der Kugel aus geometrischen Gründen eher vorstellen kann)?

  2. Die Effekte ignorieren die Einstellung aus dem Pager. Das ist mMn die einzige korrekte Art und Weise, da der KDE default im Pager eine 2×2 Matrix ist. Würde der Pager also berücksichtigt, würde bei 4 Desktops im Default kein Würfel angezeigt.

    Um es sinnvoll hinzubekommen, müsste ich eine sehr starke Fuzzy Logic anwenden, die niemals wirklich richtig wäre. Daher wird Pager ignoriert.

  3. Ok, sehe ich ein. Alle anderen Lösungen, die mir einfallen ähneln dann eher dem Desktop-Grid. Vielleicht könnte man den so gestalten, dass man nur einen Teil sieht (teilrausgezoomt) und auf eine Kugel aufspannt, dann wäre es eine Mischung der Konzepte 😉

Comments are closed.