ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4381895
Jetzt (Chat):
26 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

ZFX
Coding-Foren
DirectX API
Re: {DX9} Wasser im Indoorbereich / Reflektion
Normal
AutorThema
DomiOh Offline
ZFX'ler


Registriert seit:
08.10.2002

Nordrhein-Westfalen
{DX9} Wasser im Indoorbereich / ReflektionNach oben.
Hallo,

folgende Problematik: Ich habe ein Indoor-Level "gebaut". Dort gibt es ein Wasserbecken, in dem ich gerne per Shader Wasser hätte.
Ich würde nun gern wissen, wie ich reflektionen darauf bekomme.
Das Problem: Ich habe es mit D3DXMatrixReflect versucht, jedoch scheitere ich an dem Problem, die richtige View-Matrix für die Reflektionen zu errechnen. Des weiteren scheitere ich an den projizierten Texturen.

Ein Environment-Cube-Mapping steht nicht zur Debatte, denn wenn ich diesen Raum aus 6 Ansichten rendere, habe ich noch 17 FPS und das ist etwas wenig.

Nebenbei noch eine weitere Frage, vielleicht weiss das ja jemand.
Dauert der wechsel zwischen den einzelnen "Schichten" einer Volume-Textur genauso lange wie ein kompletter Textur-Wechsel mit "SetTexture" (bzw. im Shader) ?

BTW: Frohe Weihnachten

2 Mal gendert, zuletzt am 26.12.2008, 20:53:43 Uhr von DomiOh.
26.12.2008, 20:08:35 Uhr
Specialist Offline
ZFX'ler


Registriert seit:
29.08.2003

Nordrhein-Westfalen
99606527
Re: {DX9} Wasser im Indoorbereich / ReflektionNach oben.
Hi,
auf der Ati-Seite gab es mal ein Wasserbeispiel.
Weiß allerdings nicht ob das noch existiert.
Eigentlich ist das gar nicht mal so schwierig.
Google doch einfach mal nach "Planar Reflection". Weitere Stichworte, die dir helfen können sind "Clipplane" und "Oblique Frustum Clipping".
Hier gibt es sogar einen Wassershader.
Ich denke damit solltest du den Rest ganz gut alleine hinbekommen
Mit den Volumetextures kann ich dir leider nicht helfen.

Edit: Nvidia hatte mal Samples für das Oblique Frustum Clipping.

Edit2: Ich hab mal bei uns geschaut wie wir es damals gemacht haben (ist schon ne Weile her und war nicht meine Aufgabe). Die Kamera zu Spiegeln ging recht simpel:
Code:
camposition=oldposition;
camposition.y=height*2.0f-oldposition.y;
camdirection=olddirection;
camdirection.y*=-1;


2 Mal gendert, zuletzt am 26.12.2008, 23:38:09 Uhr von Specialist.
26.12.2008, 23:32:30 Uhr
BugSoft
coma_sd Offline
ZFX'ler


Registriert seit:
23.04.2008

Bayern
Re: {DX9} Wasser im Indoorbereich / ReflektionNach oben.
Hallo,

ich wollte nur auch nochmal darauf hinweisen, dass 6x rendern ja gar nicht nötig ist. Erstens haben wir schonmal nur 5 Seiten, da ja alles "unter" der Wasseroberfläche schonmal nicht spiegeln kann. Ausserdem reicht es, pro Frame eine (oder auch 2) Seite(n) upzudaten - ist in Bewegung kaum wahrzunehmen. Zusätzlich kannst du die Auflösung der Cube-Seiten natürlich sehr viel geringer setzen als die Auflösung deines backbuffers - details wie bumpmapping oder andere fillrate verbratende shader könnte man natürlich auch noch abstellen. Zusätzlich frustum culling in jede Richtung und die performance sollte nicht mehr zum Problem werden.

Das nur am Rande - natürlich empfiehlt sich hier die Kamera Spiegelung...
14.01.2009, 17:12:04 Uhr
Normal


ZFX Community Software, Version 0.9.1
Copyright 2002-2003 by Steffen Engel