Registriert: Do Mär 05, 2009 20:17 Beiträge: 284 Wohnort: Kaiserslautern
Hallo,
ich habe mich gefragt, wie man einen OpenGL Hintergrund "aufpeppen" kann - mir würde ein Farbverlauf ala Gradient gut gefallen oder eben ein schönes Hintergrundbild.
Auf der Suche nach einer (einfachen, einsteigerfreundlichen) Möglichkeit habe ich ausser diversen links die irgendwie immmer zu Nehe's Lesson23 führten nichts gefunden mit dem ich was anfangen konnte.
Die Nehe Sache braucht eine glaux header Sache die ich irgendwie auch nicht richtig zum laufen bekomme. Über einen Background Gradienten habe ich so gut wie nichts gefunden.
Hat jemand vielleicht ein einfaches Beispiel für mich, wie man sowas machen kann?
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also ein Gradient ist so ziemlich das einfachste was es in OpenGL gibt.
Du kannst durch Smooth Shading (guck mal ins Wiki) einen Farbverlauf erzeugen. Du musst nur noch die Vertices an die passende Stelle mit der passenden Farbe platzieren. Der Verlauf wird dann von der GraKa erzeugt.
Und ein Hintergrundbild ist einfach ein Quad das Bildschirmfüllend ist und mit einer Textur bespannt wird.
Beide Dinge sind in unseren Tutorials erklärt. Smooth Shading nur am Rande (aber da gibts wiederum einen Wiki Artikel drüber). Einfach mal reinlesen.
Was nicht erklärt ist: Damit dein Bild/Farbverlauf überschrieben werden kann (und somit im Hintergrund wirkt) musst du den als erstes zeichnen und dabei entweder das schreiben in den Tiefenpuffer deaktivieren oder aber nach dem Zeichnen den Tiefenpuffer (und nur diesen) mit glClear löschen.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Mär 05, 2009 20:17 Beiträge: 284 Wohnort: Kaiserslautern
hmm gut danke erstmal.
Bleibt die Frage: Wie zeichne ich denn ein bildschirmfüllendes quad? bzw. die Eckvertices für den gradient... werd das alles nochmal lesen und schaun ob ichs übersehen habe...
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Flash hat geschrieben:
Im 2D Modus. gluOrtho ist da das Stichwort. Siehe auch das 2D Tutorial.
Du meinst glOrtho (ohne u). Beim Orthomodus kann man problemlos die OpenGL Funktion benutzen. Die Methode von glu heißt gluOrtho2D und ihr fehlen die Parameter für den Tiefenbuffer.
Im 2D Modus. gluOrtho ist da das Stichwort. Siehe auch das 2D Tutorial.
Du meinst glOrtho (ohne u). Beim Orthomodus kann man problemlos die OpenGL Funktion benutzen. Die Methode von glu heißt gluOrtho2D und ihr fehlen die Parameter für den Tiefenbuffer.
Ist jetzt offtopic... aber ich hab mich schon immer gefragt warum es für den Ortho Modus ne gl-Funktion gibt aber für die Perspective nicht... macht das irgendeinen sinn? Bei beiden weren matrizen berechnet und angewendet..
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Sellmann: Genau. Es gibt immernoch glFrustrum. Das müsste in etwa so was machen wie gluPerspective. Allerdings sind die Parameter etwas schwirig zu verstehen. Denn FieldOfView ist irgendwie verständlicher als das da.
da das ganze mir dann meine Selektion gehörig zerschossen hat musste ich bestimme Sachen im Rendermodus im falle vom Renderaufruf aus der Selections-Funktion abschalten, das habe ich dann so gemacht:
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du zeichnst doch den hintergrund immer, oder?
Du hast ja richtig erkannt, dass du die Perspektive danach neu setzen musst. Ich hätte das in deine Funktion "Zeichne Hintergrund" eingebaut. Du kannst das so programmieren, dass du diesen Hintergrund überall weiderverwenden kannst (in anderen GL Projekten) ohne dass du an dem dortigen Code was ändern musst. Du musst nur den OpenGL Zustand nachdem der Hintergrund gezeichnet wurde, wieder genau so einstellen, wie vor dem Aufruf. (Und wie ich sagte, den Tiefenpuffer löschen nach dem Zeichnen)
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: Bing [Bot] und 2 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.