Arrivé relativement récemment sur le marché, Octane Render d’Otoy est un moteur de rendu 3D non biaisé (unbiaised) qui utilise la puissance de calcul des processeurs des cartes graphiques (GPU) NVidia à la place des processeurs de l’unité centrale (CPU), pour un gain de performance époustouflant.

Ce moteur de rendu respecte les propriétés physiques de la lumière, ce qui lui donne une qualité de lumières, de spéculaires et de réflexions bien meilleure qu’un moteur de rendu en raytracing, et ce avec une prévisualisation quasi en temps réel pour des scènes pas trop lourdes et en léger différé de quelques secondes pour les scènes plus lourdes.
Octane possède aussi un mode de rendu en illumination globale proche d’un rendu en raytracing : le mode Directlighting ; qui a l’avantage de permettre, par exemple, le rendu très rapide d’animation.

Depuis quelques temps, Otoy s’est aussi adjoint les compétences de développeurs indépendants pour la création de plug-ins d’intégration du moteur de rendu directement dans les principaux logiciels du marché comme 3DStudio Max, Maya, Lightwave, Cinema 4D, Blender, Poser, DazStudio et j’en passe… Certains d’entre eux sont encore au stade de Beta mais d’autres sont déjà très avancés, comme celui de 3DStudio Max.
Avec ces plug-ins on peut travailler une scène tout en effectuant un rendu temps réel constant du résultat. Ce qui permet d’avoir en permanence un aperçu temps-réel de haute qualité du résultat final pour tout changement de cadrage, d’éclairage ou de matériaux. La création 3D devient du coup beaucoup plus intuitive de par ce retour immédiat.

Interface Octane

L’interface d’Octane est modulable. L’éditeur nodal est un vrai régal.

Les avantages

Le premier gros avantage de l’emploi du GPU en lieu et place du CPU est la vitesse. Si le CPU pourrait être comparé à une voiture tout terrain, capable de tout faire et facile à manier, le GPU serait alors une formule 1 ou un Dragster : difficile à piloter (difficile à programmer semble-t-il) mais nettement plus rapide. Entre 10 et 30x plus rapide qu’un CPU de même génération d’après les développeurs.
Le second avantage est le coût. Un GPU supplémentaire coûte nettement moins cher et consomme nettement moins qu’une dizaine de nouveaux ordinateurs en réseau, pour des performances comparables dans la majorité des cas.
Le troisième avantage est le rendu en temps réel. On voit quasi immédiatement le résultat de tout changement sur une scène. Bien entendu, pour avoir un rendu parfait il faut patienter plus ou moins longtemps selon la complexité de la scène, mais, dès les premières secondes, l’impact de nos changements est clairement visible. C’est un plus phénoménal en regard d’un rendu CPU. Une toute autre façon de travailler, beaucoup plus intuitive, un peu à la manière d’un photographe qui teste différents cadrages, différentes couleurs, différentes matières avec un résultat photographique quasi immédiat.
Les rendus respectent les propriétés physiques de la lumière. Les ombres, les reflets, les transparences, les matériaux translucides sont cohérents et basés sur des valeurs d’index de réfraction réelles. Pour l’avoir testé, je peux vous dire qu’il est même possible de faire un sténopé virtuel…
Le rendu s’effectue en 32 bits, ce qui permet de modifier le fstop, l’exposition, les ISO, le gamma, l’ambiance colorée, la saturation, etc, sans pour autant devoir recommencer le rendu à chaque changement. Le tout en temps réel. Idem pour les blooms et les flares en post-production.
Enfin, la qualité d’illumination, la douceur des ombres, la gestion des flous, les reflets spéculaires, etc, sont de très belle qualité. Les rendus sont donc très rapides mais également très beaux, du moins de mon point de vue…

Les inconvénients techniques

Octane ne fonctionne que avec les GPUs NVidia car il utilise la technologie CUDA. Les autres marques de GPU ne sont donc pas utilisables. Il est toutefois possible d’utiliser une carte autre que NVidia pour l’affichage en même temps qu’un GPU NVidia pour le calcul. La raison de cette exclusive est que le projet OpenCL, comparable au projet CUDA de NVidia, n’est pas aussi avancé que son homologue. Otoy n’exclut donc pas d’utiliser la technologie OpenCL à l’avenir mais cette technologie n’est tout simplement pas utilisable pour Octane à l’heure actuelle (dixit les développeurs).
La mémoire utilisée pour le rendu est exclusivement celle du GPU. Bien entendu la mémoire RAM est utilisée pour la préparation du rendu (et il est préférable d’en avoir assez bien car la voxelisation en consomme beaucoup) mais pour que le rendu puisse s’effectuer, il est nécessaire de charger l’entièreté du projet dans la mémoire du GPU. Ce qui nécessite une carte avec le plus de mémoire dédiée possible pour pouvoir être à l’aise sur les gros projets.
Comme tout doit tenir dans la mémoire du GPU, le rendu final doit y tenir également. On est donc limité en définition de rendu à 8000 pixels x 8000 pixels. Cette définition peut se voir limitée aussi par la quantité de données du projet. Mais il est bien entendu possible d’effectuer des rendus par quartiers multiples.

Quelques précisions

Octane ne fonctionne plus complètement dans sa dernière version avec les cartes NVidia de la série 2xx et antérieures, des fonctions comme le matte du matériel diffuse ne sont pas compatibles. Par contre il n’est pas nécessaire de s’orienter vers les cartes coûteuses de la série Quadro pour avoir de bonnes performances, et même au contraire semble-t-il. Ce qui compte pour Octane est le nombre de CUDA Cores, la fréquence des processeurs et la quantité de mémoire. Vu la vitesse à laquelle NVidia sort de nouvelles cartes, il est bien évidemment difficile de dire laquelle est la plus adaptée à l’heure actuelle (mais aussi, cette information deviendrait très vite obsolète).
On peut déjà faire fonctionner Octane avec le GPU utilisé pour l’affichage sur son ordinateur mais avec un impact visible sur les performances d’affichage et moins de mémoire disponible pour le projet et le rendu. Pour des performances optimales, il est donc préférable d’utiliser un second GPU, non connecté à un écran, branché sur un second port PCI express (ou un boîtier d’extension PCI avec plusieurs GPUs comme le Cubix Xpander). De cette façon on peut continuer à travailler sans aucune altération de performance de l’ordinateur pendant que les rendus s’effectuent.

Concernant le rendu d’animations

Il est tout à fait possible d’effectuer des rendus d’animations avec Octane mais il faut tenir compte de quelques petites choses pour évaluer la pertinence de ce choix de moteur pour un tel projet.

Octane est un moteur non biaisé, sa rapidité va dès lors fortement dépendre des conditions d’éclairage. Pour des éclairages faibles ou dans des pièces fermées, des éclairages très indirects, ou des éclairages avec beaucoup de matériaux transparents, beaucoup de reflets et de caustiques ou encore des matériaux translucides complexes, il sera nécessaire de laisser le moteur calculer plus de passes (samples) pour obtenir des images sans grain. Idem pour des scènes à très haute densité de polygones ou grand nombre d’instances (scattering) ou encore grand nombre d’objets. Tous ces paramètres s’additionnant bien entendu… Donc les temps de rendu peuvent parfois fortement se rallonger sans que ce soit totalement prévisible. Ça peut constituer un frein sur des projets au planning très serré. Autant le savoir…
Cela étant dit, pas mal de gens ont déjà réalisé des animations avec Octane. Bien souvent les calculs ont été fait en mode Directlighting, bien plus rapide que les autres modes, moins précis et moins subtil mais de qualité plus que convaincante pour de l’animation.

L’autre particularité à prendre en compte est le mode de communication entre le logiciel hôte de l’animation (3DS, Lightwave, Cinema 4D, etc) et le moteur de rendu. Il faut savoir qu’on n’anime pas dans Octane. Octane ne possède pas de ligne du temps ou de système complet de manipulation des objets et, à l’heure actuelle, Octane n’accepte que le format de fichier Wavefront .OBJ. Il y a donc une communication indispensable entre le logiciel hôte et Octane à chaque image. Selon le type d’animation (animation de personnage ou déplacement de caméra par exemple), le nombre de polygones, la définition des textures, etc, le délai de cette transmission d’information sera plus ou moins long et donc là aussi difficilement prévisible.
Toutefois, il est indéniable que pour de l’animation complexe, de l’animation avec variation de paramètres de matériaux ou de l’animation d’instances, il est indispensable de travailler avec le plug-in plutôt qu’avec la version standalone. Par contre, pour de simples déplacements de caméra ou des animations sans trop de fioritures, il est tout à fait possible de travailler avec la version standalone et les petits plug-ins d’export gratuits qui ont été développés pour ce faire par l’équipe d’Otoy (disponibles sur le forum des utilisateurs enregistrés d’Octane).

Octane intégré à Cinema 4D.

Octane intégré à Cinema 4D. Ici le rendu sera un peu plus long à cause des transparences multiples, du flou de profondeur de champs et des caustiques.

Quelques infos complémentaires

Octane offre la possibilité d’effectuer des rendus avec canal alpha et d’effectuer des passes z-depth, etc. Mais il faut bien reconnaître que pour l’instant les possibilités ne sont pas très nombreuses. Là encore, la version plug-in permettra de rendre plusieurs passes en même temps (z-depth, Material ID, Position, Geometric normal, etc) ou des enregistrement de rendus dans des fichiers combinés en .psd par exemple mais, quoiqu’il en soit, pas de passes plus complexes comme les spéculaires ou l’occlusion ambiante pour l’instant.
La version standalone offre deux formats d’enregistrement des rendus : le format .PNG en 8 et 16 bits ainsi que le format .EXR 32 bits tonemapped ou non. Dans tous les cas le canal alpha est intégré automatiquement s’il a été activé. Attention, l’activation du canal alpha dans le kernel relance le rendu, comme tous les autres paramètres du kernel d’ailleurs. Autant le savoir…

Via un matériaux, diffus noir avec l’option Matte activée, appliqué à un sol ou un fond quelconque, il est également possible d’enregistrer les ombres portées avec prise en compte dans le canal alpha. Ce qui est très pratique pour du compositing bien entendu.
Toute la gestion d’Octane standalone est de type nodal donc on ajoute et connecte des boîtes entre elles contenant chacune des paramètres spécifiques. Ce système est très efficace et assez facile à appréhender mais surtout il permet de partager des nœuds entre plusieurs matériaux (ou caméras, meshes, etc) et donc facilite grandement les changements. Par exemple : on peut partager un nœud de bump entre plusieurs matériaux et donc changer la force du bump sur tous les matériaux d’un seul coup. Mais aussi, comme le noeud bump est lui-même composé de plusieurs nœuds, on peut décomposer plus avant les paramètres pour créer des setups très complets. Et comme il n’y a pas un nombre infini de nœuds, le système reste assez facile à comprendre, même avec les setups les plus vastes.
Le système intègre également une bibliothèque participative de matériaux en ligne. Même si tous les matériaux sur cette bibliothèque ne sont pas nécessairement utiles, ils offrent en tout cas la possibilité de les décortiquer pour apprendre comment construire des matériaux plus complexes. En plus des matériaux en ligne, il est possible de sauvegarder des ensembles de nœuds en local et donc de se constituer une bibliothèque personnelle de matériaux, paramétriques ou à base de textures.
Le système nodal est désormais très mûrs et très efficace. L’essayer, c’est sans conteste l’adopter.

Les instances et le scattering (duplication d’objets identiques sans augmentation de la mémoire consommée) sont supportés mais là encore leur gestion est nettement simplifiée par l’utilisation de la version plug-in, même si des plug-in complémentaires de conversion des données de scattering ont été développés par la communauté pour la version standalone. Bien entendu, il est aussi possible d’assembler plusieurs objets directement dans Octane mais, dans ce cas, l’absence actuelle de gizmo se fait cruellement sentir… Donc autant bien prévoir ses positionnements d’objets en amont et n’utiliser ce système que pour les ajustement mineurs. Du moins, c’est de cette façon que je procède.

Pas de déplacement sous-polygonal par contre, et ça ne semble pas prévu pour tout de suite. Mais le moteur est assez solide pour accepter plusieurs millions de polygones sans broncher. Pour ma part, j’ai testé jusqu’à dix millions de polygones avec plusieurs centaines de megabytes de textures avec succès sur un GPU avec 4 Gb de RAM. Il y a donc un peu de marge…

Voilà tout pour cette première introduction à Octane, j’espère qu’elle vous aura été utile. Ce n’est bien entendu qu’un instantané, tant le moteur évolue vite. Il se peut aussi que j’aie oublié des détails, des limites ou des fonctionnalités, ou encore qu’une erreur se soit glissée. N’hésitez pas à me contacter si vous avez des remarques ou des commentaires.

Le site web Otoy d’Octane Render

Le rendu dans Octane est extrêmement rapide.

Le rendu dans Octane est extrêmement rapide.

Pin It on Pinterest

Share This