Nach einer interessanten Unterhaltung gestern, zum Thema VR Brillen, habe ich mich an ein Programm erinnert, das ich bereits 97 geschrieben hatte, welches Single Image Stereogramme erzeugen konnte (damals noch mit einem noch älteren selbstgeschriebenen Softwarerenderer in 386er Assembler, der aber immerhin schon einen optionalen ZBuffer hatte und Polygone perspektiv korrekt texturieren konnte, sowie Lichtquellen, Nebel und Gouraud- und Phongshading unterstütze - das alles in 256 Farben).
Das vorliegende Demo ist nun auf Win32 und OpenGL portiert, den Code habe ich auch gleich in BaseGraph integriert, die Routine bgMakeStereogram kann aber leicht in eigene Projekte kopiert werden, da im Prinzip nichts anderes, als ein Post Process Filter, der auf dem Z-Buffer aufsetzt (wenn das gemacht wird wären Credits nett).
Wenn richtig betrachtet (auch wenn einige es wahrscheinlich nicht auf Anhieb sehen werden - es ist kein Witz und funktioniert tatsächlich) sollten die Buchstaben BG scharf und 3-Dimensional vor dem Hintergrund gesehen werden - man kann auch eine kleine Animation zuschalten, bei hohen Auflösungen ist das Ganze aber nicht besonders schnell.
Der Algorithmus ist insofern recht fortgeschritten, als nicht nur ein zufälliges Muster moduliert wird, sondern vielmehr Tiles, was den Vorteil hat, dass ein so erzeugtes Stereogramm auch ohne "tiefen Blick" optisch ansprechend erscheint (erscheinen kann).
Der Screenshot sagt nicht viel aus - man muss es sich schon runterladen (ca. 400kb) - dafür kann man mit einem herkömmlichen Monitor, ganz ohne VR Equipment, echtes 3D sehen (bei mir funktioniert es am Besten, wenn ich die Brille abnehme, ganz nah an den Monitor gehe, und dann langsam zurück, ohne den Blick auf das Bild am Monitor zu fixieren).
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Interessante Anwendung, auch wenn ich niemals wirklich viel für diese Stereogramme übrig hatte (besondes nach dem "Hype" vor einigen Jahren). Sag dir das Spiel "Magic Carpet" (Bullfrog, aus der Feder von Peter Molyneux) was? Dort konnte man das ganze Spiel auch in einem solchen Stereogrammodus spielen (und nem 3D-Stereomodus, inkl. Pappbrille), war zwar ganz witzig, aber für ein Spiel ein total überflüssiges Gimmick.
Oh ja, das kenne ich noch gut - die Grafik war für damalige Verhältnisse wirklich ausgezeichnet und das Gameplay auch.
Einen "schnelles" Spiel als Stereogramm zu spielen, kann man aber vergessen (das wäre sehr verwirrend) - rot/grün Stereoskopie funktioniert ganz gut (setzt jedoch voraus, dass Brille und Monitur zumindest halbwegs zusammenpassen).
Die Stereogramme kenne ich auch noch. Ich fand den Effekt interessant und hatte mir damals auch eins von diesem Bücher dazu gekauft. Bei mir hat der 3D Effekt das mit diesem Stereogramm auch auf Anhieb funktioniert. Mit Brille hatte ich aber auch immer mehr Probleme, das hinzubekommen als ohne. Vermutlich weil man dann zu scharf sieht.
Ein weiterer Trick ist, ganz nah an das Bild bzw den Monitor heranzugehen und dann ohne die Stellung der Augen zu verändern lagsam den Abstand wieder zu vergrößern. Wenn man allerdings geübt ist, schafft man es auch den Blickwinkel direkt so einzustellen, daß der 3D Effekt eintritt.
Ein animiertes Stereogramm hatte ich bislang mir noch nicht angeschaut, aber es ist ein schöner Effekt.
Es wäre mal eine weitere Idee diesen Effekt über Shader umzusetzen und/oder über einen OpenGL Wrapper in beliebige Anwendungen zu integrieren. Ein ganzes Spiel wird vermutlich niemand so durchspielen wollen, aber mal sehen wie es aussieht könnte interessant sein.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Der Effekt ist recht nett aber leider gibts keine vernünftige Anwendung dafür. (Vor einigen Jahren gabs mal ne Saurier-Zeitschrift, in der waren auch Rot Grün Sterioskope drinn. Sah schon Cool aus.) Auf der CBIT 2003 hab ich mir mal die diversen 3D Monitore angesehen und da is schon arg was im Kommen. Mittlerweile hab ich gelesen (in der PM) das es in Japan jetzt das erste 3D Notbook (ca. 3500€) gibt. Schätze wenn diese Technologie mal marktreif ist, dann wird das schon richtig interessant werden.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Hmm, ein Shader wäre schwierig - mit GLslang ginge es wahrscheinlich, da bedingte Sprünge unterstützt werden - allerdings findet ja alles im Fragmentshader statt, der ja nicht soo viele Instruktionen zur Verfügung stellt (meistens).
Die Idee ist mir auch schon durch den Kopf gegangen - man müsste den Z-Buffer in eine Textur kopieren und diese für entsprechende Lookups verwenden - allerdings dürfte es schwierig werden, Lookup Tabellen für die horizontalen Linien zu implementieren, in die ja ein Fragment eventuell einen Wert hineinschreiben müsste, um einem anderen Fragment mitzuteilen, den selben Farbwert hineinzuschreiben.
Ein Wrapper wäre leichter möglich, da ja nur (wgl)SwapBuffers abgefangen, und der Z-Buffer ausgelesen werden müsste. Allerdings funktioniert das Ganze nur für einen sehr beschränkten Tiefenbereich gut (nix mit weiten Landschaften oder so), somit müssten die Programme schon darauf ausgelegt sein.
Wenn mir was nettes einfällt, oder jemand eine gute Idee hat programmiere ich vielleicht ein kleines Spielchen dazu (kennt jemand noch Blockout?).
Mitglieder in diesem Forum: Google [Bot] und 3 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.