robinhuehn
29.12.2003, 01:06
Hallo Leute,
aufbauend auf meiner C++ Standardbibliothek "Grundplatte", welche größtenteils schon dokumentiert und implementiert ist, soll ein Raytracer entwickelt werden. Dieser Raytracer soll sowohl die Methoden zur Kamerabildberechnung als auch die zur Lightmapberechnung von Weltkarten beinhalten (die Lichtberechungsmethoden für beide Zwecke dürften ähnlich ausfallen).
Was muss der Raytracer können :
-------------------------------------------
*Berechung der Lichtstrahlung in Spektralform, d.h. alle (internen) Berechungen des Raytracers sollen in der Einheit (Frequenz*Watt)/Sterradiant erfolgen, also streng physikalisch
*allg:Berechnung von Lichtstrahlung anhand punktförmiger Lichtquellen
*allg:Berechnung von Lichtstrahlung anhand polygonaler Lichtquellen
*Berechung von projiizierten Bildern (über eine Kamera)
*Berechung von "lightmaps" der Texturen der Welt (Radiosity)
*beliebig tiefe Reflektion des Lichts
*wenigstens einfach - diffuse Streuung des Lichts
*Schattierung und Beleuchtung volumetrischer Nebel
*Berechnung von wellenlängenabhängiger Refraktion (Dispersion)
*weichmachende Filter (min und mag-filter-ähnliches)
*äusserts flexibles multi-texture-mapping der Texturen , dazu gehört u.a.:
*Verarbeiten von normalen Maps (normale Absorbtion)
*Verarbeiten von Transmissions-maps (Durchscheindedes Licht)
*Verarbeiten von Specular-maps (reflektierendes Licht)
*Verarbeiten von rgb-Bumbmaps (oberflächenrauhe maps)
Was könnte er noch zusätzlich beherrschen :
---------------------------------------------------------
*Beugung und Interferenz (dies denke ich ist ein sehr schwer zu erreichendes Ziel)
*Polarisation (könnte interessant werden)
Das Projekt ist sehr anspruchsvoll und wird wahrscheinlich erst in einem halben Jahr oder so beginnen. Für Sachen wie Dispersion sehe ich im Moment auch keinen sinnvollen Entwurf. Ich bin auch offen für Diskussion über Änderung der primären Zielsetzung.
Vor einigen Jahren hatte ich eine sehr einfache Implementation mit niedrigerer Zielsetzung gehabt (siehe im Anhang einige Bilder dazu). Wer sich für das Projekt interessiert und etwas Erfahrung mit sowas hat, soll sich bei mir melden.
Grüße !!!
aufbauend auf meiner C++ Standardbibliothek "Grundplatte", welche größtenteils schon dokumentiert und implementiert ist, soll ein Raytracer entwickelt werden. Dieser Raytracer soll sowohl die Methoden zur Kamerabildberechnung als auch die zur Lightmapberechnung von Weltkarten beinhalten (die Lichtberechungsmethoden für beide Zwecke dürften ähnlich ausfallen).
Was muss der Raytracer können :
-------------------------------------------
*Berechung der Lichtstrahlung in Spektralform, d.h. alle (internen) Berechungen des Raytracers sollen in der Einheit (Frequenz*Watt)/Sterradiant erfolgen, also streng physikalisch
*allg:Berechnung von Lichtstrahlung anhand punktförmiger Lichtquellen
*allg:Berechnung von Lichtstrahlung anhand polygonaler Lichtquellen
*Berechung von projiizierten Bildern (über eine Kamera)
*Berechung von "lightmaps" der Texturen der Welt (Radiosity)
*beliebig tiefe Reflektion des Lichts
*wenigstens einfach - diffuse Streuung des Lichts
*Schattierung und Beleuchtung volumetrischer Nebel
*Berechnung von wellenlängenabhängiger Refraktion (Dispersion)
*weichmachende Filter (min und mag-filter-ähnliches)
*äusserts flexibles multi-texture-mapping der Texturen , dazu gehört u.a.:
*Verarbeiten von normalen Maps (normale Absorbtion)
*Verarbeiten von Transmissions-maps (Durchscheindedes Licht)
*Verarbeiten von Specular-maps (reflektierendes Licht)
*Verarbeiten von rgb-Bumbmaps (oberflächenrauhe maps)
Was könnte er noch zusätzlich beherrschen :
---------------------------------------------------------
*Beugung und Interferenz (dies denke ich ist ein sehr schwer zu erreichendes Ziel)
*Polarisation (könnte interessant werden)
Das Projekt ist sehr anspruchsvoll und wird wahrscheinlich erst in einem halben Jahr oder so beginnen. Für Sachen wie Dispersion sehe ich im Moment auch keinen sinnvollen Entwurf. Ich bin auch offen für Diskussion über Änderung der primären Zielsetzung.
Vor einigen Jahren hatte ich eine sehr einfache Implementation mit niedrigerer Zielsetzung gehabt (siehe im Anhang einige Bilder dazu). Wer sich für das Projekt interessiert und etwas Erfahrung mit sowas hat, soll sich bei mir melden.
Grüße !!!