Wasser Reflexionen
-
Hi!
Ich hab jetzt meinen "Terrain Renderer" ziemlich fertig, jetzt wollte ich noch Wasser hinzufügen und das Terrain darin spiegeln (für den anfang wollte ich das wasser nur mit hilfe einen quads das sich quer übers terrain streckt machen :))
da ich den stencil buffer nicht verwenden wollte hab ich mir gedacht, dass ich die ganze szene einfach noch mal in einen pbuffer von unter der wasseroberfläche zeichne und den pbuffer dann als texture auf das quad zeichnen.aber ich weiß jetzt nicht von wo aus ich das terrain ein 2. mal zeichnen soll, wenn ich dei position und orientierung der kamera invertiere (ist das wirklich ein deutsches wort ?! *gg*) kommt nicht wirklich etwas gescheides raus...
... also wie kann ich das terrain am besten auf dem wasser spiegeln?
-
So wie ich das sehe, musst du deinen Standpunkt an der Wasseroberfläche spiegeln. Alles was unter dem Wasserspiegel ist, muss bei dem Rendern ignoriert werden. Dann muss du auch noch die Texturkoordinaten finden, dazu musst du berechnen, welche Teil des Frustrums von der Wasserplane verdeckt werden würde, und genau den Teil als Textur drauf tun. Also theoretisch müste es gehen, musst eben etwas probieren.
Bye, TGGC
-
Du solltest vielleicht doch den Stencil-Buffer benutzen, das geht viel einfacher damit (siehe DirectX-SDK-Sample). Ich glaube ich weiß schon, was Du machen willst: Du willst die Texturkoordinaten wahrscheinlich dynamisch verändern, um sich das Wasser so ein bisschen bewegen zu lassen...
Wenn Du richtige Wellen einbauen willst, worin sich die Umgebung spiegeln soll, dann solltest Du aber auf eine Cube-Map rendern, und nicht auf eine normale Textur. Siehe dazu das DirectX-SDK-Sample zum Thema Cube-Mapping.
-
okay danke erstmal, ich weiß glaub ich eh schon was mein fehler war/ist, ich muss alles was unter der wasseroberfläche ist mit einer clipping plane "wegmachen" ...
-
schade dass das die ganzen grakas vom treiber aus meißt abgeschaltet haben.
rapso->greets();
-
? gibt clipping planes nicht überall?!
wie kann ich das denn sonst machen?
-
alte detonator treiber (ich glaube 27.xx) haben die noch, genau wie occlusion culling (für gf3/4).
das problem war, dass du pro 2 clippingplane eine textureinheit nicht nutzen konntest.
machen kannst du das noch mit dem pixelshader.
rapso->greets();
-
Hi,
Hm, könnt mir vielleicht bitte jemand sagen, was eine Cupe-map ist. Und wofür sie verwendet wird ?
Bye
-
http://developer.nvidia.com/object/IO_20010830_4778.html
sehr informativ ganz am ende des artikels findest du noch weitere links zu dem thema
bye
tt