Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 30.07.2007, 13:04 Titel: [OpenGL] Der Droste-Effekt von M.C. Escher |
|
|
Hallo,
ich habe mich die letzten 3-4 Tage mit dem Droste-Effekt auseinandergesetzt. Für die Leute, die noch nicht wissen, um was es sich beim Droste-Effekt von M.C. Escher geht, sollte diese Seite interessant sein: http://www.josleys.com/show_gallery.php?galid=291
Dort gibt es auch Beispielvideos zum Anschauen. Dort werdet ihr sehen, dass sich Escher mit dem "unendlichen Bild" beschäftigt. Also ein Bild, was die Szene davor in sich birgt und dies scheinbar unendlich tief verschachtelt. Ich fand das ganze ziemlich interessant und mache mich daran ohne den genauen mathematischen Sachverhalt zu kennen, diesen Effekt umzusetzen. Aber im Grundprinzip geht es darum, dass sozusagen in eine kleinere Szene gezoomt wird.
Ich habe in meinem Beispiel 2 Szenen, in die er zoomen kann. Hier eine Illustration dazu:
Das Programm wählt dann per Zufallsgenerator aus, in welche Szene er nun springt.
Ich habe auch ein Binary fertiggestellt, welches ihr ausprobieren könnt. Allerdings sei gesagt, dass es ziemlich CPU-lastig ist, weil in jedem Frame dutzende Operationen folgen. Ich werde das später noch optimieren.
droste.zip - 630 KB
Rotation ist auch möglich (siehe droste-effect3-rot.exe)
Viel Spaß beim Anschauen!
- Stormy _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 30.07.2007, 13:13 Titel: |
|
|
sieht verdammt cool aus!  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 30.07.2007, 13:23 Titel: |
|
|
Wau! Das sieht ja mal RICHTIG geil aus!!!!!!
Super Arbeit!!
Mit ein bisschen Optimierung wäre das ein HAMMERMÄ?IGER Bildschirmschoner!!! Wow! Sieht echt hammergeil aus!!..!! _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
 |
King-01 gesperrt

Anmeldungsdatum: 26.02.2007 Beiträge: 351
|
Verfasst am: 30.07.2007, 14:11 Titel: |
|
|
Wow. Tolles Programm. Wie sieht denn der Quellcode aus?
Bei mir verbraucht das Programm nur 14-17 % Prozessorlast (bei einem Intel Core 2 Duo T2050 1,6GHz)
Als Bildschirmschoner: einfach die das "exe" bei der datei in ein "scr" umbenennen und in den system32-Ordner kopieren (bei windows xp) _________________ [quote="IRC"](22:41:56)<PMedia>Jojo, hats nen Grund warum wir chatten obwohl du grad neben mir sitzt?
...
(23:00:59)<PMedia>USB war erst als Waffe geplant[/quote] |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 30.07.2007, 14:31 Titel: |
|
|
King-01 hat Folgendes geschrieben: | Bei mir verbraucht das Programm nur 14-17 % Prozessorlast (bei einem Intel Core 2 Duo T2050 1,6GHz) |
ist ja auch opengl. wieso sollte sowas mehr verbrauchen? _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 30.07.2007, 14:34 Titel: |
|
|
@Stormy:
Naja, ich find das Ding jedenfalls super gelungen!
(Und würd's auch jetzt schon als Bildschirmschoner benutzen.) _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
Verfasst am: 30.07.2007, 15:22 Titel: |
|
|
und das muster lässt sich auch beliebig verädnern
Stormy meinte wohl eher, dass es GPU Lastig ist... Aber selbst meine "Bürografik" kommt da nicht ins schwitzten... _________________ If hilfreicher_Beitrag then klick(location.here)
Klick |
|
Nach oben |
|
 |
Neo187

Anmeldungsdatum: 26.12.2005 Beiträge: 350 Wohnort: Oldenburg
|
Verfasst am: 30.07.2007, 15:36 Titel: |
|
|
moin zusammen, (ja, bin auch mal wieder da^^ )
also irgendwie musst du da noch Bremsen im Code haben, da limitiert ja irgendwie gar nichts außer das Programm selbst:
Grafikkarten-Limitierung: Fehlanzeige, ob nun 1xAA,0xAF min. Qualität + Übertaktung oder 6xA-AA,16xAF max. Qualität - IMMER konstant 160Fps
CPU-Limitierung: Fehlanzeige, egal bei welchen Einstellungen, immer nur ~15% Auslastung.
MfG,
Neo187 _________________
 |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 30.07.2007, 15:37 Titel: |
|
|
Also bei mir "ruckt" es immer wenn es grad wieder von vorn anfängt zu zoomen  |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 30.07.2007, 15:52 Titel: |
|
|
Neo187 hat Folgendes geschrieben: | moin zusammen, (ja, bin auch mal wieder da^^ )
also irgendwie musst du da noch Bremsen im Code haben, da limitiert ja irgendwie gar nichts außer das Programm selbst:
Grafikkarten-Limitierung: Fehlanzeige, ob nun 1xAA,0xAF min. Qualität + Übertaktung oder 6xA-AA,16xAF max. Qualität - IMMER konstant 160Fps
CPU-Limitierung: Fehlanzeige, egal bei welchen Einstellungen, immer nur ~15% Auslastung.
MfG,
Neo187 |
Das lag an dem VSYNC, was im Source war. Hier für jene, die es ohne haben wollen: droste-effect3-rot.exe
@PMedia: Dieser ruckartige Übergang daran, dass alle Werte wieder "reseted" werden, sobald neu gezoomt wird. Nach einem Vorgang dürften allerdings alle Werte zum neuen Zoom passen, so dass es nicht auffällt; irgendwo müssen Rundungsfehler oder sonstige Ungenauigkeiten sein. _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
Neo187

Anmeldungsdatum: 26.12.2005 Beiträge: 350 Wohnort: Oldenburg
|
Verfasst am: 30.07.2007, 16:00 Titel: |
|
|
Stormy hat Folgendes geschrieben: | Neo187 hat Folgendes geschrieben: | moin zusammen, (ja, bin auch mal wieder da^^ )
also irgendwie musst du da noch Bremsen im Code haben, da limitiert ja irgendwie gar nichts außer das Programm selbst:
Grafikkarten-Limitierung: Fehlanzeige, ob nun 1xAA,0xAF min. Qualität + Übertaktung oder 6xA-AA,16xAF max. Qualität - IMMER konstant 160Fps
CPU-Limitierung: Fehlanzeige, egal bei welchen Einstellungen, immer nur ~15% Auslastung.
MfG,
Neo187 |
Das lag an dem VSYNC, was im Source war. Hier für jene, die es ohne haben wollen: droste-effect3-rot.exe
@PMedia: Dieser ruckartige Übergang daran, dass alle Werte wieder "reseted" werden, sobald neu gezoomt wird. Nach einem Vorgang dürften allerdings alle Werte zum neuen Zoom passen, so dass es nicht auffällt; irgendwo müssen Rundungsfehler oder sonstige Ungenauigkeiten sein. | moin,
na geht doch. ... nun ist es von 160 schwupps auf 800Fps gestiegen ... und CPU-Auslastung bei 100% ... sollte die alte Kiste mal ablösen.
MfG,
Neo187 _________________
 |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 30.07.2007, 18:50 Titel: |
|
|
Ich hab noch eine kleine Erklärung, wie ich das ganze umgesetzt habe:
Das große weiße Viereck illustriert die Anfangsszene. Das rote und grüne Viereck sind die weiteren Szenen, die immer abhängig vom Mittelpunkt der Szene gesetzt werden. m0 bis m2 ist der Verrößerungsgrad der jeweiligen Szene (1=100%,1/2=50%,etc..). Die Position wird eindeutig über die Länge (hier: a*m0,b*m0) und dem Winkel (hier: Alpha und Beta) bestimmt. Desweiteren sind die eigenen Szenen, um ihre eigene Achse gedreht (Phi und Rho). Das kartesische Koordinatensystem ist übrigens hier ziemlich kompliziert, weswegen das Polarkoordinatensystem genommen habe.
Der eigentliche Clou, um das "Bild im Bild" zu zeichnen, ist alle Objekte nochmal innerhalb der kleineren Szene gezeichnet werden, bis zu einer bestimmten Tiefe z. Also nix mit unendlich !
Bei der Animation wird ein Objekt ausgewählt und die Ausgangsszene wird so rotiert, verschoben und vergrößert, so dass die kleine Szene den ganzen Bildschirm umfasst. Dann wird der alte Zustand wieder erneut geladen und schon haben wir ein endlose Schleife!
Ich werde in den nächsten Tagen weitere Animationen vorstellen; unter anderem mit einer INI-Datei, so dass man selber Animationen kreieren kann. Der Sourcecode folgt natürlich auch... _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 31.07.2007, 12:57 Titel: |
|
|
Hehe, mein Nachname ist "Droste"!
MFG Thorben |
|
Nach oben |
|
 |
|