vendredi 12 novembre 2010

Quelques news !

J'ai été quelques temps éloigné d'internet et donc j'en profite pour donner quelque nouveautés sur les avancés de Vénus, le moteur de rendu que je co-développe. Je le précise car le core principal du moteur n'est pas développer par moi mais quelqu'un de très doué dont je ne citerais pas le nom car il le ne souhaite pas mais il se reconnaitra.

Je précise aussi suite aux demandes que l'ont ma faite parvenir que ce moteur de rendu n'est pas un projet commercial, son auteur ne souhaite pas qu'il le devienne pour le moment donc il est uniquement développé à titre expérimental.

Vénus a pas mal évolué ces derniers mois puisque il supporte désormais les fichiers RIB de renderman. Il accepte toutes type de géometrie et tri ce qu'il ne comprend pas dans le rib en ne l'interpretant pas au rendu. Il propose désormais un primitive de curve avec option "ribbon" et "tube", allant plus loin que renderman sur les fonctions des curves.
Le code a été amélioré sur certaines parties et le GPU est moins utilisées qu'avant car les performances etaient moins bonnes que sur cpu. Néanmoins le Gpu est toujours utilisé pour beaucoup de petites choses qui accélère considérablement le rendu. L'importance sampling a encore été amélioré pour le raytrace et il faut encore moins de sample pour produire des résultats valable en production.
Vénus supporte maintenant un mode avancé pour les shadow, support des deep shadow avec ecriture arbitraire des données dans la deepshadow. Possibilité de faire des soft shadow avec les shadow map ou les deep shadow ( à la pixar avec plusieurs maps, ou avec une seule map) . Il ya aussi une nouvelle methode de shadow avec sphérical harmonics. Globalement Vénus devient de plus en plus tourné vers les sphérical harmonics. Le workflow de lighting peut désormais entièrement etre fait grâce à cette technique, performante et facile a mettre en cache. La future version proposera d'ailleurs un vrai system de caching avec calcul interactif des spherical harmonics. Cela aura pour but de ne pas recalculer toutes les infos de lighting ( GI, occlusion, Direct lighting...) à chaque changement d'éclairage.
La dernière version a aussi un meilleur support des caustics et autres techniques de photon map.
Le support de la motion blur et du depth of field n'est pas complet mais fonctionne et est très rapide.le shading rate motion permet de regler une valeure de shading rate plus élevé pour les objets flou.

Concernant l'interface Vénus proposera très bientôt une version de son shading language. La machine de compilation étant une torture a optimisé, cela prend du temps a développer mais on peut déja faire ses propres shader en .sl compiler en .slv ou meta .slip (le slip c'est un hommage a pixar slim...pour le shading authoring que je développe, j'espère qu'ils prendront pas ça mal.;)) et il supportera a terme les fichiers.slo (mais c'est pas encore définitif vue le nombre des fonctions renderman disponible en rsl.)... ou pas donc !
On propose un nouveau shader de fur forcément pour aller avec les poils. Ce shader est une approximation du dual scattering qui reste bien plus simple car ne requiere aucune prepasse ou calcul complexe, il supporte aussi la GI et occlusion via les spherical harmonics donc pas besoin de plus a mon goût. Nous supportons aussi désormais le vector displacement, normal map, les output arbitraires pour les shaders et tout plein de nouveaux opérateurs, le tout codable en python. On a aussi un meta shader qui permet de faire son propre code comme une slbox, on appel ça la blackbox. hommage a ce groupe mythic des années 90. ;) Le viewer supporte désormais l'edition des pointclouds à la volé, mais on travail encore deçu pour l'améliorer.

Concernant le futur, le moteur se tourne considérablement vers les sphérical harmonics, mais on est en train de mettre en place aussi un system de caching, ca fait longtemps que j'en avais envis seulement ya tant de choses a faire avant pour que le moteur marche déja comme on le souhaite. A terme notre but  est donc de pouvoir faire du rendu encore plus rapidement avec un feedback instantanée. Pour cela le caching des données est un vrai plus. on l'utilise déja depuis le début pour beaucoups de choses donc ce ne sera qu'une extension du procédé de base du core du moteur. le caching de toutes les données de lighting devrait donc être présent dans les prochaines versions. Par contre il faudra attendre quelques mois avant d'avoir la possibilité de faire ce qu'on appel du relighting interactif avec support de tous les fonctions de vénus. Avant cela il ya beaucoup encore a implémenter et améliorer. Nous allons encore ameliorer aussi dans la prochaine version la gestion des points clouds, actuellement vénus propose un system très intelligent pour gérer les pointcloud d'une scène. Vous pouvez en effet controler comment interagissent les pointclouds au rendu, leur contribution dans la scène et au rendu, avec un algorythm très optimisé qui permet de limiter la taille des pointcloud sur des énormes scènes tout en gardant la qualité optimal au rendu. La prochaine version proposera surement le LOD par pointcloud voir les brickmap qui sont en Work in progress actuellement.

Voila en ce qui concerne les dernieres infos concernant vénus 040a, la build actuelle. encore du boulot donc en perspective pour les mois qui viennent mais on avance et on s'éclate, sachant que ce projet est pour le fun. On a rien ni lui ni moi a y gagner a part de s'amuser a "nerder", même si il fait ça 1000 fois mieux que moi. ;).

Aucun commentaire:

Enregistrer un commentaire