Blender: OpenSubdiv arrive ! Et les performances explosent... [Màj] Première version de test disponible

par Lapineige

publié dans 3D , Blender , Vidéo , Actu

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 encore très bogué et ne supporte que le CPU, OpenMP (qui bizarrement est dans mon cas plus lent que le CPU, et vous ?) et GLSL. 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
A
Ce pourrait-il qu'un jour,l'OpenSubdiv soit intégré au BGE?
Répondre
A
C 'est dommage que ça crash à chaque fois.:-(
L
J'ai fait le test, ça crash à chaque fois (quelques soit la méthode utilisée).<br /> Dommage....
A
Non,je suis window vista.<br /> Ne t'en fait pas je suis patient. :-p
L
Ok comme prévu je te fait ça demain. Patience, patience.... :-P<br /> <br /> PS: t'est sous linux ? (/smiley avec étoiles dans les yeux...)
A
Non,je n'ai pas de window 64 bits.<br /> Merci pour le test. :-)
L
Je te teste ça mercredi (je l'ai compilé sur un autre ordi, je ne peut pas tester pour le moment).<br /> Si jamais t'a un Window 64 bits sous la main tu as le build plus haut pour faire tes tests ^^
A
Hehe,sans le BGE je suis déboussolé... :-P<br /> Merci,Lapineige. ;-)
L
Azerblue, toi tu perd pas le nord (façon de parler, n'est ce pas ? :-P), toujours sur le BGE.<br /> Que je sache, c'est pas prévu. Faut déjà l'intégrer à Blender ^^<br /> Après j'ai pas de quoi faire le test sous la main, mais s'il le faut ça marche déjà. Je teste ça rapidement et je te dit.