Dieses Dokument bietet umfassende Informationen über alf.io, ein Open-Source-Ticketreservierungssystem, und Mitsuba 3, ein forschungsorientiertes Rendering-System. Es enthält Einzelheiten zu den Voraussetzungen, Installationsanweisungen, Anwendungsbeispielen und Beitragsrichtlinien für beide Projekte sowie Informationen zu ihren jeweiligen Funktionen und dem Entwicklungsstand. Zu den wichtigsten behandelten Aspekten gehören Build-Prozesse, Docker-Integration und Abhängigkeitsmanagement.
alf.io
Das Open-Source-Ticketreservierungssystem.
Alf.io ([ˈalfjo]) ist ein kostenloses Open-Source-Anwesenheitsmanagementsystem für Veranstaltungen, das für Veranstalter entwickelt wurde, denen Datenschutz, Sicherheit und faire Preispolitik für ihre Kunden am Herzen liegen.
Voraussetzungen
Sie sollten Java Version 17 (z. B. Oracle, OpenJDK oder eine andere Distribution) installiert haben, um alf.io zu erstellen und auszuführen. Bitte beachten Sie, dass für den Build-Prozess das JDK erforderlich ist.
Postgresql-Version 10 oder höher.
Darüber hinaus sollte der Datenbankbenutzer, der die Tabellen erstellt und verwendet, kein „SUPERUSER“ sein, da sonst die Überprüfungen der Zeilensicherheitsrichtlinie nicht angewendet werden.
Notiz
Da die Arbeit an Alf.io v2 begonnen hat, enthält dieser Zweig möglicherweise instabilen und ungetesteten Code.
Wenn Sie alf.io selbst erstellen und bereitstellen möchten, beginnen Sie bitte mit einer veröffentlichten Version.
Federprofile
Es gibt folgende Federprofile
Im Entwicklungsmodus ausführen
Gradle-Build
Dieser Build enthält eine Kopie des Gradle-Wrappers. Zum Erstellen muss Gradle nicht auf Ihrem System installiert sein
das Projekt. Führen Sie beispielsweise einfach den Wrapper zusammen mit der entsprechenden Aufgabe aus
Laufen mit mehreren Profilen
Sie müssen in der Befehlszeile eine Projekteigenschaft angeben, z
Für die lokale Aufgabe „bootRun“ gelten folgende Voraussetzungen:
Nach dem Start erstellt alf.io alle erforderlichen Tabellen in der Datenbank und ist unter http://localhost:8080/admin verfügbar. Sie können sich mit dem Standardbenutzernamen admin und dem auf der Konsole ausgedruckten Passwort anmelden.
Sie können eine Liste aller unterstützten Gradle-Aufgaben erhalten, indem Sie ausführen
Sie können zusätzliche Systemeigenschaften konfigurieren (falls Sie diese benötigen), indem Sie die folgende Datei erstellen und darin eine Eigenschaft pro Zeile einfügen:
Bitte beachten Sie, dass diese Datei von Git automatisch ignoriert wird, da sie vertrauliche Informationen enthalten kann (z. B. den privaten API-Schlüssel von Google Maps).
Zum Debuggen
Fügen Sie eine neue Zeile mit: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 in custom.jvmargs hinzu
Beitrag zu alf.io
Das Importieren des Gradle-Projekts in Intellij und Eclipse funktioniert beide.
Hinweise:
Da TestContainer den Docker-Socket zur Verwaltung der Container erwarten, müssen Sie Folgendes tun (Einzelheiten siehe Originalausgabe):
Definieren Sie die 2 Umgebungen. Variable:
Und in einer anderen Konsole ausführen:
Zu beachten:
Überprüfen Sie die zu aktualisierenden Abhängigkeiten
./gradlew dependencyUpdates
Ausführen von Docker-Containern
Containerbilder sind unter https://hub.docker.com/r/alfio/alf.io/tags verfügbar.
alf.io kann auch mit Docker Compose (Entwicklungsmodus) ausgeführt werden:
Das Ausführen von alf.io in der Produktion mit Docker Compose wird offiziell nicht unterstützt.
Wenn Sie sich jedoch dazu entschließen, müssen Sie einige Änderungen vornehmen:
Testen Sie die alf.io-Anwendung
Generieren Sie eine neue Version des Docker-Images alfio/alf.io
Erstellen Sie eine Anwendung und eine Docker-Datei
Alternativ können Sie Docker (experimentell) verwenden:
Bitte beachten Sie, dass der obige Befehl im Moment den Build ausführt, ohne die automatisierten Tests auszuführen.
Die Nutzung erfolgt auf eigene Gefahr.
Docker-Image erstellen:
Über das enthaltene AppleWWDRCAG4.cer
Das Zertifikat unter src/main/resources/alfio/certificates/AppleWWDRCAG4.cer wurde für die https://github.com/ryantenney/passkit4j#usage-Funktionalität importiert.
Es läuft am 12.10.2030 (JJJJ-MM-TT – Stand: https://www.apple.com/certificateauthority/) ab.
Mitwirkende
Code-Mitwirkende
Dieses Projekt existiert dank aller Menschen, die dazu beitragen.
Übersetzungsmitarbeiter (POEditor)
Ein großes Dankeschön geht auch an unsere Übersetzer, die uns bei POEditor unterstützen:
(Den vollständigen Namen/Profil zeigen wir nur, wenn wir hierfür eine ausdrückliche Einwilligung erhalten haben)
Übersetzungen abgeschlossen, aber noch nicht integriert (WIP)
Sponsoren
Dieses Projekt wird gefördert von:
Finanzielle Mitwirkende
Werden Sie ein finanzieller Spender und helfen Sie uns, unsere Gemeinschaft zu erhalten. [Beitragen]
Einzelpersonen
Organisationen
Unterstützen Sie dieses Projekt mit Ihrer Organisation. Hier erscheint Ihr Logo mit einem Link zu Ihrer Website. [Beitragen]
Mitsuba Renderer 3
Dokumentation | Tutorial-Videos | Linux | MacOS | Windows | PyPI |
---|---|---|---|---|---|
️
Warnung
️
Derzeit gibt es hier eine große Menge undokumentierter und instabiler Arbeiten
der master
. Wir empfehlen Ihnen dringend, unsere zu verwenden
neueste Version
bis auf Weiteres.
Wenn Sie die bevorstehenden Änderungen bereits ausprobieren möchten, schauen Sie sich bitte um
dieser Portierungsanleitung.
Es sollte die meisten kommenden neuen Funktionen und Breaking Changes abdecken.
Einführung
Mitsuba 3 ist ein forschungsorientiertes Rendering-System für Vorwärts- und Rückwärtslicht
Transportsimulation, entwickelt an der EPFL in der Schweiz.
Es besteht aus einer Kernbibliothek und einer Reihe von Plugins, die Funktionen implementieren
von Materialien und Lichtquellen bis hin zu kompletten Rendering-Algorithmen.
Mitsuba 3 ist retargetierbar : Das bedeutet, dass die zugrunde liegenden Implementierungen und
Datenstrukturen können sich verändern, um verschiedene Aufgaben zu erfüllen. Für
Beispielsweise kann derselbe Code beide skalaren (klassischen, jeweils einen Strahl gleichzeitig ausführenden) RGB-Transporte simulieren
oder differenzieller spektraler Transport auf der GPU. Darauf baut alles auf
Dr.Jit, ein spezialisierter Just-in-Time -Compiler (JIT), der speziell für dieses Projekt entwickelt wurde.
Hauptmerkmale
Plattformübergreifend : Mitsuba 3 wurde unter Linux ( x86_64
) und macOS getestet
( aarch64
, x8664
) und Windows ( x8664
).
Hohe Leistung : Der zugrunde liegende Dr.Jit-Compiler verschmilzt Rendering-Code
in Kernel, die modernste Leistung erzielen
ein LLVM-Backend, das auf die CPU abzielt, und ein CUDA/OptiX-Backend
zielt auf NVIDIA-GPUs mit Raytracing-Hardwarebeschleunigung ab.
Python zuerst : Mitsuba 3 ist tief in Python integriert. Materialien,
Texturen und sogar vollständige Rendering-Algorithmen können in Python entwickelt werden,
die das System im laufenden Betrieb JIT-kompiliert (und optional differenziert).
Dies ermöglicht die Experimente, die für die Forschung in der Computergrafik erforderlich sind
andere Disziplinen.
Differenzierung : Mitsuba 3 ist ein differenzierbarer Renderer, was bedeutet, dass er
kann Ableitungen der gesamten Simulation in Bezug auf die Eingabe berechnen
Parameter wie Kameraposition, Geometrie, BSDFs, Texturen und Volumina. Es
implementiert aktuelle differenzierbare Rendering-Algorithmen, die an der EPFL entwickelt wurden.
Spektral und Polarisation : Mitsuba 3 kann monochromatisch verwendet werden
Renderer, RGB-basierter Renderer oder Spektralrenderer. Jede Variante kann
Berücksichtigen Sie optional die Auswirkungen der Polarisation, falls gewünscht.
Tutorial-Videos, Dokumentation
Wir haben mehrere YouTube-Videos aufgenommen, die eine sanfte Einführung bieten
Mitsuba 3 und Dr.Jit. Darüber hinaus finden Sie komplette Juypter-Notizbücher
Es umfasst eine Vielzahl von Anwendungen, Anleitungen und Referenzdokumentationen
auf readthedocs.
Installation
Wir stellen vorkompilierte Binärräder über PyPI bereit. Mitsuba auf diese Weise zu installieren ist so einfach wie das Ausführen
pip install mitsuba
auf der Kommandozeile. Das Python-Paket enthält standardmäßig dreizehn Varianten:
scalar_rgb
scalar_spectral
scalarspectralpolarized
llvmadrgb
llvmadmono
llvmadmono_polarized
llvmadspectral
llvmadspectral_polarized
cudaadrgb
cudaadmono
cudaadmono_polarized
cudaadspectral
cudaadspectral_polarized
Die ersten beiden führen eine klassische Einzelstrahl-Simulation mit entweder einem RGB durch
oder spektrale Farbdarstellung, wobei die beiden letzteren für die Umkehrung verwendet werden können
Rendern auf der CPU oder GPU. Um auf zusätzliche Varianten zugreifen zu können, müssen Sie Folgendes tun
Kompilieren Sie eine benutzerdefinierte Version von Dr.Jit mit CMake. Bitte beachten Sie die
Dokumentation
Einzelheiten hierzu finden Sie hier.
Anforderungen
Python >= 3.8
(optional) Für Berechnung auf der GPU: Nvidia driver >= 495.89
(optional) Für vektorisierte / parallele Berechnung auf der CPU: LLVM >= 11.1
Verwendung
Hier ist ein einfaches „Hello World“-Beispiel, das zeigt, wie einfach es ist, ein zu rendern
Szene mit Mitsuba 3 aus Python:
# Importieren Sie die Bibliothek mit dem Alias „mi“import mitsuba as mi# Legen Sie die Variante des Renderers festmi.setvariant('scalarrgb')# Laden Sie eine Szenescene = mi.loaddict(mi.cornellbox())# Rendern Sie die Szeneimg = mi. render(scene)# Schreiben Sie das gerenderte Bild in eine EXR-Dateimi.Bitmap(img).write('cbox.exr')
Es stehen Tutorials und Beispiel-Notebooks für eine Vielzahl von Anwendungen zur Verfügung
in der Dokumentation.
Um
Dieses Projekt wurde von Wenzel Jakob erstellt.
Wesentliche Funktionen und/oder Verbesserungen am Code wurden von beigesteuert
Sébastien Speierer,
Nicolas Roussel,
Merlin Nimier-David,
Delio Vicini,
Tizian Zeltner,
Baptiste Nicolet,
Miguel Crespo,
Vincent Leroy und
Ziyi Zhang.
Wenn Sie Mitsuba 3 in akademischen Projekten verwenden, geben Sie bitte Folgendes an:
@software{Mitsuba3,title = {Mitsuba 3 renderer},author = {Wenzel Jakob und Sébastien Speierer und Nicolas Roussel und Merlin Nimier-David und Delio Vicini und Tizian Zeltner und Baptiste Nicolet und Miguel Crespo und Vincent Leroy und Ziyi Zhang},Anmerkung = {https://mitsuba-renderer.org},Version = {3.1.1},Jahr = 2022}