jetzt müsste ich doch 6 renderpasses haben, jedesmal zum ball hin mit gltranslatef und dann
jedes mal 90 in eine andere richtung drehen. ich habe gelesen dass man fov auf 90 stellen sollte,
damit der komplette raum abgedeckt wird, ich bin mir jetzt nicht ganz sicher, wie ich das mache.
das problem ist
1. fov einstellen, wie ?
2. wie renderpass benutzen ? (alles wie in der render funktion rendern nur dann in die jeweilige textur ?)
ich möchte ja eine kugel, die die umgebung spiegelt, muss ich doch alle 6 richtungen mit einem fov von 90 in die cubemap reinrendern, aber wie ich das genau mache weiß ich nicht, 1. nicht, wie man in eine textur rendert und 2. wie man das am besten aufbaut.
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2067
Programmiersprache: C++
Du zeichnest die Szene ohne Kugel und rotierst dann in die passende Ansicht (In die Kugel fliegen etc ).
Danach benutzt du glCopyTexSubImage2D um das Bild in die Texture zu bekommen.
Das machst du dann für den anderen Winkel (du brauchst nur 180° ) genauso.
So hast du eine Texture, die du entsprechend verschoben auf die Kugel aufbringen kannst.
Die genaueren Details findest du im Tutorial Renderpass, nur würde ich SubImage anstatt Image nehmen, damit du nur eine Textur brauchst.
letztenendes sehe ich nur unten ein feld in der größe von 256*256
aber ich vermute mal, da ist ne menge mehr falsch,
besonders beim anklatschen der textur, außerdem rufe ich den renderpass im rendering auf,
ich denke das muss davor, aber kA wie, gibts nirgends ne demo ?
reicht mir glaube ich einfach zu wissen, wie ich die 6 bilder hier rein bekomme:
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7804 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wenn sich die Umgebung deiner Kugel nicht ändert, und die Szene "sehr groß" ist (idealerweise ein außenlevel) dann hast du recht. Die Cubemap könnte dann vor dem Renderloop einmalig erstellt werden. Falls aber einer der obigen Punkte nicht erfüllt ist, sollte die Cubemap alle paar renderschleifen aktualisiert werden (was verständlicherweise der performance Schaden würde).
_________________ Blog: kevin-fleischer.de und fbaingermany.com
jetzt ist es doch aber afaik so, dass die textur direkt gebindet und nicht gespeichert wird oder ?
ich hatte die gerade eben schon aus versehen woanders, aber im moment sehe ich nichts,
das liegt wohl daran, dass die textur nicht in cubemap[i] liegt, da möchte ich sie aber reinhaben,
nur wie stelle ich das an ? Oo lichter hab ich weggelassen, braucht man da wohl eher net.
und muss ich die texturen dann nicht noch spiegeln ? ich meine für die seiten horizontal
und für oben und untenhorizontal und vertikal ? soll ja eine spiegelnde kugel sein
Registriert: Sa Nov 13, 2004 11:00 Beiträge: 229 Wohnort: Steinhude
eien etwas üppigere Beschreibung der symptome in wiefen es nicht funktioniert könnt schon nicht schaden.
Aber allgemein würde ich auf jedenfall empfehlen in der Prozedur CreateScreenTexture auch eine cubemap zu erstellen und die Bilder in die seiten zu laden. Dafür sollte die ID für die gesamte Cubemap gleich sein (also glGetTextures einmal für die gesamte cubemap aufgerufen werden) und der code zum binden und laden eher so aussehen:
Code:
glBindTexture(GL_TEXTURE_CUBE_MAP, cubemap[i]);
// Daten in den Speicher, Lineares Filtering aktivieren
Mitglieder in diesem Forum: 0 Mitglieder und 20 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.