Redner ist ein differenzierbarer Renderer, der die Ableitungen des Renderns von Ausgängen in Bezug auf willkürliche Szenenparameter einnehmen kann, dh Sie können sich vom Bild zu Ihrer 3D -Szene zurückversetzen. Einer der Hauptanwendungen von Redner ist das umgekehrte Rendering (daher der Name Redner) durch Gradientenabstieg. Was Redner auszeichnet, sind: 1) Es berechnet die korrekten Rendering-Gradienten stochistisch ohne Annäherung, indem sie die Diskontinuitäten ordnungsgemäß berücksichtigt, und 2) einen physikalisch basierten Modus-was bedeutet, dass sie Photonen simulieren und realistische Beleuchtungsphänomene wie Schatten und globale Beleuchtung erzeugen können, und es behandelt die Ableitung dieser Merkmale korrekt. Sie können Redner auch in einem schnellen aufgeschobenen Rendering -Modus für die lokale Schattierung verwenden: In diesem Modus hat es im Vergleich zu den meisten differenzierbaren Renderern, die es da draußen gibt, immer noch die korrekte Gradientenschätzung und aufwändigere Materialmodelle.
Für weitere Details zum Renderer, das, was es tun kann, und die Techniken, die es für die Berechnung der Derivate verwendet, schauen Sie sich bitte das Papier an: Differenzierbare Monte-Carlo-Strahlen, die durch die Kantenprobenahme, Tzu-Mao Li, Miika Aittala, Fredo Durand, Jaakko Lehtinen, verfolgt werden. Seit der Einreichung haben wir den Renderer ziemlich verbessert. Insbesondere haben wir ein CUDA-Backend implementiert und die kontinuierlichen Derivate erheblich beschleunigt, indem wir die automatische Differenzierung durch manuell abgeleitete Derivate ersetzen. In Tzu-Maois These finden Sie noch weitere Details. Siehe auch den Abschnitt "Nachrichten" unten für den Changelog.
Mit Pytorch (jeder Version> = 1.0) oder TensorFlow (Version> = 2.0) in Ihrer aktuellen Python -Umgebung installiert. Für die GPU -beschleunigte Version (Linux und Windows, CUDA -Version> = 10.0):
pip install redner-gpu
Ansonsten (Windows, Linux und OS X):
pip install redner
Windows -Version unterstützt nur Pytorch und nicht TensorFlow im Moment.
Sie können auch aus der Quelle bauen. Sehen Sie sich das Wiki an, um Anweisungen zu erstellen.
Ein guter Ausgangspunkt, um zu lernen, wie man Redner benutzt, besteht darin, das Wiki zu betrachten. Die API -Dokumentation ist hier. Sie können sich auch die Testverzeichnisse (Pytorch und Tensorflow) ansehen, um einige Ideen zu haben.
06/12/2020 - Python 3.8 Support.
04/01/2020 - Ein Kamera -Verzerrungsmodell hinzugefügt.
17.03.2020 - PIP -Paket für Windows! Derzeit nur mit Pytorch -Unterstützung. Die Tensorflow -Unterstützung ist mit einigen Zusammenstellungsproblemen anhängig.
27.02.2020 - Ein Fehler in BRDF -Derivaten behoben. Dies wirkt sich am meisten auf die normale Zuordnung aus. Vielen Dank an Markus Worchel noch einmal, dass Sie dies gemeldet haben.
02/02/2020 - Es wurde ein schwerwiegender Fehler für das Rendering von G -Buffer behoben (#93). Vielen Dank an Markus Worchel für die Berichterstattung.
02/01/2020 - Vorläufige Windows -Unterstützung für GPU ist dank Markus Worchel erneut verfügbar.
01/08/2020 - Verbessert die Speicherverwendung von MIPMapping erheblich. Jetzt können Sie relativ sicher große Texturen (z. B. 4096x4096) verwenden.
15.12.2019 - Ein GC -bezogener Fehler auf dem Pytorch -Rendering -Code in 0.1.30 behoben. Bitte aktualisieren.
12.12.2019 - Vorläufige Windows -Unterstützung (CPU -Only) ist dank des Beitrags von Markus Worchel erhältlich.
12/09/2019 - mit Google Colab viele Tutorials in Wiki hinzugefügt. Eine von Sphinx generierte Dokumentation hinzugefügt.
12/09/2019 - Ein Fehler im Wellenfront -OBJ -Loader behoben. Danke Dejan Azinović für die Berichterstattung!
12/01/2019 - Wiederholen Sie die Bausysteme und setzen Sie die Python -Radinstallation ein. Redner ist jetzt auf pypi (https://pypi.org/project/redner-gpu/ und https://pypi.org/project/redner/).
11/04/2019 - fügte ein "generisches Textur" -Feld in das Material hinzu, das eine willkürliche Anzahl von Kanälen aufweisen kann. Dies kann für die Deep -Learning -Anwendung nützlich sein, bei der die Textur von einem Netzwerk generiert wird und die Ausgabe zur weiteren Verarbeitung in ein anderes Netzwerk eingespeist wird. Siehe test_multichannels.py für Verwendungen. Vielen Dank an François Ruty für den Vorschlag und die Hilfe bei der Umsetzung.
11/04/2019 - Mehrere Fehler in den von den uv_indices und normal_indices eingeführten OBJ/Mitsuba -Loadern haben festgestellt.
19.10.2019 - Scheitelpunktunterstützung hinzugefügt. Siehe test_vertex_color.py.
10/08/2019 - Automatische UV -Berechnung über die Xatlas -Bibliothek hinzugefügt. Siehe die Funktion compute_uvs in form.py und test_compute_uvs.py.
10/08/2019 - Veränderte die Formklassenschnittstelle leicht. Die Konstruktorreihenfolge ist unterschiedlich und nimmt jetzt zusätzliche 'uv_indices' und 'normal_indices' Argumente für den Umgang mit Nähten in UV -Mapping und OBJ -Laden erforderlich. Siehe Pyredner/Shape.Py und Tutorial 2.
22.09.2019 - Wir verarbeiten jetzt Inkonsistenzen zwischen Schattierungsnormalen und Geometrie -Normalen anmutiger (anstatt in den meisten Fällen nur Null zurückzugeben). Dies hilft beim Rendern von Modellen in freier Wildbahn beispielsweise Models in Shapenet.
21.09.2019 - Ein schwerwiegender Fehler mit schwerem Pufferüberlauf im aufgeschobenen Rendering -Code behoben, wenn kein Radiance -Ausgangskanal vorhanden ist. Wenn die Dinge für Sie nicht funktionierten, versuchen Sie es vielleicht erneut.
16.08.2019 - Docker -Dateien für die einfachere Installation hinzugefügt. Vielen Dank an Seyoung Park für den Beitrag. Außerdem habe ich den Wiki -Installationshandbuch erheblich verbessert.
13.08.2019 - Normale Kartenunterstützung hinzugefügt. Siehe Tests/test_teapot_normal_map.py.
08/10/2019 - den Derivatakkumulationscode (segmentierte Reduktion -> Atomik) signifikant vereinfacht. Auch GPU -Rückwärtspass erhielt 20 ~ 30% Beschleunigung.
08/07/2019 - Ein Rauheitstrukturfehler behoben.
27.07.2019 - TensorFlow 1.14 Support! Derzeit unterstützen Sie nur die eifrige Ausführung. Wir werden die Ausführung von Graphs unterstützen, nachdem TensorFlow 2.0 stabil wird. Beispiele finden Sie tests_tensorflow (ich empfehle ab Tests_tensorflow/test_single_triangle.py). Die CMAKE -Dateien sollten den Tensorflow automatisch in Python erkennen und entsprechende Dateien installieren. Tutorials sind in Arbeit. Vielen Dank an den Seyoung Park für den Beitrag!
25.06.2019 - orthografische Kameras hinzugefügt (siehe Beispiele/Two_d_mesh.py).
13.05.2019 - Es wurde einige Fehler im Zusammenhang mit Kameramaperivaten behoben. Wenn etwas für Sie vorher nicht funktioniert hat, versuchen Sie es vielleicht noch einmal.
28.04.2019 - Support der QMC hinzugefügt (siehe Tests/test_qmc.py und die Dokumentation in Pyredner.Serialize_scene ()).
04/01/2019 - Unterstützen Sie jetzt Multi -GPU (siehe pyredner.set_device).
03/31/2019 - Die hierarchische Edge -Stichprobenmethode in das Papier zurückgebracht.
02/02/2019 - Das Wiki enthält nun eine Reihe von Tutorial. Der Plan besteht darin, die Beispiele weiter zu erweitern.
Redner hängt von einigen Bibliotheken/Systemen ab, die alle im Repository enthalten sind:
Der aktuelle Entwicklungsplan besteht darin, den Renderer zu verbessern. Die folgenden Funktionen werden in naher Zukunft hinzugefügt (nicht in einer bestimmten Reihenfolge aufgeführt):
@article{Li:2018:DMC,
title = {Differentiable Monte Carlo Ray Tracing through Edge Sampling},
author = {Li, Tzu-Mao and Aittala, Miika and Durand, Fr{'e}do and Lehtinen, Jaakko},
journal = {ACM Trans. Graph. (Proc. SIGGRAPH Asia)},
volume = {37},
number = {6},
pages = {222:1--222:11},
year = {2018}
}
Wenn Sie Fragen/Kommentare/Fehlerberichte haben, können Sie ein GitHub-Problem oder eine E-Mail an den Autor Tzu-Mao Li ([email protected]) eröffnen.