hi,
Ich möchte gerne Portale implementieren, damit meine ich, Quads auf denen eine Textur liegt, die den dahinterliegenden Raum repräsentiert.
Sprich man sollte so ein Quad in den Raum klatschen können, ohne dass man es merkt, weil es wie eine Scheibe funktioniert.
Das Ganze brauche ich für einen Shader, da ich wissen muss, was sich "hinter" diesem Quad verbirgtm also muss ich das was sich hinter dem Quad befindet aufs Quad rendern und das sicherlich abhängig von der Betrachterposition, wie stelle ich das an ? Einfach aus der Betrachteransicht rendern und auf das Quad projizieren sollte funktionieren, allerdings weiß ich nicht, ob der Shader dann damit klar kommt, am besten wäre wirklich eine Textur, die dann nur auf das Quad gemappt wird.
mfg
Zuletzt geändert von Seth am Mo Mai 26, 2008 08:02, insgesamt 1-mal geändert.
Prinzipiell so in etwa, nur etwas spezieller.
Angenommen ich habe ein Haus mit einer Fensterscheibe. Dieser Fensterscheibe möchte ich ein bissl Refraktion geben, deshalb muss ich das Dahinterliegende als Textur auf die Scheibe mappen und dem Shader übergeben.
dürfte das nicht auch mit der Methode aus dem Wasser-Tutorial von Lord Horazont gehen? Da rendert man ja eine Refraktionsmap und das ist doch das, was du suchst, oder hab ich das falsch verstanden?
Etwa so sieht das bei mir aus, mit Refraktionseffekten:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Eigentlich wird für sowas ein weiterer Renderpass verwendet, der aus der Sicht des Portals/Wassers/Glas/... die Szene in ein FBO zeichnet und dieses dann als Textur für das Mesh des Portals/Glas/Wasser/... verwendet.
Schwer ist hierbei nur die korrekte Darstellung der gerenderten Textur auf das Mesh.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
hi, nun ist allerdings die frage: wie aus der sicht rendern ? (also wie das rein opengl technisch zu machen ist, weiß ich, nur soll ja auch am ende das richtige zu sehen sein)
Deshalb dachte ich zuerst aus der Sicht des Betrachters alles Rendern was hinter diesem Objekt ist und das dann geschickt mappen Oo
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Bei Portals, kannst du die position zwischen Spieler und Portal erfassen.
Nun nimmst du die Szene, wo das andere Ende des Portals ist und positionierst die Kamera mit der gleichen Disstanz relativ(wenn das anders ausgerichtet ist, dann muss der Distanzvektor natürlich entsprechend angepasst werden) zum Portal.
Nun kannst ein Bild von machen und das auf das Portal projezieren.
Wie das mit dem zeichnen von Objekten zwischen Portalen gemacht wird ist mir nicht bekannt.
Mir bekannte Möglichkeiten wären hier Clipplanes und Masken.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Der Sonderfall bei mir ist ja, dass ich keine wirklichen Portale hab, sondern das was auf dem Portal zu sehen ist, auch ohne Portal sichtbar wäre. Es ist mir so etwas wie ein Fenster.
Deshalb dachte ich zuerst aus der Sicht des Betrachters alles Rendern was hinter diesem Objekt ist und das dann geschickt mappen
Das richtige mappen findet man im Wassertutorial von Lord Horazont:
Durch Manipulation der Texturmatrix erreicht man, dass man als Texturkoordinaten die Vertexkoordinaten angeben kann.
Oder meinst du was anderes, und ich hab dich jetzt falsch verstanden?
Nehmen wir mal an, ich möchte ein Fenster mit Refraktion realisieren. Wie stelle ich das dann an ? Render ich die Szene aus Sicht der Kamera in eine Textur und mappe es wie von dir genannt und lasse dann meinen Shader darauf los ?
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Ja, du setzt den Shader dann auf die Fensterscheibe an.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Mitglieder in diesem Forum: 0 Mitglieder und 4 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.