Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

[OpenGL] Der Droste-Effekt von M.C. Escher

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
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 ;)

BeitragVerfasst am: 30.07.2007, 13:04    Titel: [OpenGL] Der Droste-Effekt von M.C. Escher Antworten mit Zitat

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! zwinkern

- Stormy
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 30.07.2007, 13:13    Titel: Antworten mit Zitat

sieht verdammt cool aus! Daumen rauf!
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 30.07.2007, 13:23    Titel: Antworten mit Zitat

Wau! Das sieht ja mal RICHTIG geil aus!!!!!! grinsen grinsen

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 30.07.2007, 13:28    Titel: Antworten mit Zitat

Danke für's Lob! lächeln
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
King-01
gesperrt


Anmeldungsdatum: 26.02.2007
Beiträge: 351

BeitragVerfasst am: 30.07.2007, 14:11    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 30.07.2007, 14:25    Titel: Antworten mit Zitat

Zum Bildschirmschoner langt es noch nicht. Ich werde zu gegebener Zeit eine schicke Textur raussuchen, damit sowas in der Art "der unendliche Tunnel" oder so entstehen kann. cool
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 30.07.2007, 14:31    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 30.07.2007, 14:34    Titel: Antworten mit Zitat

@Stormy:
Naja, ich find das Ding jedenfalls super gelungen! lächeln
(Und würd's auch jetzt schon als Bildschirmschoner benutzen.)
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 30.07.2007, 15:22    Titel: Antworten mit Zitat

und das muster lässt sich auch beliebig verädnern happy
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Neo187



Anmeldungsdatum: 26.12.2005
Beiträge: 350
Wohnort: Oldenburg

BeitragVerfasst am: 30.07.2007, 15:36    Titel: Antworten mit Zitat

moin zusammen, (ja, bin auch mal wieder da^^ grinsen )

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
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 30.07.2007, 15:37    Titel: Antworten mit Zitat

Also bei mir "ruckt" es immer wenn es grad wieder von vorn anfängt zu zoomen happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 30.07.2007, 15:52    Titel: Antworten mit Zitat

Neo187 hat Folgendes geschrieben:
moin zusammen, (ja, bin auch mal wieder da^^ grinsen )

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. zwinkern 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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Neo187



Anmeldungsdatum: 26.12.2005
Beiträge: 350
Wohnort: Oldenburg

BeitragVerfasst am: 30.07.2007, 16:00    Titel: Antworten mit Zitat

Stormy hat Folgendes geschrieben:
Neo187 hat Folgendes geschrieben:
moin zusammen, (ja, bin auch mal wieder da^^ grinsen )

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. zwinkern 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. zwinkern ... 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
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 30.07.2007, 18:50    Titel: Antworten mit Zitat

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 ! zwinkern

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! lächeln

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Thorben



Anmeldungsdatum: 26.04.2005
Beiträge: 173
Wohnort: SH

BeitragVerfasst am: 31.07.2007, 12:57    Titel: Antworten mit Zitat

Hehe, mein Nachname ist "Droste"!

MFG Thorben
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz