Ce document fournit des informations complètes sur alf.io, un système de réservation de billets open source, et Mitsuba 3, un système de rendu orienté recherche. Il détaille les conditions préalables, les instructions d'installation, les exemples d'utilisation et les directives de contribution pour les deux projets, ainsi que des informations sur leurs fonctionnalités respectives et leur état de développement. Les principaux aspects couverts incluent les processus de construction, l'intégration de Docker et la gestion des dépendances.
alf.io
Le système de réservation de billets open source.
Alf.io ([ˈalfjo]) est un système de gestion de participation à des événements gratuit et open source, développé pour les organisateurs d'événements soucieux de la confidentialité, de la sécurité et d'une politique de tarification équitable pour leurs clients.
Conditions préalables
Vous devez avoir installé Java version 17 (par exemple Oracle, OpenJDK ou toute autre distribution) pour créer et exécuter alf.io. Veuillez noter que pour le processus de construction, le JDK est requis.
Postgresql version 10 ou ultérieure.
De plus, l'utilisateur de la base de données qui crée et utilise les tables ne doit pas être un « SUPERUTILISATEUR », sinon les vérifications de la politique de sécurité des lignes ne seront pas appliquées.
Note
Comme le travail pour Alf.io v2 a commencé, cette branche peut contenir du code instable et non testé.
Si vous souhaitez créer et déployer alf.io par vous-même, veuillez commencer à partir d'une version publiée.
Profils de ressort
Il existe les profils de ressort suivants
Exécuter en mode développement
Construction progressive
Cette version inclut une copie du wrapper Gradle. Vous n'avez pas besoin d'installer Gradle sur votre système pour créer
le projet. Exécutez simplement le wrapper avec la tâche appropriée, par exemple
Exécuter avec plusieurs profils
Vous devez spécifier une propriété de projet sur la ligne de commande, telle que
La tâche locale « bootRun » a les prérequis suivants :
une fois démarré, alf.io créera toutes les tables requises dans la base de données et sera disponible sur http://localhost:8080/admin. Vous pouvez vous connecter en utilisant le nom d'utilisateur par défaut admin et le mot de passe imprimé sur la console.
Vous pouvez obtenir une liste de toutes les tâches Gradle prises en charge en exécutant
Vous pouvez configurer des propriétés système supplémentaires (si vous en avez besoin) en créant le fichier suivant et en y insérant une propriété par ligne :
Veuillez noter que ce fichier pouvant contenir des informations sensibles (telles que la clé API privée de Google Maps), il sera automatiquement ignoré par git.
Pour le débogage
Ajoutez une nouvelle ligne avec : -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 dans custom.jvmargs
Contribuer à alf.io
L'importation du projet Gradle dans Intellij et Eclipse fonctionne tous les deux.
Remarques :
Comme TestContainers attend le socket docker pour gérer les conteneurs, vous devrez procéder comme suit (voir le numéro d'origine pour plus de détails) :
Définir les 2 env. variable:
Et exécutez dans une autre console :
A noter :
Vérifier les dépendances à mettre à jour
./gradlew dependencyMises à jour
Exécuter des conteneurs Docker
Les images de conteneurs sont disponibles sur https://hub.docker.com/r/alfio/alf.io/tags.
alf.io peut également être exécuté avec Docker Compose (mode développement) :
L'exécution d'alf.io en production à l'aide de Docker compose n'est pas officiellement prise en charge.
Cependant, si vous décidez de le faire, vous devez alors apporter quelques modifications :
Tester l'application alf.io
Générer une nouvelle version de l'image docker alfio/alf.io
Créer une application et un Dockerfile
Alternativement, vous pouvez utiliser Docker (expérimental) :
Veuillez noter qu'à l'heure actuelle, la commande ci-dessus effectue la construction sans exécuter les tests automatisés.
Utilisez-le à vos propres risques.
Créer une image Docker :
À propos du fichier AppleWWDRCAG4.cer inclus
Le certificat sur src/main/resources/alfio/certificates/AppleWWDRCAG4.cer a été importé pour la fonctionnalité https://github.com/ryantenney/passkit4j#usage.
Il expirera le 2030-10-12 (AAAA-MM-JJ - à partir de https://www.apple.com/certificateauthority/).
Contributeurs
Contributeurs au code
Ce projet existe grâce à toutes les personnes qui y contribuent.
Contributeurs à la traduction (POEditor)
Un grand "Merci" va également à nos traducteurs, qui nous aident sur POEditor :
(nous montrons le nom/profil complet uniquement si nous avons reçu le consentement explicite pour le faire)
traductions terminées mais pas encore intégrées (WIP)
Commanditaires
Ce projet est sponsorisé par :
Contributeurs financiers
Devenez un contributeur financier et aidez-nous à pérenniser notre communauté. [Contribuer]
Particuliers
Organisations
Soutenez ce projet avec votre organisation. Votre logo apparaîtra ici avec un lien vers votre site Web. [Contribuer]
Moteur de rendu Mitsuba 3
Documentation | Vidéos tutorielles | Linux | Mac OS | Fenêtres | PyPI |
---|---|---|---|---|---|
️
Avertissement
️
Il existe actuellement un grand nombre de travaux non documentés et instables en cours dans
la branche master
. Nous vous recommandons fortement d'utiliser notre
dernière version
jusqu'à nouvel ordre.
Si vous souhaitez déjà tester les modifications à venir, veuillez consulter
ce guide de portage.
Il devrait couvrir la plupart des nouvelles fonctionnalités et des modifications majeures à venir.
Introduction
Mitsuba 3 est un système de rendu orienté recherche pour la lumière directe et inverse
simulation de transport développée à l'EPFL en Suisse.
Il se compose d'une bibliothèque principale et d'un ensemble de plugins qui implémentent des fonctionnalités
allant des matériaux et sources de lumière aux algorithmes de rendu complets.
Mitsuba 3 est reciblable : cela signifie que les implémentations sous-jacentes et
les structures de données peuvent se transformer pour accomplir diverses tâches différentes. Pour
Par exemple, le même code peut simuler à la fois le transport RVB scalaire (classique un rayon à la fois)
ou transport spectral différentiel sur le GPU. Tout cela s'appuie sur
Dr.Jit, un compilateur spécialisé juste à temps (JIT) développé spécifiquement pour ce projet.
Principales caractéristiques
Multiplateforme : Mitsuba 3 a été testé sur Linux ( x86_64
), macOS
( aarch64
, x8664
) et Windows ( x8664
).
Hautes performances : le compilateur Dr.Jit sous-jacent fusionne le code de rendu
en noyaux qui atteignent des performances de pointe en utilisant
un backend LLVM ciblant le CPU et un backend CUDA/OptiX
ciblant les GPU NVIDIA avec l’accélération matérielle du lancer de rayons.
Python d'abord : Mitsuba 3 est profondément intégré à Python. Matériels,
des textures, et même des algorithmes de rendu complets peuvent être développés en Python,
que le système compile JIT (et éventuellement différencie) à la volée.
Cela permet l'expérimentation nécessaire à la recherche en infographie et
d'autres disciplines.
Différenciation : Mitsuba 3 est un moteur de rendu différenciable, ce qui signifie qu'il
peut calculer les dérivées de l'ensemble de la simulation par rapport à l'entrée
des paramètres tels que la pose de la caméra, la géométrie, les BSDF, les textures et les volumes. Il
implémente des algorithmes de rendu différenciables récents développés à l'EPFL.
Spectral & Polarisation : Mitsuba 3 peut être utilisé comme monochromatique
rendu, un rendu basé sur RVB ou un rendu spectral. Chaque variante peut
éventuellement tenir compte des effets de polarisation si vous le souhaitez.
Vidéos tutorielles, documentation
Nous avons enregistré plusieurs vidéos YouTube qui fournissent une introduction douce
Mitsuba 3 et Dr Jit. Au-delà de cela, vous pouvez trouver des cahiers Juypter complets
couvrant une variété d'applications, de guides pratiques et de documentation de référence
sur readthedocs.
Installation
Nous fournissons des roues binaires précompilées via PyPI. Installer Mitsuba de cette façon est aussi simple que d'exécuter
pip installer mitsuba
sur la ligne de commande. Le package Python comprend treize variantes par défaut :
scalar_rgb
scalar_spectral
scalarspectralpolarized
llvmadrgb
llvmadmono
llvmadmono_polarized
llvmadspectral
llvmadspectral_polarized
cudaadrgb
cudaadmono
cudaadmono_polarized
cudaadspectral
cudaadspectral_polarized
Les deux premiers effectuent une simulation classique d'un rayon à la fois en utilisant soit un RVB
ou représentation spectrale des couleurs, tandis que les deux derniers peuvent être utilisés pour l'inverse
rendu sur le CPU ou le GPU. Pour accéder à des variantes supplémentaires, vous devrez
compilez une version personnalisée de Dr.Jit à l'aide de CMake. Veuillez consulter le
documentation
pour plus de détails à ce sujet.
Exigences
Python >= 3.8
(facultatif) Pour le calcul sur le GPU : Nvidia driver >= 495.89
(facultatif) Pour le calcul vectorisé/parallèle sur le CPU : LLVM >= 11.1
Usage
Voici un exemple simple de « Hello World » qui montre à quel point il est simple de restituer un
scène utilisant Mitsuba 3 de Python :
# Importez la bibliothèque en utilisant l'alias "mi" import mitsuba as mi# Définir la variante du renderermi.setvariant('scalarrgb')# Charger une scènecene = mi.loaddict(mi.cornellbox())# Rendre la scèneimg = mi. render(scene)# Écrit l'image rendue dans un fichier EXR mi.Bitmap(img).write('cbox.exr')
Des didacticiels et des exemples de cahiers couvrant une variété d'applications peuvent être trouvés
dans la documentation.
À propos
Ce projet a été créé par Wenzel Jakob.
Des fonctionnalités et/ou améliorations importantes du code ont été apportées par
Sébastien Speierer,
Nicolas Roussel,
Merlin Nimier-David,
Délio Vicini,
Tizian Zeltner,
Baptiste Nicolet,
Miguel Crespo,
Vincent Leroy, et
Ziyi Zhang.
Lorsque vous utilisez Mitsuba 3 dans des projets académiques, veuillez citer :
@software{Mitsuba3,title = {Mitsuba 3 renderer},author = {Wenzel Jakob et Sébastien Speierer et Nicolas Roussel et Merlin Nimier-David et Delio Vicini et Tizian Zeltner et Baptiste Nicolet et Miguel Crespo et Vincent Leroy et Ziyi Zhang},note = {https://mitsuba-renderer.org},version = {3.1.1},année = 2022}