Echtzeit-Raytracing

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Echtzeit-Raytracing

Beitrag von Deeem2031 »

Seitdem DarkDragon hier im Forum einen Link zu einer Beschreibung von Subsampling bei Raytracing geschrieben hat, hab ich (mal wieder) ein wenig mit Raytracing rumexperimentiert. Aber diesmal ist sogar etwas halbwegs Sinnvolles bei rausgekommen ;)
Es läuft zwar nicht sonderlich schnell (bei mir 4-11 FPS), aber es ist auch alles in PB geschrieben und kein bischen optimiert. Subsampling ist bisher auch nur in der Horizontalen eingebaut, dort liegt also auch nochmal ein Möglichkeit das Programm zu optimieren.

Download: www.deeem2031.de/Raytracing.exe

Steuerung:

Pfeiltasten,a,y: Kamera bewegen
e,s,d,f: Kamera drehen
F1: Zeigt welche Pixel berechnet wurden
F2: unwichtig (buggy)
F3: Kamera um die Kugeln drehen
+,-,1,2: Eigenschaften vom Subsampling verändern
3,4: maximale Anzahl von Reflektionen verändern

Und noch ein Screenshot:

Bild

Das Ganze ist wie gesagt mehr Spielerei als Ernst, ich wollte aber trotzdem mal eure Meinung dazu hören ;)

BTW. das die Kamera nicht richtig funkioniert (die Kugeln werden unter bestimmten umständen schief/länglich) weiß ich.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Nicht schlecht herr specht. Läuft sogar aufm Laptop noch ziemlich flüssig.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Norbie
Beiträge: 134
Registriert: 29.08.2004 12:45
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von Norbie »

Wo liegt der Sinn? :?
http://www.nevu.de/ Künstliche Intelligenz, die letzte Herausforderung!
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Norbie hat geschrieben:Wo liegt der Sinn? :?
Realitätsgeträue schnellstmöglich rendern.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

RESPEKT :shock:
Benutzeravatar
Darky
Beiträge: 210
Registriert: 18.09.2004 20:53
Wohnort: Gelsenkirchen / NRW
Kontaktdaten:

Beitrag von Darky »

:o :allright: :freak: ( Mehr gibts da net zu sagen :lol: :lol: :lol: )
Benutzeravatar
Epyx
Beiträge: 247
Registriert: 29.08.2004 01:40
Computerausstattung: AMD64 X2 DualCore 6000+ , 3GB Ram , WinXP sp3
2x Ati Radeon HD4800 ~ CrossFireX
Kontaktdaten:

Beitrag von Epyx »

WoW sehr beeindruckend :shock:
If you can't make it good, at least make it look good.
Bill Gates
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: Echtzeit-Raytracing

Beitrag von Danilo »

Deeem2031 hat geschrieben:Es läuft zwar nicht sonderlich schnell (bei mir 4-11 FPS), aber
es ist auch alles in PB geschrieben und kein bischen optimiert.
Wenn Du das ganze mit einem DirectX-Screen machst und direkt
in den VideoSpeicher schreibst (bzw. mit einem Hauptspeicher-
bereich arbeitest und den dann komplett in den VideoMem kopierst),
dann kannst Du das alles bestimmt noch um einiges beschleunigen.

Die Textausgabe sollte dann mit einem Spritefont erfolgen. Dazu
vielleicht noch eine Taste um die Schrift ganz abzuschalten.

Ich denke mal das Du da gegenüber GDI (SetPixelV, TextOutA, etc.)
noch einiges rausholen kannst.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

LOL das ding nutzt GDI? ^^ Das is ja mal krass.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Jo, alles "geplottet" :mrgreen:
Ich wollte mich ja erstmal nur auf das eigentliche Raytracing konzentrieren und nicht darauf was ich ich wo in den Speicher schreiben muss. Und solange nicht alles so funktioniert wie es soll, werd ich auch nicht damit anfangen es zu optimieren. Zum Testen reichen mir 3 FPS...

@Danilo: Danke für die Tips - auch wenn ich das schon vorher wusste ;)
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Antworten