Autor Beitrag
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Di 09.10.12 21:59 
Hallo,
nachdem unter www.entwickler-ecke....ewtopic.php?t=110073 relativ häufig das beigefügte Stereogramm aufgerufen wurde, vermute ich, dass Interesse an Stereogrammen existiert. Deshalb gebe ich hier mein Programm zur Erzeugung solcher Bilder an.

Grundlage für dieses Programm ist eine Freeware-Komponente "Stereogram" von Andrej Olejnik (1999), die ich mit anfüge. Meine eigene Leistung ist dabei eher gering, da ich nur versuche, die Eigenschaften der Komponente für meine Zwecke sinnvoll zu nutzen.

Ein Stereogramm ist ein Abbildungsverfahren, bei dem räumliche Gebilde so dargestellt werden, dass der Betrachter ein dreidimensionales Bild wahrnimmt, obwohl die Darstellung auf der Ebene erfolgt.

Mitte der 1990er Jahre wurden spezielle Stereogramme, die Autostereogramme, bekannt. Dazu wird ein kontrastreiches Bild, die Maske/Textur, so verändert, dass Teile der gewünschten Abbildung, des Tiefenbildes, zu einer Verschiebung von Pixeln der Maske führen. Im Allgemeinen werden schwarze Abschnitte der Abbildung nicht verschoben, weiße Pixel um den maximalen Wert. Das Tiefenbild muss daher so erzeugt werden, dass weiter hinten liegende Teile dunkler gefärbt sind, weiter vorn liegende Abschnitt heller.

Je nach Stärke der maximalen Pixelverschiebung kann eine große Tiefenwirkung erzielt werden. Im beigefügten Programm werden für die maximale Tiefe (schwarz) 30 cm, für die minimale Tiefe (weiß) 20 cm und als Beobachtungsabstand 30 cm genutzt.

Der Betrachter eines Stereogramms soll möglichst entspannt "durch das Bild hindurchsehen". Auf keinen Fall darf er versuchen, sich auf einzelne Muster der Maske zu konzentrieren.
Nach einiger Beobachtungszeit "entsteht" der Eindruck einer räumlichen Darstellung im Gehirn(!). Je häufiger man Stereogramme betrachtet, d.h. sich trainiert, desto leichter erkennt man das räumliche Gebilde.
Allerdings gibt es auch Menschen, die es nie schaffen, auf diesen Darstellungen etwas sinnvolles wahrzunehmen.

Im Programm sind einige Beispielbilder und -texturen enthalten. Deshalb ist die Zip-Datei auch relativ groß.
Viel Spaß beim Ausprobieren. Sollte jemand von Euch ein eigenes, interessantes Tiefenbild konstruieren, wäre ich daran sehr interessiert.

Beste Grüße
Mathematiker
Einloggen, um Attachments anzusehen!
_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: Anika, kolibri95, lenamarkert, Martok, Shyran
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Di 09.10.12 23:07 
Wow. Dein Programm ist das erste, bei dem ich auch was sehe! *bsssst*
Naja, jedenfalls bei jedem zweiten Versuch. Hab ein wenig Probleme auf die richtige "Tiefe" einzurasten, bei der sich die richtigen "Blöcke" der Textur überlagern. Wieso sind die eigentlich immer so schmal?

Das mit dem Tiefenbild ist an sich einfach, man muss (z.B. bei OpenGL) nur den Tiefenpuffer auslesen, statt dem Farbbuffer. Mit Blender geht das auch, wenn man sich eine RenderPipeline im Node-Modus zusammenbastelt. Glaub ich jedenfalls, mal probieren ;)

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Di 09.10.12 23:25 
Hallo Martok,
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Wow. Dein Programm ist das erste, bei dem ich auch was sehe!

Das freut mich. Wahrscheinlich kann jeder Nutzer durch Änderungen der Parameter
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
    Stereogram1.DotIntensity := 50;
    Stereogram1.Oversampling := 4;
    Stereogram1.ObservDistance := 14;
    Stereogram1.Max3Ddepth := 14;
    Stereogram1.Min3Ddepth := 8;
    Stereogram1.DPI := 72;

seine eigene, beste Lösung konstruieren. Ich gestehe, dass ich insbesondere an Max3Ddepth und Min3Ddepth so lange "gedreht" habe, bis ich selbst, den besten räumlichen Effekt hatte. Erhöhe ich DPI auf z.B. 144 wird die Tiefenwirkung zwar größer, aber ich bekomme immer mehr Probleme etwas zu sehen.
Bei anderen Nutzern sind vielleicht geänderte Parameter günstiger.
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Das mit dem Tiefenbild ist an sich einfach, man muss (z.B. bei OpenGL) nur den Tiefenpuffer auslesen, statt dem Farbbuffer. Mit Blender geht das auch, wenn man sich eine RenderPipeline im Node-Modus zusammenbastelt. Glaub ich jedenfalls, mal probieren ;)

Interessiert mich sehr. Da meine Kenntnisse von OpenGL gering sind, kann ich mir noch nicht richtig vorstellen, wie das gehen soll. Bin sehr gespannt. :D

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Mi 10.10.12 00:43 
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Interessiert mich sehr. Da meine Kenntnisse von OpenGL gering sind, kann ich mir noch nicht richtig vorstellen, wie das gehen soll. Bin sehr gespannt. :D
Für Blender muss man da nicht mal nachdenken: das steht fertig in der Doku ;)
Und das Beste: es funktioniert sogar, siehe Anhänge. Ich hab allerdings das "Map Value" durch ein "Normalize" ersetzt, um die manuelle Einstellung zu sparen. Damit ist der vorderste Punkt weiß, der hinterste schwarz und der Hintergrund (der bei +Inf steht) auch schwarz. Das ist nicht ganz ideal, weil der hinterste nicht-Hintergrund-Punkt ja eigentlich noch nicht ganz weg ist, aber naja. Es ist einfacher als "Map Value" richtig einzustellen :lol:

Und jetzt bin ich etwas "cross-eyed", wie man so schön sagt :nut:

PS/Edit: Und jetzt das ganze noch in Echtzeit ;)
Einloggen, um Attachments anzusehen!
_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."

Für diesen Beitrag haben gedankt: Mathematiker
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mi 10.10.12 13:23 
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Und das Beste: es funktioniert sogar, siehe Anhänge.

Funktioniert tadellos; beide Bilder kann man sehr schön dreidimensional wahrnehmen.
Zwar habe ich das mit Blender3D noch nicht verstanden, wird aber noch.
user profile iconMartok hat folgendes geschrieben Zum zitierten Posting springen:
Und jetzt bin ich etwas "cross-eyed", wie man so schön sagt :nut:

Ja wird man! Wenn man gar zu lange auf Stereogramme schaut, dreht sich dann irgendwann alles im Kopf. :eyecrazy:
Beste Grüße und Danke
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Mi 10.10.12 14:12 
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Der Betrachter eines Stereogramms soll möglichst entspannt "durch das Bild hindurchsehen". Auf keinen Fall darf er versuchen, sich auf einzelne Muster der Maske zu konzentrieren.
Nach einiger Beobachtungszeit "entsteht" der Eindruck einer räumlichen Darstellung im Gehirn(!).


Naja, so einfach ist es leider nicht. An das erste Stereogramm kann ich mich noch erinnern, es wurde in der ersten Hälfte der 90er Jahre von den Penny-Märkten ausgegeben, und dort wurde auch beschrieben, wie man zu diesem Eindruck gelangt. Inzwischen bin ich soweit geübt, daß ich den Blick einfach von fokussiert auf unendlich umstelle (genaugenommen muß die Stellung der Augenfixierstrahlen parallel werden). Allerdings muß die Akkomodation der Augen dennoch auf kurze Distanz eingestellt werden. Das ist in der Tat ungewöhnlich, aber wenn man es erst einmal begriffen ("raus") hat, dann fällt es zumehmend immer leichter. Ich kenne allerdings jemanden, der es bis heute nicht kann und dem die Schönheit der Stereogramme bis heute leider verborgen bleibt (bleiben muß).

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Je häufiger man Stereogramme betrachtet, d.h. sich trainiert, desto leichter erkennt man das räumliche Gebilde.
Allerdings gibt es auch Menschen, die es nie schaffen, auf diesen Darstellungen etwas sinnvolles wahrzunehmen.


Zustimmung.
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: Mi 10.10.12 21:49 
Es geht übrigens such noch etwas schöner und in Farbe: commons.wikimedia.or...ereogram_flipped.jpg
Mit der - wie ich finde einfachereren - Kreuztechnik. Das Bild für das linke auge ist also rechts und umgekehrt.
Um das Foto räumlich zu sehen, einfach schielen bis aus den zwei Bildern drei entstehen und dann wieder fokussieren.
Geht mit mehr Training auch wieder besser ;)
Mathematiker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mi 10.10.12 21:59 
Hallo,
user profile iconjfheins hat folgendes geschrieben Zum zitierten Posting springen:
Es geht übrigens such noch etwas schöner und in Farbe: commons.wikimedia.or...ereogram_flipped.jpg

Sehr interessant und sieht auch richtig gut aus. Danke für den Hinweis, kannte ich noch nicht.
user profile iconjfheins hat folgendes geschrieben Zum zitierten Posting springen:
Um das Foto räumlich zu sehen, einfach schielen bis aus den zwei Bildern drei entstehen und dann wieder fokussieren.

Ich hab's geschafft! :nut: Und schon tun mir die Augen weh. Für mich ist das anstrengender, das entstehende Bild ist aber faszinierend.
Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein