Echtzeit-Raytracing

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8677
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von NicTheQuick »

Also wenn man das ganze mit F3 zum Drehen bringt sieht es echt schlimm aus.
Das hat gestern aber noch besser ausgesehen.

PS.: Ich bin immer noch dabei zu berechnen, wie ich die Strahlen am besten in die Welt schicke. Und ich hatte heute in der Schule wieder so eine Idee, die ich morgen oder so nochmal auf dem Papier und dann im PC ausarbeiten werde. Wenn du lieb bist, bekommst du die Methode dann auch. <)
Bild
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Deeem2031 hat geschrieben:@Danilo: Danke für die Tips - auch wenn ich das schon vorher wusste ;)
Ich dachte halt ich sage es lieber nochmal. :)

Ich habe bei mir z.B. einen Raytracer um einiges mit Threads
beschleunigen können. Dazu teile ich das ganze Bild in 4 vertikale
Streifen auf und lasse dann jeden Abschnitt von einem Thread
raytracen.
Auf meinem Dual-Prozessor-System hat das einiges gebracht,
da arbeiten beide CPUs auf Volllast beim raytracen.
Auf den neueren DualCore- oder Hyperthreading-Systemen
sollte das auch ziemlich nützlich sein.

Aber das weißt Du ja auch schon... also will ich Dich nicht
weiter belästigen. :|
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
DarkDragon
Beiträge: 6267
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Danilo hat geschrieben:
Deeem2031 hat geschrieben:@Danilo: Danke für die Tips - auch wenn ich das schon vorher wusste ;)
Ich dachte halt ich sage es lieber nochmal. :)

Ich habe bei mir z.B. einen Raytracer um einiges mit Threads
beschleunigen können. Dazu teile ich das ganze Bild in 4 vertikale
Streifen auf und lasse dann jeden Abschnitt von einem Thread
raytracen.
Auf meinem Dual-Prozessor-System hat das einiges gebracht,
da arbeiten beide CPUs auf Volllast beim raytracen.
Auf den neueren DualCore- oder Hyperthreading-Systemen
sollte das auch ziemlich nützlich sein.

Aber das weißt Du ja auch schon... also will ich Dich nicht
weiter belästigen. :|
Die DualCores sind echt geil, 2 Prozessorkerne in einem, 2006 soll die Vierfachausgabe rauskommen.
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.
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

Lahm aber sonst gut! Jedoch kann das mit der Kamera um die Kugel drehen nicht stimmen, ne Kugel sieht von jedem Blickwinkel immer wie 'ne Kugel aus.
Dann scheint das ganze noch etwas Buggy, immer wenn das Fenster inaktiv war, wird die Kugel anders angzeigt (nicht vollständig bis gar nicht mehr), was sich auch in den FPS schwer bemerkbar macht.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8677
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von NicTheQuick »

@Deeem2031:
ich hab jetzt die halbe Nacht dran gesessen. Und jetzt kann ich die "Kamera", die die Strahlen aussendet zum RayTracen, auf allen vier Achsen Drehen.

Hier kannst du dir das mal anschauen:
Bild
Tasten für um die X-Achse: W, X
Tasten für um die Y-Achse: A, D
Tasten für um die Z-Achse: R, F
Tasten um das Sichtfeld zu ändern: T, G
Bild
DarkDragon
Beiträge: 6267
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

http://www.bradan.net/downloads/Raytracing.zip

Subsampling wird mittels tasten 2 und 3 gesteuert. Die Tracemap sieht man per 1.
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 »

Ich verstehs immernoch nicht. :roll:
Wie sollte man das Irgendwo anwenden können?
http://www.nevu.de/ Künstliche Intelligenz, die letzte Herausforderung!
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8677
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von NicTheQuick »

Norbie hat geschrieben:Ich verstehs immernoch nicht. :roll:
Wie sollte man das Irgendwo anwenden können?
Vielleicht kann ich dir das heute abend schon an einem neuen Programm von mir zeigen. Ich bin nämlich auch gerade an einem gut optimierten RayTracer.
Bild
DarkDragon
Beiträge: 6267
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Norbie hat geschrieben:Ich verstehs immernoch nicht. :roll:
Wie sollte man das Irgendwo anwenden können?
Wie, wie sollte man das anwenden können? O_o vielleicht für Animationstechnik, wo man Filme wie Shrek oder ToyStory erstellen kann?
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.
RaVeN99
Beiträge: 310
Registriert: 29.08.2004 15:26
Wohnort: Weiden i.d.OPF
Kontaktdaten:

Beitrag von RaVeN99 »

Norbie hat geschrieben:Ich verstehs immernoch nicht. :roll:
Wie sollte man das Irgendwo anwenden können?
Such mal in älteren berichten von Gamestar oder PcGames und ähnlichen Mags...
Da wirste dann ziemlich atemberaubende Screenshots von Quake 3 sehen, welche geraytraced wurden, und zwar in echtzeit. Prinzipiell kannst du mit einem Raytracer, wenn ich mich an meine kleinen exkursionen in POVRay erinnere, alles, aber wirklich alles mit hilfe von mathematischen funktionen darstellen. Mit angepassten GPU's die eben, salopp ausgedrückt, ziemlich gut in mathe sind, anstatt wie die heutigen, welche auf verschiebungen von dreiecken usw. spezialisiert sind, lassen sich Fotorealistische grafiken in echtzeit erstellen. Also wie DarkDragon schon sagte, Grafiken wie in ToyStory, oder neueren Semestern, nur eben für Computer Games.
Heute werden Fortschritte in sachen Grafik hauptsächlich durch erhöhung der Polygonzahlen, schärfere Texturen und vor allem Shadern und anderen Tricks (Normal Maps, Bumpmapping, HDR etc.) bewirkt. Das kannste dir prinzipiell sparen bei der verwendung von raytracern. Zumal auch die RAM bestückung solcher karten wieder kleiner werden dürfte (achtung, nur ne mutmaßung, nicht drauf festnageln!!!), da ja dann auch überwiegendprozedurale texturen verwendet werden, welche ja nur auf mathematischen formeln beruhen, ganz im gegensatz zu den vorgefertigten, speicherfressenden, durch kompressionstechniken zerhackstückten texturen von heute.
Eines der ersten games, welches Prozedurale texturen nutzte war, wenn ich mich nicht bitterböse täusche, Aquanox.
Was das ganze sonst noch bringt?
Nunja, ausser der extrem verbesserten grafischen darstellung, weniger speicherverbrauch, was wiederum bandbreite für andere daten lässt, dürften die Preise für die grakas fallen (wenn die technik etabliert ist), da ja weniger RAM verwendet wird.

Aber iss halt noch gewaltig zukunftsmusik, die wahrscheinlich erst in unseren ohren klingen wird, wenn PB 5.0 erscheint ;)
Insofern sei dieser beitrag doch mit hinreichender vorsicht zu genießen, da eben an vielen stellen einfach nur gemutmast werden kann.


Mfg
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
Antworten