Registriert: Di Okt 11, 2005 14:44 Beiträge: 19 Wohnort: Bad Neuenahr
Hallo zusammen,
wie man im Titel schon erahnen kann, stellt sich mir heute eine Frage, zu der ich bisher rein gar nichts gefunden habe. Ich habe einen Raum als Modell und möchte gern, daß dessen Wände von außen eine andere Textur haben, als wenn man die Wände von innen anschaut. So eine Wand (eine in jeder Himmelsrichtung, wenn man innen steht) besteht bei mir momentan aus jeweils einem "GL_QUADS".
Wie man einem Primitive eine Textur zuweist weiß ich, aber ob es beim Texturieren in OpenGL auch möglich ist einem Primitive auf der Vorderseite eine andere Textur zuzuweisen, als seiner Rückseite, ist mir nicht klar. Für mich stellt sich daher die Frage, gibt es da überhaupt eine Möglichkeit, oder ist dies gar nicht möglich
Ebenso stellt sich mir dann noch die Frage, kann man eigentlich bestimmen, daß eine Textur nur auf einer Seite zu sehen ist und auf der Rückseite einfach nur die Farbe des Primitives zu sehen ist
Habe die Forensuche bemüht und auch im Wiki das Tutorial über Texturen gelesen sowie im Redbook (Version 1.1) nachgelesen, aber nirgends wird darauf eingegangen, also weder bejaht noch verneint. So ein Problem sollte doch sicher nicht nur ich haben, oder
Wenn es in OpenGL dafür keine Lösung gibt, wie würdet ihr da vorgehen Vielleicht überall zwei GL_QUADS hintereinander, so daß jedes eine andere Textur bekommt
A.W.G.
_________________ "But how will I know when I have received enlightenment?" asked the novice.
"Your program will then run correctly," replied the master. [Tao]
Registriert: So Sep 26, 2004 05:57 Beiträge: 190 Wohnort: Linz
"beim Texturieren in OpenGL auch möglich ist einem Primitive auf der Vorderseite eine andere Textur zuzuweisen"
Meines Wissens nach nicht.
" kann man eigentlich bestimmen, daß eine Textur nur auf einer Seite zu sehen ist und auf der Rückseite einfach nur die Farbe des Primitives zu sehen ist"
Möglicherweise, glaube aber auch eher nicht. Unterschiedliches Shading ist möglich, da es aber kein "glEnable(GL_TEXTURE_xD_FÜR_VORDERSEITE)" gibt würde ich das eher bezweiflen.
"Wenn es in OpenGL dafür keine Lösung gibt, wie würdet ihr da vorgehen? Vielleicht überall zwei GL_QUADS hintereinander, so daß jedes eine andere Textur bekommt?"
Wenn du für jede Seite eine andere Textur willst würde ich definitiv so vorgehen. Du musst auch bedenken, selbst wenn du beide Quads (also sowohl die Vorderseite als auch die Rückseite) zeichnest, so kann es OGL sehr sehr schnell erkennen das nur eine Seite davon Sichtbar ist (mit GL_CULL_FACE). Und nebenbei bemerkt: heutige Spiele sind meistens Füllraten gebunden, also wegen irgendwelchen Polygonen die nicht in deine Richtung schauen brauchst du dir üblicherweise eher wenig Sorgen zu machen ... wie gesagt, sofern du dein GL_CULL_FACE drinnen hast.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du solltest meiner Meinung nach der Wand ein angemessenes Volumen spendieren. Schließlich sind gibt es in unserer Welt keine 2D Objekte (außer die Texturen von 3D Objekten.) Und Wände haben nunmal in echt eine Dicke, und damit auch 2 Echte Seiten. Und dennen kann man in OGL definitiv dann 2 verschiedene Texturen zuweisen.
Wie Lyr schon sagte: Mit CullFace sollte das Performancetechnisch wenig bis keine Probleme machen.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Di Okt 11, 2005 14:44 Beiträge: 19 Wohnort: Bad Neuenahr
@Lyr & Flash:
Danke euch beiden
So werde ich es machen.
Natürlich wäre die Wand bestehend aus nur einem Polygon etwas dünn, allerdings will ich für meine Engine auch nur einen scherzhaft eingerichteten Raum erstellen, dessen Einrichtung ich jemandem zeigen will, um ein Schmunzeln hervorzurufen und danach hat der Raum dann auch erstmal wieder ausgedient. Da es dafür schnell gehen soll (da ja nicht spielrelevant), reichen mir dazu vier Einpolygonwände + Türöffnung.
Das Spiel soll schon etwas realistischer werden. Was die tatsächlichen Räume angeht, so werden die Wände dann auch aus mehr als einem Polygon aufgebaut. Das war schon geplant, ist aber ganz klar auch 'ne Zeitfrage. Je mehr Details, desto länger braucht die Modellierphase.
_________________ "But how will I know when I have received enlightenment?" asked the novice.
"Your program will then run correctly," replied the master. [Tao]
Registriert: Di Okt 11, 2005 14:44 Beiträge: 19 Wohnort: Bad Neuenahr
@Flash:
Einen 3D-Modeller habe ich schon dafür geschrieben. Also zu dem Zweck "Content" zu basteln.
Mit dem kann man fertige Objekte abspeichern und dann natürlich auch wieder einladen, also auch einen kompletten Raum, wenn es denn sein muß.
Soweit bin ich schon.
_________________ "But how will I know when I have received enlightenment?" asked the novice.
"Your program will then run correctly," replied the master. [Tao]
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.