# LuxCoreRender

LuxCoreRender, früher LuxRender, ist eine freie Renderengine, die physikalisch korrekte Bilder erstellen kann. Es existieren Exporter für Blender, Cinema 4D, Softimage bzw. XSI und Maya. Es wird als freie Software unter Version 2 der Apache-Lizenz verbreitet.

## Überblick

LuxCoreRender ist ein alleinstehender 3D-Renderer und bringt daher nicht die Möglichkeit mit, Szenen im Programm selbst zu erstellen. Zu rendernde Inhalte werden mit anderen 3D-Grafikprogrammen erstellt und dann mit einem der verfügbaren Exporter in das LuxRender-Format umgewandelt.

## Entstehung

LuxCoreRender gründet sich auf PBRT, einem physikbasierten Raytracing-Programm. Trotz seiner großen Fähigkeiten und guten Struktur ist PBRT auf akademischen Einsatz ausgerichtet und daher nicht leicht für die Erstellung digitaler Kunst zugänglich. Da PBRT unter der GPL lizenziert ist, war es möglich, ein eigenes Projekt mit dem Code von PBRT als Ausgangsbasis zu starten. Mit dem Segen der ursprünglichen Autoren unternahm eine kleine Gruppe von Programmierern im September 2007 diesen Schritt. Das neue Programm wurde LuxRender genannt und sollte für den künstlerischen Gebrauch geschrieben sein. Seit seiner Anfangsphase hat es das Interesse verschiedener Programmierer weltweit auf sich gezogen.
Im Sommer wurden die Ziele für eine Version 2.0 beschlossen: Die bisherige in C geschriebene API sollte durch eine neue C++ und Python API ersetzt werden, die den Namen LuxCore erhielt. Im Winter 2017 wurde die neue Softwareversion LuxCoreRender v2.0 definiert als LuxCore API basierte render Software. Durch die Neuprogrammierung wurde auch ein Lizenzwechsel von GPL zur Apache-Lizenz möglich.
Mit der neuen LuxCoreRender API 2.0 für C++ und Python wurden einige Verbesserungen vorgenommen, die unter anderem zu einer bis zu zehnfach schnelleren Bildberechnung führen sollen. So ermöglicht LuxCore die Nutzung von OpenCL zur gleichzeitigen Nutzung auch mehrerer Grafikprozessoren und Prozessorkerne.
In Version 2.4 wird neu CUDA ab Level 10 für aktuelle Nvidia Grafikkarten voll unterstützt.
In Version 2.5 wird als Höhepunkt Nvidia OptiX für RTX-Karten unterstützt.

## Funktionalität

Einige der Merkmale von LuxRender sind:
* Biased und unbiased rendering: Benutzer können zwischen physikalischer Genauigkeit (unbiased) und Rendergeschwindigkeit (biased) wählen.
* Unterstützung des vollen Lichtspektrums: Anstatt des RGB-Farbraums wird intern mit Wellenlängen gerechnet.
* Hierarchisches prozedurales und bildbasiertes Texturensystem, in dem beide Texturtypen auf vielfältige Weise kombiniert werden können, um komplexe Materialien zu erstellen.
* Subdivision Surfaces und Displacement Mapping: Ausgehend von prozeduralen oder Bildtexturen können Oberflächen verändert bzw. verfeinert werden.
* Volumenstreuung (subsurface scattering): ermöglicht die Darstellung transluzenter Materialien, wie viele Kunststoffe, organische Materialien und insbesondere menschliche Haut.
* Shadowcatcher: eine Option, mit der ein Material einen Schatten empfangen kann, ansonsten aber transparent und unsichtbar bleibt. Diese Methode wird genutzt, um eine glaubwürdige Integration gerenderter Objekte in Fotografien zu ermöglichen
* Netzwerk-Rendering: Die Renderzeit kann durch Parallelnutzung verschiedener Computer verringert werden.
* Bewegungs- und Tiefenunschärfe
* Elementare Compositing-Funktionen. Die sogenannten image pipeline ist plugin-basiert und somit prinzipiell erweiterbar durch extern programmierte Effekte.
* Drei verschiedene Kameratypen: Perspektivisch, Orthographisch, und eine als environment camera bezeichnete Projektion, mit der 360° Kugelpanoramen erzeugt werden können.
* HDR-Ausgabe: Renderergebnisse können in verschiedenen Dateiformaten gespeichert werden, darunter .png, .tga und .exr.
* Lichtgruppen (Light Groups) können genutzt werden um die Beleuchtung durch einzelne oder zusammengefasste Lichtquellen zu ändern. Damit ist es möglich bereits gerenderte Bilder nachträglich so zu modifizieren, als wenn sie unter anderen Lichtbedingungen entstanden wären. Lichtquellen können dabei sowohl im Farbton als auch in der Intensität, mit der sie zum Gesamtergebnis beitragen, geändert werden.
* Animation des Renderingprozesses, bei dem das Bild zunehmend verfeinert wird. (Zum Betrachten auf das Bild klicken)
* Darstellung der spektralen Effekte, die entstehen, da LuxRender mit Wellenlängen anstatt des RGB-Farbraums rechnet.
* Darstellung einer Szene, die mit globaler Beleuchtung und volumetrischen Nebel berechnet wurde.