Ce document fournit un guide complet sur l'utilisation de l'exemple de code de l'API Twitter v2 et du moteur de rendu Mitsuba 3. Il comprend des instructions de configuration pour divers langages de programmation (Java, Node.js, Python, R, Ruby), des détails sur les variables d'environnement et des conseils de dépannage. Pour Mitsuba 3, il propose des conseils d'installation, des exemples d'utilisation et des informations sur ses principales fonctionnalités et contributeurs.
Exemple de code de l'API Twitter v2
Exemple de code pour les points de terminaison de l'API Twitter v2.
Les fonctionnalités individuelles de l'API disposent de dossiers dans lesquels vous pouvez trouver des exemples d'utilisation dans plusieurs langages de codage (Java, Node.js, Python, R et Ruby).
Conditions préalables
Utilisation des exemples de code
Afin d'exécuter les exemples dans ce référentiel, vous devrez configurer certaines variables d'environnement. Vous pouvez trouver vos informations d'identification et votre jeton de porteur dans l'application à l'intérieur de votre projet dans le tableau de bord du portail des développeurs.
Pour les exemples OAuth 1.0a, vous devrez exporter votre clé client et votre secret dans votre terminal. Assurez-vous de remplacer
Pour les exemples qui utilisent l’authentification par jeton du porteur, vous devrez exporter le jeton du porteur. Assurez-vous de remplacer
Exigences spécifiques à la langue
Environnement Java mis en place
Si vous utilisez Homebrew, vous pouvez installer un runtime Java en utilisant :
Vous devrez également télécharger les fichiers JAR pertinents référencés dans les exemples individuels afin de créer et d'exécuter le code. Si vous utilisez un IDE, il pourra peut-être le faire automatiquement pour vous.
Mise en place de l'environnement JavaScript (Node.js)
Vous devrez avoir installé Node.js pour exécuter ce code. Tous les exemples Node.js utilisent Needle comme client HTTP, qui doit être installé par NPM. Pour OAuth avec requêtes contextuelles utilisateur, vous devrez installer les packages got et oauth-1.0a.
Environnement Python mis en place
Vous devrez installer Python 3 pour exécuter ce code. Les exemples Python utilisent requêtes==2.24.0 qui utilise requêtes-oauthlib==1.3.0.
(Facultatif) Il est courant et recommandé de ne pas installer le package requis globalement, mais localement dans le sous-dossier du projet à l'aide de venv :
Vous pouvez installer ces packages comme suit :
Configuration de l'environnement Ruby
Vous devrez avoir installé Ruby (recommandé : >= 2.0.0) pour exécuter le code. Les exemples Ruby utilisent typhoeus comme client HTTP, qui doit être installé par gem. Pour OAuth avec requêtes contextuelles utilisateur, vous devrez également installer la gemme oauth (voir ci-dessous).
Ressources supplémentaires
Nous maintenons une collection Postman que vous pouvez utiliser pour exercer des points de terminaison d'API individuels.
Soutien
Pour les questions générales liées à l'API et aux fonctionnalités, veuillez utiliser la section v2 de nos forums de communauté de développeurs.
S'il y a un bug ou un problème avec l'exemple de code lui-même, veuillez créer un nouveau problème ici sur GitHub.
Contribuer
Nous acceptons les demandes d'extraction qui ajoutent des ajouts significatifs à ces exemples de code, en particulier pour les langages qui ne sont pas encore représentés ici.
Nous pensons qu'une communauté accueillante est importante et nous vous demandons de suivre le code de conduite Open Source de Twitter dans toutes vos interactions avec la communauté.
Licence
Copyright 2021 Twitter, Inc.
Sous licence Apache, version 2.0 : https://www.apache.org/licenses/LICENSE-2.0
exemple:
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}