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.
Simplicité : c'est le maître mot de Bella. Les solvers de Bella n'ont pas de paramètres obscures. Le temps d'apprentissage est réduit avec peu d'expérimentation pour trouver les bons settings.
RENDU SPECTRAL
CAUSTIQUES COMPLEXES
IPR Solver
MATÉRIAUX "LAYERED"
Couches minces
Matériaux "Nested"
IOR COMPLEXES
Smart Materials
Textures
Instancing
Ciel & soleil physiques
Lumières procédurales
Lentilles minces & épaisses
Sensor Bloom
Diffraction
Rendu coopératif & reprise
Intel Denoiser
Standards de l'industrie
Render Passes
Import de géométrie
Package des scènes
SPECTRAL RENDERING
Pour simuler de manière la plus précise le comportement de la lumière, il est nécessaire d'utiliser de nombreuses longueurs d'ondes à la place des 3 couleurs primaires (R, V, B) utilisées habituellement.
Dans Bella nous utilisons la propagation spectrale de la lumière tout au long des calculs pour la plus grande des précisions dans les phénomènes optiques comme la dispersion, le Fresnel, l'iridescence et les BSDF, les effets atmosphériques, la diffraction...
C'est seulement lors de l'affichage que nous convertissons les énergies spectrales calculées (irradiance) dans l'espace colorimétrique choisi.
SOLVERS
L'architecture de Bella Render permet de choisir parmi différents solvers (méthode de calcul) suivant nos scènes. Nos solvers utilisent le CPU.
Atlas
Atlas est un path tracer bidirectionnel non biaisé qui est notre solver par défaut pour le rendu des scènes. Il est très performant pour résoudre les lighting très 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
COMPLEX CAUSTICS
Les caustiques vues à travers des matériaux transparents ont souvent posé des problèmes lors des rendus. .
La situation caractéristique est celle des caustiques générées par le soleil au fond d'une piscine.
Les sources lumineuses sont souvent contenues dans une enveloppe en verre. Elles créent des caustiques d'illumination ce qui les rend très difficiles à calculer.
Pour de tels cas nous recommandons l'utilisation de notre solver Apollo. Il n'y a aucun réglage compliqué, seulement changer de solver.
LAYERED materials
Bella utilise 2 types de matériaux comme base : les "conductors" et les "dielectrics". Les "conductors" décrivent des surfaces opaques alors que les "dielectrics" des surfaces transparentes. On parle de ces deux bases comme des "substrates" qui peuvent supporter un "layer". Un "layer" est un matériau "dielectric" (transparent) qui peut avoir des propriétés de scattering. Le layer interagit avec le substrat placé en dessous produisant des matériaux opaques très réalistes.
Par exemple, les 2 statues ont un matériaux "conductor" de type gold, mais la statue de droite à un layer avec scattering en plus. .
Comme les "conductors", les "dielectrics" peuvent aussi avoir des layers. Il ne s'agit pas simplement d'une opération d'addition de propriétés entre le layer et le dielectric, mais bien d'interactions entre le "substrate" et le "layer" avec des rebonds multiples, du Fresnel, de la transmittance...
La carafe de gauche a un simple matériau dielectric, celle du milieu simule le layer et celle de droite la combinaison des deux.
Le matériau "Sheet" est comme un layer sans substrat. Il peut être utilisé pour simuler les surfaces avec scattering comme les abat- jours, les rideaux.
THIN FILM
Un autre type d'aspect peut être utilisé avec le système de matériaux Bella : les couches minces (Thin Film), qui permet d'ajouter de l'iridescence à une surface. Changer l'épaisseur d'une fine pellicule ou son indice de réfraction produit des interférences créant un effet arc-en-ciel..
Les couches minces peuvent s'appliquer sur les substrats, les layers ou les "sheet".
NESTED DIELECTRICS
Les "Nested Dielectrics" permettent, grâce à l'utilisation d'une priorité, de gérer les intersections en les différents volume d'une modélisation, comme un verre rempli de liquide, de la glace, des bulles.....
COMPLEX IOR
L'indice de réfraction d'un matériau est décrit pour 2 variables.
Le premier est l'indice de réfraction tel que nous le connaissons et décrit la courbure de la lumière lorsqu'elle passe d'un matériau à un autre..
Le second définit l'atténuation (la perte d'énergie) lorsque la lumière passe à l'intérieur du matériau. Il est courant de grouper ces 2 valeurs sous la forme d'un nombre complexe, d'où provient le nom : complex index of refraction).
Des nombreux matériaux ont été mesurés qui peuvent être utilisés dans Bella pour les rendu..
Le setting Complex Material comprend les matériaux les plus courants mais vous pouvez aussi charger des données provenant de mesures ou copier/coller ces données dans la partie IOR data du matériau Complex IOR.
SMART MATERIALS
Nous avons créé un set de matériaux directement utilisables sans avoir besoin de connaître le système de matériaux Bella. Nous avons extrait les paramètres principaux pour contrôler ces matériaux.
TEXTURES
Toutes les textures dans Bella (fichiers ou prodécurales) sont connectées de manière nodale. Cela permet une grande facilité de manipulation (changement de couleur, luminosité, mélange...) entre elles.
Le mode nodal est particulièrement adapté à l'hypershade de Maya.
INSTANCing
Bella provides extensive support for instancing. Indeed, everything that can be seen in a Bella image is either an instance of some type of geometry, or an instance of some other instance.
This is accomplished through a logical and consistent model, based on the use of the Bella xform node.
In the hierarchy at left, we see a procedural plane instanced twice under the planes xform, which itself is then instanced by the instance of planes xform. Using the boxes at the right, materials may be assigned, and instances made either visible or hidden (or, as by default, they can inherit the visibility of their parent).
At right, we see that each instance can not only be assigned its own material, but can even decide which of its geometry's UV sets to use. In the image we are seeing five instances of the same mesh plane, each using different materials and UV sets.
Physical Sky & SUn
Le sky dome et le soleil de Bella sont basés sur le modèle Hošek & Wilkie model, légèrement modifié pour permettre les rendus après le coucher du soleil. Par défaut le skydome node fonctionne très simplement : on choisit la date, l'heure et sa localisation. Le calage des faisceaux horaires est automatique.
Différentes heures de la journée du 23 septembre à Barcelone :
Il est également possible de lier une node soleil pour avoir plus de liberté dans le positionnement du soleil.
PROCEDURAL LIGHTS
Pour compléter les mesh lights réalisables grâce aux matériaux émissifs, Bella dispose également de lumières procédurales de type Point, Area, Directional, et Spot.
L'utilisation principale reste la connexion avec les applications 3D.
Dans le cas d'une liaison avec un programme 3D, ce type de source n'a pas d'unité et l'intensité est piloté pour un coefficient multiplicateur.
On peut cependant connecter à ces sources un matériau émissif si l'on préfère travailler avec des unités réelles d'énergie.
cameras
Les caméras dans Bella sont définies par les nodes : Camera, Lens et Sensor qui sont conçus pour modéliser les éléments principaux d'un appareil photo.
La caméra supporte le mode manuel ou automatique d'exposition comme les priorités diaphragme ou vitesse. La priorité diaphragme est le mode par défaut car c'est celui qui permet de régler la profondeur de champ en gardant une exposition correcte.
THIN / THICK LENS
En plus des lentilles minces (thin lens - lentilles "parfaites"), Bella autorise aussi l'utilisation de lentilles épaisses (thin lens - lentilles bi-convexes). Comme les objectifs réels sont de qualité très variable, la "thick lens" augmente le réalisme en produisant des aberrations chromatiques et des distortions.
Sensor BLOOM
Quand un pixel d'un capteur reçoit trop d'énergie lumineuse, il "bave" sur le les pixels adjacents provoquant un effet de halo.
DIFFRACTION
Quand la lumière passe à travers le diaphragme, elle peut être diffractée. L'image d'un point devient alors moins nette. Il y a donc une limite à la netteté qu'une caméra peut capter.
La diffraction dans Bella est calculée de manière physique en se basant sur la simulation ondulatoire de la lumière, la forme du diaphragme, la taille du capteur et la longueur focale.
Nous prenons pour exemple de vraies prises de vues tirées du site What is diffraction in photography? Plus particulièrement le paragraphe 5, Diffraction and Depth of Field,
Comparable au Sensor bloom, la diffraction peut être utilisée pour augmenter la perception des pixels très lumineux ou simplement être utilisée pour des effets artistiques.
COOPERATIVE & Resume Render
La nature des algorithmes de Bella permet de rendre une même scène sur plusieurs machines et d'assembler les résultats de simulation plus tard. Il est aussi possible d'arrêter un rendu pour le relancer plus tard sur la même scène 3D pour ainsi cumuler des temps de calcul.
Progressive Rendering
Dans le flux de production, les compositeurs peuvent commencer à travailler avec des images de moindre qualité. On peut donc lancer une première série de rendu plus rapide en qualité basse et ensuite grâce au progressive rendering reprendre le rendu pour le pousser plus loin.
Resume Rendering
La reprise de rendu permet de garder l'esprit serein en cas de crash ou de reboot car vous ne perdez pas les temps de calcul déjà effectué.
Une méthode possible est de mettre en attente les rendus sur lesquels vous avez travaillés durant la journée pour les relancer la nuit. Ils reprendront là où vous les avez stoppés.
denoiser
Bella utilise le denoiser Intel : OpenImageDenoise pour les rendus IPR et production.
Dans le rendu interactif (IPR) nous utilisons une passe de denoising rapide qui occupe peu de temps CPU et de mémoire. Pour le rendu production et l'utilisation à 100% du denoiser nous générons toutes les passes nécessaires pour des résultats qui iront au delà de vos attentes.
Render passes
Les passes (appelées aussi layer, channel ou AOV dans d'autres moteurs de rendu) sont des images techniques comme l'object_id or le material_id utilisés pour le compositing.
Les passes actuellement supportées par Bella sont :
- Alpha Pass
- Material Pass
- Object Pass
- Shadow Pass
- Albedo Pass
- Normal Pass
- Tangent Pass
- Z Pass
Nous ajouterons des passes supplémentaires suivant les besoins que vous nous remonterez.
geometry Import
Bella supporte l'import des formats OBJ, FBX, DAE, 3DS et STL formats.
PROCEDURAL GEOMETRIES
Bella possède quelques nodes "objets" procéduraux comme Sphere, Plane, Cylinder, et Disk , qui sont rendus avec une précision parfaite (pas de défaut de maillage) et avec une occupation mémoire quasi-nulle.
Maya peut avantageusement en tirant profit en remplaçant ses géométries mesh : polySphere, polyPlane, polyCylinder, ou polyDisc par les nodes procéduraux Bella grâce à l'option Render Perfect.
nodes and the scene hierarchy
Les scènes de Bella sont nodales. Tout dans Bella est un node, une instance de node ou un instance d'un hiérarchie de node.
Une scène se compose donc d'un ensemble de nodes chacun possédant des entrées/sorties se connecter à d'autres entrées/sorties d'autres nodes.
A la racine de la scène il y a le node World Xform. Tout est parenté sur ce node.
For detailed help on all Bella node definitions, see here.
color management
Bella supporte nativement les espaces linear, sRGB, et Rec709. Suivant le paramétrage des variables d'environnement OCIO, Bella peut utiliser OpenColorIO pour le color management.
The Bella file formats
Bella sauvegarde au format binaire (.bsx) ou plain-text (.bsa) file formats. Il peut aussi créer une archive zippée (.bsz) de la scène qui contient toutes les assets. Ce format est très pratique pour transporter les scènes d'une machine à une autre (dans le cas d'une render farm par exemple).
Le format binaire est le format privilégié pour par production de part sa taille réduite de fichier et ses performances en lecture/écriture. Le format plain-text quant à lui est utile pour débogguer des scènes et éditer les scènes manuellement par exemple.
Nous avons porté une attention particulière dans le développement du format plain-text pour rendre sa accès facile et lisible.
# 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 produirons dans la documentation autour de ce format mais comme vous pouvez le voir sur l'exemple c'est très facile de créer des scènes Bella.
plugins
Le premier plugin de Bella est pour Maya. Les Bella nodes sont reliés au nodes Maya ce qui assure un intégration transparente and interactive pour l'édition des scènes et des matériaux.
La documentation pour le plugin Maya est ici.
Notre roadmap prévoit le développement des plugins : Rhino, SketchUp, Cinema 4D, 3dsMax... Pas nécessairement dans cette ordre suivant vos besoins. N'hésitez pas à nous le faire savoir.
Bella GUI
Bella GUI est utilisé en standalone pour le rendu et l'édition interactive de vos scènes.
Les plugins servent à l'utilisation directe de Bella au sein de votre modeleur, il peut être utile d'avoir un outil indépendant des logiciels de modélisation pour faire du rendu un process séparé. Vous pouvez ainsi continuer à travailler dans votre modeleur pendant le rendu.
Les plugins Bella possède une commande Send to Bella, qui exporte la scène au format Bella, lance Bella GUI et démarre le rendu.
Documentation Bella GUI ici.
Bella CLI
Bella CLI permet d'attaquer Bella en ligne de commande pour lancer le rendu de fichier Bella.
Bella CLI peut être utile pour l'intégration des pipelines existants au sein de studios.
CLI documentation ici.
Feature list
- Interactive Progressive Rendering ( IPR )
- Plusieurs solvers de production
- Interactive material preview
- Spectral rendering
- Solver automatic pour les caustics suivant le niveau de difficulté
- Material model with a real layer simulation.
- Thin sub-surface
- Thin film interference (coating)
- Spectral complex iors
- Nested dielectrics (matériaux transparents imbriqués)
- Smart materials
- Thick and thin camera lenses (objectifs parfaits ou réels)
- Optional polygonal aperture diaphragm, produces bokeh effect.
- Bloom ( uniform and vertical smear )
- Aperture diffraction
- Grating filters for diffraction
- Cooperative rendering (rendu sur plusieurs machines)
- Resume rendering (reprise de rendu)
- High quality denoiser
- Physical sun and atmospheric spectral model
- Memory efficient instances
- Procedural lights: area ( mesh, disk, sphere, cylinder ), point, spotlight, directional
- Different textures types: reflectance, normal mapping, bumping, roughness, anisotropy, rotation anisotropy, thickness, layer opacity, material opacity, transmittance, scattering
- Procedural geometry: disk, plane, sphere, cylinder
- Render passes: beauty, albedo, alpha, material, normal, object, shadow, tangent, z
- Region rendering
- Blow up rendering
- Shift lens
- Optional vignetting
- Node-based architecture
- Color management (via OpenColorIO).
- Bella CLI ( command line application )
- Import several 3d files to Bella scene ( fbx, obj, 3ds, dae, stl ).
- Plugins & GUI available for Windows and MacOS, with CLI support for linux.