is es möglich einen Spiegel zu bauen der auch wirklich spiegelt?
is es möglich einen Spiegel zu bauen der auch wirklich spiegelt?
Bestimmt ist es möglich evtl musst du das Programmieren aber möglich wird es sein.
Es kommt darauf an, wie tief der Zugriff mittels SDK auf den Renderer ist.
Klassisch wird die komplette Szene, in der der Spiegel vorkommt, an der Spiegelebene (der Spiegel) geometrisch gespiegelt und dann zunächst offscreen gerendert. Die Spiegelebene, also der Spiegel, wird dann aus der Perspektive des Spielers in den Stencilbuffer projeziert. Einfach gesagt, der Stencilbuffer enthält eine Art map, die für jeden Pixel des Bildes, welches man auf dem Monitor hat (also auch mit Monitor-Auflösung) im einfachen Fall nur den Wert Schwarz oder Weiss zuordnet. Alle Pixel des Bildes (also nicht offscreen!!!), welche die Spiegelebene zeigen, bekommen dann einen von der restlichen Szene unterschiedlichen Wert. Diese Information wird also im sog. Stencil-Buffer abgespeichert. Mit dieser Information weiß die Engine dann für jeden Pixel, ob der entsprechende Farbwert im Endbild nun aus der offscreen Szene (die gespiegelte Szene) oder aus der ursprünglichen Szene stammen muss. Die gespiegelte Szene wird in die ursprünglichen Szene geblendet, und der Stencil-Buffer gibt vor, in welcher weise, also bei welchem Pixel wie geblendet wird. Dass diese Beschreibung programmiertechnisch nicht absolut exakt ist, weiß ich, aber ich will hier auch nur den grundsätzlichen Ansatz verdeutlichen.
Was du also brauchst, ist der Zugriff auf den Stencil-Buffer, und du musst den Renderer dazu bringen, die Szene zu spiegeln. Ob das für die Geometrie über Abbildungsmatrizen gemacht wird, weiß ich net, weil ich, wie gesagt, mit der Code-Umsetzung nicht auskenne. Mit ner Matrix wäre es auf jeden Fall leicht, zumindest mathematisch.
Eine Alternative zum Stencil-Buffer ist das off-screen-rendering in Verbindung mit der RenderToTexture Funktion. Die offscreen gerenderte Szene wird auf eine Textur gepackt, welche entsprechend auf das Spiegelmodel passt. Dabei zeigt der Spiegel jeweils genau den Teil der Textur, welcher im Spiegel sichtbar ist. Nachteil dieser Variante ist die Inkompatiblität zu klassischem Multisampling. Lediglich stumpfes Supersampling bzw. intelligente Methoden, welche nur für diese RenderTextur supersampling und ansonsten multisampling verwenden, können dann noch Kanten glätten.
Wie auch immer! Crytek hat offenbar keine Spiegelungen bis auf die für das Meerwasser eingeführt (was ich äußerst schade finde, gerade in anbetracht der Tatsache, dass die aktuelle Source-Engine Spiegelungen zwar über RTT, aber ansonsten recht gut hinbekommt.). Da musst du warscheinlich noch ordentliche selbst programmieren!
hmm ok..aber danke für die antworten![]()
hab das mal ausprobiert wies hier beschrieben ist, sind aber noch paar Bugs vorhanden
http://crymod.com/thread.php?postid=212576#post212576
![]()
MFG
Intel Core i5-2500K
ASRock P67 Pro3
8 GB DDR3-1333
GTX560 2GB
Win7 x64
kann man die spiegel nich schäfer machen?
morgen
neh geht leider nicht....
MFG
Intel Core i5-2500K
ASRock P67 Pro3
8 GB DDR3-1333
GTX560 2GB
Win7 x64