man sieht es in diversen Spielen, unter anderem auch in Doom 3: Glas bricht die Umgebung dahinter. Hab' mich schon oft gewundert, wie die das, was hintendran ist, auf die Glasfläche bekommen. Ich hab' schon ein paar mal im Forum gelesen, dass man zuerst was in eine Textur rendern muss und die dann einfach im Shader verzerren soll. Das mit dem Verzerren hab' ich mittlerweile hinbekommen, aber das mit dem in Textur rendern ist mir immer noch ein Rätsel. Ich kann ja nicht einfach die Kamera so positionieren, dass man genau das sieht, was auf dem Quad wäre, dann einen Screenshot machen und als Textur speichern und einfach draufbappen; das würde nur funktionieren, wenn die Fläche immer direkt zum Betrachter zeigt, was aber bei einer Glasscheibe in einem Shooter kaum zutreffen würde. Lars hat einmal erwähnt, dass man im Shader keine Transparenz erreichen kann, und dass die einzige Alternative der eben beschriebene Weg wäre. Habe auch sein Engine-Video gesehen, was mich sehr beeindruckt hat, da waren ja auch Brechungen im Wasser vorhanden. Könnte mir vielleicht irgendjemand, der das schonmal gemacht hat, erklären, wie er das geschafft hat?
Mfg, Gran
_________________ Der Bump Mapping User ist nur zu faul, selbst eine Wand mit Tesselation zu erstellen
Du musst PBuffer nutzen (einfach mal die Suchfunktion nutzen, da gibt's massig Infos zu). Mit denen kannst du dann einen 2.Rendervorgang einbauen, bei dem Anstatt auf den Bildschirm in eine Textur gerendert wird. Dieser kann dann eine andere Kameraposition, andere Faces, andere Texturen ... haben.
mfG
Tomok
_________________ Bevor du definierst, was etwas ist, versichere dich seiner Existenz.
Man braucht das ganze nicht ein zweites Mal zu rendern, sondern man kann einfach die Szene nach dem Rendern in eine Texture kopieren und dann erst die transparenten Objekte wie Glass, Dampf usw.. mit dieser Texture rendern.
ich hab' das jetzt so verstanden: Erst die gesamte Szene rendern, dann den Inhalt in eine Textur kopieren (die welche Maße besitzt? sowas wie 1024x768 oder doch quaratisch?). Danach soll ich dann mit dieser Texture mein Glas rendern. Wenn aber das Glas nicht zum Betrachter zeigt, und ich einfach meine Textur, die ich eben aus einem Screenshot gewonnen habe, draufkopier, dann kommt es doch da zu einer kompletten Fehldarstellung, weil das ja eine ganz andere Perspektive ist
_________________ Der Bump Mapping User ist nur zu faul, selbst eine Wand mit Tesselation zu erstellen
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also wenn ich Lars richtig verstanden habe dann geht das so:
Szene ohne Transparenz Rendern
Szene als Textur speichern
Transparente Objekte mit Textur rendern, dabei die Texturkoordinaten im Shader abhängig vond er Normale und dem View-Vektor anpassen.
Der letzte schritt ist so leicht hingeschrieben. Denke aber das wird in Lars Shader gemacht. Aber dazu kann er sich ja selbst nochmal äußern...
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder 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.