Bella est un moteur de rendu spectral qui modélise la complexité de l’optique physique de manière aussi juste que possible et qui la rend intuitive et accessible.
Le modèle unique de matériau Bella permet la création des matériaux les plus fins en combinant quelques éléments de base qui possèdent un nombre très limité de paramètres.
La caméra utilisée dans Bella vous sera familière avant que vous ne commenciez car elle reprend les principes d’un vrai appareil photo. Elle supporte le décentrement, le vignetting, les formes de diaphragmes rond ou polygonales, la correction d’exposition, la diffraction et l’éblouissement, les filtres et plus encore.
RENDU SPECTRAL
Bella fonctionne dans un univers spectral, permettant des effets de dispersion, diffraction.
CAUSTIQUES COMPLEXES
Le Solver Apollo de Bella est capable de rendre les caustiques à travers les surfaces transparents comme pour les piscines et autres caustiques à travers le verre.
IPR SOLVER
L'IPR (Interactive Preview Render) de Bella est adapté pour vous fournir un retour rapide sur vos scènes et matériaux.
Matériaux "layered"
Les matériaux de Bella sont conçus par couche physique. La lumière interagit avec les différentes épaisseurs du matériaux : films minces, vernis avec diffusion volumique...
Films minces
Le "node" Thin Film (couche ou film mince), peut être appliquer sur un layer ou un substrat (premier niveau du matériau) et simule une couche de brillance de quelques nanomètres, créant des effets d'iridescence
Nested DIELECTRICS
La fonction "nested priority" permet de créer des matériaux transparents avec un ordre de priorité pour s'affranchir des problèmes de modélisation.
IOR COMPLEXES
Les matériaux complexes IOR donnent accès à des données mesurées de façon spectrale.
SMART MATERIALS
Les Smart Material de Bella offrent une manière simple et rapide de créer des matériaux de type : métal, céramique, plastique, plastique translucent.
TEXTURES
Dans Bella, les textures sont basées sur du nodal permettant des grandes possibilités de manipulations
En complément de son système de matériaux et caméra, Bella utilise un sytème nodal de description de scène qui permet la création sans limite d'instances.
Et bien entendu, Bella supporte également diverses géométries procédurales, les lumières, les textures ainsi que les standards dans l’industrie comme file I/O et le contrôle des couleurs avec OpenImageIO et OpenColorIO ainsi que le denoiser développé par Intel : OpenImageDenoise.
materials
Les nodes les plus importants dans le système de matériaux Bella sont le “conductor” et le "dielectric", qui représentent les matériaux opaques ou transparents. Quelques paramètres sont communs comme l’opacité, le bump, la rugosité et l’anisotropie.
A côté de ces nodes (que nous appelons "substrates") il y a un 3e composant important : le layer, qui simule une très fine couche (de l'ordre du micromètre) d’une matériau transparent englobant les "substrates dielectric ou conductor”)
Ce ”layer” est défini par de paramètres de surface et de volume, qui contrôlent comment la lumière se comporte en surface et à l’intérieur du layer. Comme pour les substrates la surface du layer supporte le node coating (voir plus loin) et le Medium permet de gérer la diffusion de la lumière dans le layer.
Nous commençons à voir comment le “layer” simule la très fine couche transparente, et nous pouvons changer la couleur de transparence de ce layer.
Réduisons le roughness du layer à 10% et teintons la transparence du layer avec une couleur similaire à celle du conductor et pour finir ajoutons un léger scattering dans le medium du layer.
Nous pouvons aussi créer des matériaux avec seulement un layer sans substrat, grâce au matériau “Sheet”, qui est juste un layer. Cela permet de créer des matériaux sans épaisseur comme les feuilles, le papier avec la même possibilité de scattering dans le matériau
Comme mentionné plus haut le matériau conductor et dielectric aussi bien que les layers supportent les coatings qui simulent les interférences fines.
En complément des matériaux types, il y a aussi des nodes “blend” et “stack” qui permettent de combiner différents matériaux entre eux.
Pour finir Bella a bien sûr des matériaux emitter qui permettent simplement de rendre des objets lumineux.
TEXTURES
Toutes les textures sont implémentées sous forme nodal. Le node de sortie peut être utilisé en entrée sur d’autres nodes et ainsi de suite.
Un bon exemple de l’utilisation des nodes dans l’hypershade de maya :
cameras
Les caméras dans Bella sont composées des nodes Camera, lens (objectif) et sensor (capteur) comme les composants que l’on retrouve dans les appareils photos réels.
La caméra supporte l’exposition manuel ou les priorités vitesse, diaphragme. Cette fonctionnalité est toujours très pratique pour ajuster la profondeur de champ tout en gardant une exposition correcte.
Le node “sensor” représente le capteur physique de la caméra et permet le contrôle de la taille du capteur ou film, de l’ISO et de la netteté comme la simulation de la diffraction et de l’éblouissement.
Le node ‘lens” supporte le vignettage, le décentrement et le choix des formes de diaphragme (circulaire, hexagonal avec des lames droites ou courbes), la rotation et un porte-filtre avec des filtres diffractifs ou de densité.
Il y a 2 types de “lens” (lentilles) : mince et épaisse. Les lentilles minces sont des lentilles parfaites alors que les lentilles épaisses créent des effets comme des aberrations chromatiques et des déformations géométriques.
PROCEDURAL GEOMETRIES
Bella dispose de géométries procédurales comme les sphères, plans, cylindres qui se rendent de manière très précise et occupe virtuellement aucune place en mémoire.
Ses procédurales peuvent remplacer les mesh équivalents dans Maya.
PROCEDURAL LIGHTS
En complément du support des objets émissifs grâce aux matériaux emitter, Bella propose également des lumières Point, Area, Directionnel et Spot.
Le but de ces lumières est de pouvoir représenter précisément les lumières Bella dans les applications hôtes.
nodes et arborescence d'une scene
Tout ce qui est dans Bella est un node. Une scène est donc un assemblage de nodes dont les points d'entrée et de sortie sont connectés entre eux.
solvers (algorithme de calculs)
L’architecture du moteur Bella permet d’avoir un ou plusieurs Solvers dans la scène.
Nos solvers actuels pour le caclul de la beauty pass sont :
Atlas
Atlas est un bi-directionnel path tracer non biaisé, c’est le solver par défaut. Il est optimisé pour les scènes aux scénarios lumineux complexes.
Ares
Très proche d’Atlas, Ares est un path tracer non bi-directionnel non biaisé, que l’on peut utiliser pour des scènes aux settings lumière plus simple. Dans ce cas il sera plus rapide qu’Atlas.
Apollo
Apollo utilise un nouvel algorithme propriétaire. Il est capable de résoudre des situations lumineuses irréalisables avec un path tracer bi-directionnel comme Atlas. Notre espoir est qu'à terme Apollo remplacera Atlas. Comme il s'agit d'une nouvelle méthode elle doit encore être testée et validée sur des plus nombreuses scènes.
IPR
Interactive Preview Render (IPR) est un path tracer non biaisé adapté pour avoir un retour rapide d'une scène et des ses modifications. Il est utilisé à l'intérieur des logiciels de modélisation pour fournir un rendu interactif
passes
Les "Passes" ou encore appelées layers, channels ou AOV dans d'autres moteurs de rendu permettent de sortir des images autres que la beauty pass, comme le material ID, l'alpha pass. Bella propose les passes suivantes :
- Alpha Pass
- Albedo Pass
- Material Pass
- Normal Pass
- Object Pass
- Tangent Pass
- Z Pass
N'hésitez à nous donner les passes que vous souhaitez nous voir développer.
denoiser
Bella utilise l'OpenImageDenoise d'Intel pour le solver IPR et ceux de production.
Dans l'IPR nous utilisons une méthode rapide de denoising qui consomme peu de puissance CPU et de RAM.
Pour les solvers de production nous utilisons toute la puissance du denoiser pour des résultats qui nous ont surpris par leur efficacité.
color management
Bella supporte nativement les espaces linear, sRGB et Rec709 et comme nous utilisons OpenColorIO vous avez une grande souplesse dans la gestion de votre espace colorimétrique.
The Bella file formats
Bella propose 2 formats de fichiers : .bsx format binaire et .bsa format plain-text. Le moteur supporte également un format .bsz, archive zippée d'une scène avec tous ses éléments constitutifs. Cela permet l'échange rapide entre différents ordinateurs ou l'envoi vers un ferme de rendu.
Alors que le format binaire est généralement utilisé en production (grâce à ses meilleures performances en lecture/écriture et sa taille réduite), la version plain-text est le meilleur format pour le debugging et l'édition manuelle de scènes.
C'est pourquoi nous avons porté un attention particulière pour créer un format plain-text facile à lire et à écrire, qui ressemble à du code.
# Bella Scene - 2019-02-24T20:32:39-0600
# Arrays may be auto-indexed, and nodes may be referenced before creation:
xform world:
.children[*] = __persp__;
.children[*] = __sphere__;
.children[*] = __plane__;
.children[*] = __keyRight__;
.children[*] = __keyLeft__;
.steps[0].xform = mat4(-0.01 0 0 0 0 0.01 0 0 0 0 0.01 0 0 0 0 1);
# We can create a node and set its inputs by their full paths:
settings settings;
settings.beautyPass = beautyPass;
settings.camera = __perspShape__;
settings.iprScale = 57f;
# Or, an existing node may be made current using the 'with' keyword:
camera __perspShape__;
with __perspShape__:
.lens = lens;
.sensor = sensor;
# Or, we can combine both into the node creation step:
xform __persp__:
.children[0] = __perspShape__;
[...]
Nous utilisons déjà le plain-text en interne pour des tests d'exportation depuis SketchUp.
plugins
Notre premier plugin est Bella for Maya. Bien sûr nous nous appuyons sur les nodes Maya pour créer l'intégration la plus transparente possible.
Prochains plugins sur notre roadmap : Rhinoceros, SketchUp, Cinema 4D et 3ds Max... Nous sommes à votre écoute pour ces développements.
Bella GUI
Bella GUI est utilisé durant la phase de rendu mais aussi pour éditer les matériaux, le placement des sources lumineuses et les paramètres de caméras.
Bella permet un rendu externe au logiciel de modélisation, ce qui permet de continuer à travailler sur notre modèle pendant qu'une image se calcule.
Nous continuerons le développement de Bella GUI en prenant en compte vos demandes autour de cette plateforme.
Bella CLI
Bella CLI est simplement l'application en ligne de commande utilisée pour lancer les rendus Bella.
C'est bien sûr indispensable pour se monter une render farm ou pour une intégration plus facile dans un pipeline existant.