Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 09, 2025 16:14

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: RayTracer-Strahlen aussenden
BeitragVerfasst: Di Okt 27, 2009 15:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Okt 16, 2008 13:18
Beiträge: 252
Hi,
im Moment habe ich mal wieder ein Problem, diesesmal geht es nochmal um RayTracer. Ich brauche eine Methode wie ich die Strahlen richtig aussende, denn meine Kugeln sehen jetzt schon mal aus wie Kugeln, leider verschwinden sie mit zunehmender Tiefe immer schneller. Das Tutorial hat mich leider auch nicht weiter gebracht. Und wie immer, in der Schule hatten wir das noch nicht wirklich. Ich habe hier mal meinen Ansatz, die Medothe in der die Strahlen geschickt werden heißt CreatePicture() in der RayTracer.pas . Ich hoffe ihr könnt mir helfen, denn ich habe jetzt seit 3 Tagen etliche Sachen ausprobiert aber es funktioniert einfach nicht. (Das Programm kann man nur in dieser Reihenfolge Ausführen: Starten Button"Init" Button"Start/Stop" und Verlassen sonst gibt es eine Zugriffsverletzung)


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
You even trying ...

Website: http://rise-of-light.de/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 27, 2009 16:29 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Warum ist die "Ray.Direction" in CreatePicture() immer gleich? Und der Start immer unterschiedlich?
Ich denke es sollte genau anders rum sein. Am Anfang gehen alle Strahlen aus einem Punkt raus, nämlich von dort wo die Kamera steht.
Die ganzen Berechnungen mit der Direction sind so wie sie dort stehen völlig überflüssig, also denke ich mal du hast dich einfach nur verschrieben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 27, 2009 16:53 
Offline
DGL Member
Benutzeravatar

Registriert: Do Okt 16, 2008 13:18
Beiträge: 252
Ok, das mit den einen Punkt verstehe ich ja, aber wie berechne ich den die Richtung? Wenn ich schreibe "Ray.Direction.Y:=Y/(height/2);" oder Ray.Direction.Y:=1/X;" dann sieht man erst nur rot und dann wird irgendwann alles schwarz.

_________________
You even trying ...

Website: http://rise-of-light.de/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 27, 2009 20:24 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Naja, anschaulich gesehen wird die Farbe von jedem Strahl auf eine Ebene vor der Kamera projiziert. So wie wenn man vor seinem Monitor sitzt. Und durch jeden Pixel wird ein Strahl geschickt. Das weißt du ja sicherlich schon.
Jedenfalls würde ich dann ein Viereck in den virtuellen Raum setzen. Die Normale ist gleich der Blickrichtung der Kamera. Aufgespannt wird das Rechteck durch die beiden anderen Vektoren der Kamera, also nach oben und nach rechts. Das Sichtfeld ergibt sich dann aus der Entfernung des Rechtecks zur Kamera und dessen Größe. Die Richtung des Strahls ergibt sich dann mit ein bischen Vektorrechnung.

Dir=x/(width/2)*V0+y/(height/2)*V1+KDir

Dir ist die Richtung des Strahls, KDir die Blickrichtung der Kamera, V0 und V1 sind die Vektoren die das Viereck aufspannen.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]