Blender: OpenSubdiv arrive ! Et les performances explosent... [Màj] Première version de test disponible
Connaissez-vous OpenSubdiv, une technologie Pixar qui permet une accélération matérielle lors du calcul de la tesselation, rendue Open Source l'année dernière ?
NB: La tesselation, c'est l'ajout de détails sur un modèle. Dans le cas de OpenSubdiv(ision), c'est une subdivision du maillage et un lissage qui sont appliqués (comme le fait le modificateur SubSurf).
Et bien les premier tests d'intégration dans Blender ont été fait, et le moins que l'on puisse dire c'est que le gain est substantiel ! Jusqu’à 200 fois plus d'images par seconde (fps).
-----
L’intégration d'OpenSubdiv est prévu pour la 2.72. Pourquoi ? Parce que, même si le développement est déjà très avancé, cela reste beaucoup trop instable pour être intégré dans la 2.71, ou même distribué sous forme de build (dans ce cas, une version spécifique, compilée avec le patch) sur Graphicall.org. Mais que les plus pressés se rassurent :-P, ça ne devrait pas tarder (je mettrai à jour cet article quand j'aurai des nouvelles).
Mise à jour: une première version de test est disponible (pour Windows 64 bits seulement). Elle est Pour la tester, je vous conseille d'utiliser le fichier utilisé par Sergey (voir plus bas).
Voici une vidéo (en anglais), par Sergey Sharybin (qui est derrière cette intégration), qui présente l'implémentation actuelle d'OpenSubdiv dans Blender:
NB: OpenSubdiv supporte de nombreuses technologies d'accélération matérielle. Actuellement l'accélération peut exploiter le CPU, OpenMP (CPU), OpenCl (GPU), GLSL (GPU), CUDA (GPU). Il y en a donc pour tout type de matériel. Et ce sur tout système d'exploitation.
Sergey a fait des tests de performances sur ce modèle, tiré de Sintel.
Un petit résumé des gains, pour ceux qui ne parlent pas anglais:
- Sans OpenSubdiv (version actuelle): 0.2 images/seconde.
- OpenSubdiv (CPU): 4 images/seconde.
- OpenSubdiv (OpenMP): 6~8 images/seconde.
- OpenSubdiv (OpenCl): 30 images/seconde.
- OpenSubdiv (GLSL): 30 images/seconde.
- OpenSubdiv (CUDA): 40 images/seconde.
Ce fichier était de base totalement intravailable (1 image toutes les 5 secondes !). Grâce à OpenSubdiv, même avec seulement le CPU, on arrive à 7 images/seconde (ça commence à être lisible), et avec le GPU, à 30 images ou plus !
Attention, certaines limitations demeurent:
- Le modificateur Subdivision Surface (SubSurf) doit être en bas de la pile de modificateur;
- Le travail de sculpture ne bénéficie pas de ces améliorations, car elles n'affectent pas le modificateur MultiResolution. Pour en bénéficier, il faudrait utiliser un SubSurf, avec le niveau de subdivision maximal dès le départ. Ce qui n'est pas une façon courante de sculpter (mais peut servir dans certain cas). De plus les outils de scultpure déplacent les points précédemment créés par le SubSurf (il n'y a pas recalcule de la subdivision), les perfs ne seront donc pas vraiment meilleures.
Mais bon au vu des gains de performances, vivement Blender 2.72 ! :-P
En savoir plus sur OpenSubdiv (en anglais).
Commenter cet article