Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

1

28.02.2010, 13:57

CrystalRay

Hi,
ich hab das mal hier unter Projekte gestellt, allerdings ist das Projekt nur ein kleines Nebenprojekt an dem ich derzeit nicht wirklich aktiv arbeite.
Dennoch wollte ich euch mal was interessantes zeigen.
Ich habe mit meinem kleinen RayTracer "CrystalRay" eine ganz kleine Szene erstellt, mit Kugeln und Würfeln.
Das besondere hierbei ist, dass man sich die Szene in Echtzeit anschauen kann ^^
Allerdings ist daher der Bildschirm auch gerade mal 200 auf 150 Pixel groß xD.
Ich will den RayTracer irgendwann unbedingt mal auf CUDA umstellen, damit sich das realtime-raytracing wirklich lohnt =)

Hier ist der Download link:
http://www.hlc-games.de/projects/crystal…lRayExample.zip

Mit Escape beenden, mit WASD bewegen, mit Maus umsehen

Viel Spaß :D

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

2

28.02.2010, 14:01

Nett. Hat aber noch extrem viel Optimierungsbedarf. Also auf meinem Quad ruckelt das doch noch derbe und dabei sind 200x150 eigentlich schon damals recht mickrig. Etwas mehr static, etwas weniger Wurzel und Vorberechnungen bringen hier sehr viel. Danach würde ich mal prüfen ob SIMD-Techniken unterstützt werden und einen KD-Tree implementieren. Dieser Tree ist für Raytracer praktisch die Basis für alles.

Anyway, darf man fragen, warum du OpenGL einsetzt? Das soll doch ein Raytracer sein?!

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

3

28.02.2010, 14:15

Jop guter Anfang, aber bei mir läufts leider auch nicht ganz flüssig (Q9550 auf 3.2ghz).
Außerdem stürtzt das Programm nach ner Weile ab, mal schneller mal langsamer.

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

4

28.02.2010, 14:17

OpenGL ist da nur, weil ich mit meiner 3D Engine das resultierende Bild zeichne bzw. auf den Bildschirm bringe ;)

Ansonstens schon mal danke für deine Antwort, ich werd mich damit irgendwann sicher noch intensiver befassen.
Wie bereits gesagt, ich hab das mal zwischen durch angefangen =)

CrazyPlayer

Treue Seele

Beiträge: 109

Wohnort: Mittenwald [Garmischpartenkirchen]

Beruf: Schüler

  • Private Nachricht senden

5

28.02.2010, 14:26

Also ich find das das ein guter anfang ist :)
Bei mir ruckelt es auch sehr stark(AMD Athlon 64 X2 (3,00GHz x 2)), aber ich denke das du das schon noch hin kriegst ;)
Every day is a programming day ;)

unsigned long

Treue Seele

Beiträge: 140

Wohnort: Herzogenrath

Beruf: Fachinformatiker Fachrichtung Anwendungsentwicklung

  • Private Nachricht senden

6

28.02.2010, 14:28

Nö ist schon ein guter Anfang.

Tipp: Immer die inverse-Matrix sichern, dann geht es auch mit Abfragen leichter. ;) Würde aber OpenGL weglassen, denke du erstellst da jedesmal ne neue Textur pro Frame, das haut natürlich auch drauf - zwar nicht viel, aber Kleinvieh macht auch Mist, viel Mist. GDI mit Doublebuffering oder sogar DirectDraw (da Lowlevel) sind hier meiner Erfahrung nach erheblich besser. Benutze für sowas noch immer DirectDraw7, hab darin bisher noch keine bessere API gefunden. Der Pufferzugriff ist einfach Top.

Was mir noch aufgefallen ist: Da scheint ein dickes Memory-Problem zu sein. Das Programm wird riesig mit der Zeit im Speicher. Empfehle hier einen Memory-Manager der dir Speicherbereiche vorreserviert. Jedes new/delete kostet Zeit, drum ist es immer praktisch Speicher vorrätig zu haben für eine Direktzuweisung.

Werbeanzeige