Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Folgendes. Ich möchte Texturen auf meine Quadricen pappen. Eigentlich kein Problem. Wenn das net zuviel aufwand werden würde. Das Problem ist, dass ich Atome (gluSphere) mit einer Textur beschriften will, die auf der der Atomtyp steht. Jetzt wär das natürlich echt zu aufwendig für jede Atomsorte eine Extratextur anzulegen. Mir würde es wesentlich besser gefallen, wenn ich mir die Beschriftung zusammenbauen könnte. Also 'S'+'i' = 'Si'.
Wie kann ich das realisieren. Wie gesagt es handelt sich um Kugeln.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Das ist natürlich alles andere als Trivial. Das Problem dürfte da sein, dass du bei einer gluSphere keine eigenen Texturkoordinaten angeben kannst. Als zusätzlichen Schwierigkeitsgrad hast du das Problem, dass die die Sphere eine gebogene Oberfläche besitzt. Die einfachste Möglichkeit Text darzustellen ist mittels einer Texttextur auf Quads. Diese kannst du aber schlecht biegen.
Ich würde fast Vorschlagen, dass du transparente Quads benutzt die um den Radius der Kugel angeordnet sind. Und zwar so, dass sie von Mittelpunkt immer in Richtung Kamera zeigen. Und dann auch so, dass sie die Kugel verdecken und von anderen Kugeln verdeckt werden. Das Ding mit dem Drehen deswegen, da es sonst zu sehr auffallen würde, dass eigentlich nur darüber schweben. Das könnte sonst ein bisschen doof aussehen. Evtl würde das vielleicht sogar auch besser aussehen als wie wenn sie sich mitdrehen. Dann wirkt das Bild vielleicht ruhiger.
Das ist aber ein bisschen arbeit und wie gesagt nicht trivial. Abgesehen davon, dass das Ganze nur rein theoretischer Natur ist und ich keine Ahnung habe wie es geht und ob das nach etwas aussieht. Es wäre also vielleicht doch besser in den sauren Apfel zu beißen und für jeden Atomtyp eine eigene Textur zu erstellen.
Aber das musst du selber mal ausprobieren was das Sinnvollste ist.
Wenn du die Texturen dynamisch erstellst und den Text vom Programm und nur bei Bedarf draufschreiben läßt, sollte sich der Rechenaufwand und auch die Anzahl der Texturen in Grenzen halten. Die Anzahl der Atomtypen die maximal gleichzeitig in der Szene benötigt werden, ist vermutlich abschätzbar.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ne. Ich denke mal, dass Pro Textur min 32x32 oder sogar 64x64 Pixel nötig sind. Du musst ja die Textur der gesamten Kugel rechnen nicht nur die der Schrift. Und dann könnte es mit 64x64 sogar schon knapp werden um dann noch ein halbwegs vernünftiges Bild zu produzieren. Aber das kommt auf die Größe der Atome an. Aber dynamisch sollte das alles kein Thema sein. Da kannste deinen Text auf ein Bitmap zeichnen und dann mit einem Loader oder per Hand eine Textur daraus generieren. Fertsch.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Sowas in die richtung hatte ich mir gedacht. Also eine nur im Programm existierende Textur die nach Bedarf zusammengebaut wird.
Dann kann man ja sicherlich auch bei Quads die Texturen sich wiederholen lassen. Damit könnte ich dann die Größe der Tex beschränken.
Nur wie schreib ich den Text auf das Ausgangsbitmap?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Die Eigenschaft Pixels wird intern in einen API Aufruf umgewandelt. Das einzige was dem Ansatzweise nahe kommt ist die Eigenschaft Scanline. Das könnte man unter Umständen an glTexImage übergeben. Aber dann muss das Format sehr genau stimmen. Ich meine die Windowsbitmap können auch Kopfüber im Speicher liegen, weswegen es wohl Probleme geben dürfte, wenn du stumpf immer den Pointer der letzte Zeile rein reichst. Kann ja sein, dass du dich dann am Ende des Speichers befindest.
Du könntest aber das Bitmap auch an die glBitmap übergeben und dir damit ne Textur generieren lassen. AssignFromBitmap kopiert die Daten direkt aus einem Bitmap heraus. GenTexture und das wars auch schon wieder.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Was würd ich ohne deinen Loader nur machen ...
Es geht zwar so. Aber beim rendern der Animation Flackert die Textur unschön (In schwarz! Obwohl die Textur weiß ist und nur die Schrift schwarz ist). Teile der Textur verschwinden auch mal. Die Texturgröße ist mit 128*64 konform.
Die schrift habe ich mittels TextRect auf das Zentrum der Textur begrenzt.
Kommt es bei Texturierten Quadriken immer zu solchen Fehlern, oder hat das andere Gründe?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Das klingt für mich entweder wie Singlebuffering oder überlagernde Flächen die Abwechselnd mal sichtbar sind oder nicht. Aber sonst sollte so etwas nicht vorkommen.
PS: Ich habe doch an so ziemlich alles gedacht. Denke ich.
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.