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

SKiD

Frischling

  • »SKiD« ist der Autor dieses Themas
  • Private Nachricht senden

1

03.01.2013, 14:44

Strahlenoptik und Reflexion

Hallo,

ich suche derzeit eine Lösung, um bei einer Strahlenverfolgung die Reflexion im 3D-Raum zu berechnen. Das heißt, dass ein Strahl im 3D-Raum abgeschossen wird und auf ein anderes Objekt (bestehend aus Dreiecken) trifft. Von diesem Objekt ausgehend soll anschließend die Reflexion des Strahls berechnet werden. Leider habe ich keine genaue Idee, wie das im 3D-Raum anhand diffuser, also keine Lichtbrechung anhand gläserner Objekte gemacht wird.

Gibt es dazu irgendwelche Tutorials oder ähnliches?

Beste Grüße,
SKiD.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

03.01.2013, 14:45

Was meinst du jetzt mit "diffuser Reflexion"?
Meinst du wirklich diffuse Reflexion oder nicht eher perfekte Reflexion nach dem Prinzip "Einfallswinkel = Ausfallswinkel"?

SKiD

Frischling

  • »SKiD« ist der Autor dieses Themas
  • Private Nachricht senden

3

03.01.2013, 16:52

Was meinst du jetzt mit "diffuser Reflexion"?
Meinst du wirklich diffuse Reflexion oder nicht eher perfekte Reflexion nach dem Prinzip "Einfallswinkel = Ausfallswinkel"?
Entschuldige, ich hätte mich etwas deutlicher ausdrücken sollen. Ich meinte die Reflexion auf diffusen Oberflächen, wie etwa Holz oder Plastik. Also keine Lichtbrechung wie es bei Glas der Fall ist.

Das Reflexionsgesetz ist mir soweit bekannt. Das Problem ist allerdings, das ich keine Ahnung habe, wie ich das genau im 3D-Raum anstelle, wenn ein Strahl auf ein Triangle trifft. Im Netz kann ich nun auch keine direkten Beispiele dazu finden, wie man das ambesten in der Programmierung anstellt, wobei ich fast vermute, dass ich unter den falschen Begriffen suche.

Horni

Frischling

Beiträge: 21

Beruf: Student MB

  • Private Nachricht senden

5

03.01.2013, 17:26

Müsste ja nichts weiter sein als ein Lichtfleck auf der Oberfläche, den man von jedem Winkel aus sieht.
Übrigens Lichtbrechung ist keine Reflexion

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Horni« (03.01.2013, 17:33)


David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

03.01.2013, 17:42

Das wäre aber nur ein ganz billiger Fake, und man würde nur die Reflexion von Lichtquellen sehen - nicht jedoch von der Umgebung.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

03.01.2013, 17:58

Hell yea, diffuse Reflektionen, da freut sich der Prozessor!
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

8

04.01.2013, 21:11

Die Beschreibung erinnert mich an einem Artikel über 'Photon Mapping' den ich mal gelesen habe, eigentlich zur darstellung/berechnung von Schatten:

Zitat

Photon Mapping ist eine Erweiterung für Raytracing-Renderer. Mit Photon Mapping können
verschiedene grafische Effekte, wie Caustics oder indirekte Beleuchtung, effizient erzielt werden.
Der Ansatz von Photon Mapping entspricht der tatsächlichen natürlichen Beleuchtung. Eswerden von einer Lichtquelle aus mehrere Photonen in zufällige Richtungen ausgesandt. Der Wegdieser Photonen wird nachverfolgt. Kommt es zu einer Kollision mit einem Objekt, wird es andieser Stelle erhellt und das Photon mit entsprechend verminderter Energie
reflektiert und weiterverfolgt. Dies geschieht solange, bis das Photon keine Energie mehr hat. Das
Ergebnis, also dieBeleuchtungspunkte, wird in einer „Photon-Map“ gespeichert. Diese wird in einem zweiten
Rendervorgang benutzt, um per Raytracing für die komplette Beleuchtung zu sorgen.
Die Ergebnisse eines mit Photon Mapping berechneten Bildes sind äußerst realistisch.



(Link)



Ein Vorteil ist die hervorragende Qualität des Ergebnisses, die durch kein anderes bisher bekanntes
Verfahren erreicht wird. Dies liegt daran, dass der Algorithmus die natürliche Beleuchtung
immitiert und es so möglich geworden ist, auch indirekte Beleuchtungen zu erzeugen. Da die Szene
durch die Photonen beleuchtet wird, sind auch alle Schatten realistisch: Auf die entsprechenden
Stellen fallen keine Photonen. Nachteilig ist, dass der Algorithmus sehr zeitaufwändig ist, da man
selbst für einfache Szenen ca. 20.000 Photonen benötigt. Die Berechnung der Photonen erfolgt
ausschließlich im Hauptprozessor und wird bisher nicht direkt durch Hardware unterstützt.

Echtzeitrendering ist mit diesem Algorithmus daher leider nicht möglich.

Quelle: http://www.codeworx.org/grafik_art_schatten.php

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

04.01.2013, 23:19

Zitat

Die Beschreibung erinnert mich an einem Artikel über 'Photon Mapping' den ich mal gelesen habe, eigentlich zur darstellung/berechnung von Schatten:

Photon Mapping ist eigentlich nicht für Schatten da, sondern für eher für Caustics und indirekte Beleuchtung. Das steht aber sogar dort in deinem zitierten Artikel.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

10

04.01.2013, 23:31

Da hast Du wohl recht, jedoch habe ich dieses im zusammenhang und auf der suche nach möglichkeiten zur Schattenberechnung gefunden. MMn entspricht das wohl der Fragestellung am ehesten, wegen diesen Teilen;

Zitat

dass ein Strahl im 3D-Raum abgeschossen wird und auf ein anderes Objekt
(bestehend aus Dreiecken) trifft. Von diesem Objekt ausgehend soll
anschließend die Reflexion des Strahls berechnet werden.

Zitat

Es werden
von einer Lichtquelle aus mehrere Photonen in zufällige Richtungen
ausgesandt. Der Weg dieser Photonen wird nachverfolgt. Kommt es zu einer
Kollision mit einem Objekt, wird es andieser Stelle erhellt und das
Photon mit entsprechend verminderter Energie reflektiert und weiterverfolgt. Dies geschieht solange, bis das Photon keine Energie mehr hat.


Falls nicht ist es dennoch ein interessantes Thema ;)

Werbeanzeige