Partage
  • Partager sur Facebook
  • Partager sur Twitter

Rendu Blender très long...

    1 mars 2020 à 14:41:25

    Bonjour, je souhaite effectuer le rendu d'une animation de 2/3 minutes que j'ai créé dans Blender, mais celui-ci met beaucoup de temps à se calculer. Avec seulement 30 samples et un débruitage dans le moteur Cycles (donc un résultat affreux) : après 8 heures de rendu, seulement 250 sur les 1800 frames ont été enregistrés, soit une durée totale d'environ 58 heures, sachant qu'il faudrait multiplier le nombre de samples... Un peu long...

    Pour commencer, voici ma config. : AMD Ryzen 5 1600 Hexa Core (3.2 GHz), 16 Go de RAM DDR4, GeForce GTX 1060. Je pense que c'est correct pour du Blender, non ?!

    Au sujet de ma scène (il y en a 3 en réalité), elle est disponible ici. Je pense que vous reconnaîtrez de quoi il s'agit ;) Alors, je suis débutant, je reconnais que ce n'est pas très réaliste, ça déborde, etc. Mais bon, ça suffit pour ce que je veux faire...

    J'ai réalisé cette scène pour y incruster une vidéo sur fond vert (je l'ai retiré du fichier ci-joint pour droit à l'image) que j'ai supprimé avec Premiere Pro, et exporté sous format QuickTime, 8 bits + couche Alpha. Est-ce que ça a un impact sur le rendu ? Elle est composée de 92 000 faces, n'est-ce pas un peu beaucoup ?! J'ai importé d'Internet plusieurs fichiers : la lampe Pixar est composée d'envir. 20 000 faces, et le téléphone sur le meuble TV, 60 000 !! Comment réduire ces nombres, qui je suppose, allongent le temps de rendu. Je me rends compte que les matières ont également été copiées (je ne sais pas pourquoi), est-ce grave ?

    Au final, est-ce que certaines choses ont un impact important sur le temps de rendu dans mon projet ? Sinon, quels réglages pour Cycles, combien de samples sont nécessaires pour ma scène, en ayant un temps de rendu raisonnable ? Sinon, je serais obligé de passer par Eevee, ce qui est un peu dommage...

    Merci d'avoir pris le temps de lire ce sujet, et désolé pour ce charabia... :lol:

    -
    Edité par Killian Bourhis 1 mars 2020 à 14:42:07

    • Partager sur Facebook
    • Partager sur Twitter
      3 mars 2020 à 15:26:44

      Bonjour 

      c'est malheureusement un problème rencontré par tout le monde, y compris les grands groupes, qui utilisent de puissants serveurs et ordinateurs calculant simultanément plusieurs frames a la fois...

      Il me semble que le temps de rendu que tu nous annonces est tout a fait normal par rapport a ta config (plutôt bonne). Tu peux essayer de regarder ici pour optimiser encore un peu tout ça (articles plus tellement à jour). Dans la réalisation d'un court métrage, le rendu est ce qu'il y a de plus long. Personnellement, j'ai mis 1 semaine pour réaliser le rendu de certaines (très) courtes vidéos (environ 770frames, soit 2sec...).

      https://www.blenderguru.com/articles/13-ways-to-reduce-render-times

      https://www.youtube.com/watch?v=8gSyEpt4-60

      https://www.youtube.com/watch?v=eGAjsSNtX6E&list=PL7hndBcWv-uk5S68b9hsHLbHzYr1jd6Zu&index=1&app=desktop

      Je voudrais pas mettre à bas ta motivation, mais une vidéo de 2/3 min,...pour n'importe qui, c'est abominablement long...C'est la raison pour laquelle il n'y a pas bcp de films d'animation réalisés par des vidéastes amateurs sur YT. La plupart proviennent d'étudiants d'écoles de graphisme, qui possèdent des moyens. Et même pour eux, c'est toute une organisation...

      Il te faut donc trouver d'autres moyens. As-tu réellement besoin d'une scène 3D ? Une image pourrait-elle faire l'affaire ? Comment pourrais-tu faire autrement ? 

      Imaginons que tu veuilles incruster une explosion: il ne faut pas faire le rendu de toute la scène mais seulement de l'explosion, que tu rajouteras ensuite avec un logiciel de montage video. 

      Il te faut jongler avec les logiciels: After effect, Fusion,...en fonction de leur spécialisation. Il faut parfois réfléchir, et trouver le moyen d’économiser un max de données pour gagner du temps au rendu. Le problème est le même et il est rencontré par les plus grandes sociétés de production. 

      Courage !

      -
      Edité par Optilium 3 mars 2020 à 15:36:56

      • Partager sur Facebook
      • Partager sur Twitter
        4 mars 2020 à 13:58:34

        Salut,

        Pour une image a priori en 1080p (?) avec seulement 30 samples, je trouve que le temps de rendu est peut-être un chouïa trop long en effet. Un rendu Cycles est normalement très long (et/ou très bruité) si tu fais une pièce fermée, mal éclairée. Ne connaissant pas ta scène, difficile à évaluer.

        Il y a deux écoles pour ton rendu. Dans les deux cas, il te faut évaluer la taille optimale pour les tiles qui sont rendus. Pour ça, il faut aussi comprendre comment fonctionne le GPU et le CPU.

        • Le GPU a une force incroyable d'avoir beaucoup de cœurs CUDA qui travaillent réellement en parallèle (ils sont synchronisés). Il peut donc traiter très rapidement une très grande quantité de données comme le traitement d'une image, etc. Le revers de la médaille, c'est que tous les cœurs CUDA doivent recevoir les mêmes données pour les traiter simultanément. Un GPU ne peut donc être affecté, à la fois, qu'à une seule partie de l'image pendant le rendu dans Blender.
        • Le CPU a très peu de cœurs en comparaison. Il n'a donc pas la possibilité de traiter une grande quantité de données aussi efficacement que le GPU. En revanche, les différents cœurs du CPU sont indépendants les uns des autres. L'un peut s'occuper de calculer Pi pendant qu'un autre tourne pour lire une vidéo. Ainsi, dans Blender, chaque cœur du CPU peut faire le rendu d'une partie différente de l'image.

        Si tu n'utilises que ton GPU pour le rendu avec CUDA, il faut partir sur des tiles d'assez grande taille pour optimiser justement son travail. Pour la GTX970 par exemple (la carte que j'ai sur ma tour), j'ai trouvé une taille de 256x256 qui semble donner de bons résultats. Pour mon i7 5930K, je reste sur les 64x64 proposés par défaut dans Blender. Le fait est que le CPU a nettement moins de cœurs que le GPU. Dans ton cas comme le mien, le CPU n'a que 12 threads pour travailler en simultané. Une GTX970 possède 1664 cœurs CUDA et une GTX1060 6Go en a 1280. Si le tile est trop petit, tu n'exploites pas toute la puissance du GPU (beaucoup de cœurs ne servent à rien), si le tile est trop grand le GPU pédale dans la choucroute (il n'y a pas assez de cœurs et le travail n'est pas optimisé pour des raisons techniques).

        Si par contre tu utilises à la fois CPU et GPU (Blender t'y autorise dans ses paramètres), il convient de changer son fusil d'épaule. Là, il faut trouver une taille de tiles qui va à la fois convenir au CPU et au GPU. Comme expliqué avant, les deux processeurs n'ont pas du tout le même ordre de grandeur en terme de nombre de cœurs. Ici, il va plutôt falloir partir sur des tiles très petits : le GPU va plier ça en une fraction de seconde et les quelques cœurs du CPU pourront aussi gérer les tiles à toute allure malgré le peu de "puissance" dont ils disposent (comparativement au GPU). En effet, avec ton CPU et ton GPU, tu auras l'équivalent de 13 (12+1) cœurs faisant un rendu par tile extrêmement rapide.

        Ici une vidéo qui montre, sur la même machine, l'influence sur le temps de rendu de ces paramétrages suivant l'utilisation du GPU et/ou du CPU :
        https://www.youtube.com/watch?v=0SubJ49UVNI

        Tu peux voir la nette différence que provoque le bon réglage selon la situation (on peut gagner 30% du temps de rendu par exemple).

        :)

        Pour ce qui est de l'outil de débruitage, avec des tests que j'ai fait sur le benchmark BMW officiel, je l'ai justement trouvé excellent même avec très peu de samples (moins de 30). Il provoque bien des défauts mais à toi de voir. D'une part, c'est une animation et non une image fixe donc tu peux te permettre de réduire la qualité au profit du temps de calcul. Si tu optimises bien le temps de rendu, tu peux tenter aussi d'augmenter la résolution du rendu mais en diminuant (encore !) le nombre de sample. Tu downscales ensuite et tu vois si le jeu en vaut la chandelle.

        EDIT: voici un rendu que j'ai fait de la BMW en GPU avec des tiles de 256x256. J'ai mis 50 samples (réellement 50, pas 50²). Cela m'a pris moins de 25s en 1080p. Ma config: i7 5930K | 2xGTX970 | 16Go RAM.
        http://pasteall.org/pic/show.php?id=d9e1923ab408acaec71d86de83d68d1a

        Ma config est particulière, avec deux GPUs je n'utilise jamais le combo CPU+GPU (bien plus long). A toi de tester quelle solution est la plus intéressante avec ton ordi !

        L'image est loin d'être parfaite, il y a bien de petits défauts dus à l'algorithme de denoising. Mais si tu fais une vidéo, il y a fort à parier que peu de gens verront ce genre de défauts et surtout, la compression de la vidéo introduira probablement des défauts bien plus visibles. Si on ajoute à ça les mouvements, les défauts du rendu deviennent négligeables.

        Par rapport à la réponse de Optilium sur le temps d'un tel projet, j'ai envie de dire que si ça te tient vraiment à cœur, tu peux y arriver. Pour ma part, j'ai déjà fait des animations de plusieurs minutes, il y a plus de 10 ans avec un Pentium4 ! Actuellement, je travaille sur un projet d'animation et un autre dont j'ai déjà fait l'animatique il y a 3 ans (et Blender 2.8x répond "enfin" à mes besoins pour cette vidéo grâce à EEVEE qui n'était pas envisageable avec Blender 2.7x).

        Donc : accroche-toi, ça ne peut que rendre fier d'accomplir ce type de gros projets ! :p

        -
        Edité par AntiXeon 4 mars 2020 à 16:30:08

        • Partager sur Facebook
        • Partager sur Twitter
          Staff 7 mars 2020 à 15:02:45

          Bonjour,

          250 images en 8 heures, c'est un peu long mais pas aberrant non plus, ça fait à peu près 2min/frame. A vue de nez, ça me semble surtout être un rendu pas optimisé, tout simplement.

          J'ai fais un test avec ta scène, je fais le rendu en 50 secondes avec ma GTX 970 + i7 4790. Mais je me demande si c'est bien ta scène originale, les samples  sont à 128 et l'angle de la camera me semble étrange, en plus de la scène totalement immobile.

          Pour réagir sur le message du dessus, depuis la 2.8 le rendu GPU peut également se faire en petite tile. C'est généralement moins performant que la grande taille optimale, mais combiné avec le CPU ça peut être plus rapide suivant le système et la scène à rendre. Sur certaines configs, le rendu hybride peut être plus rapide en réduisant le nombre de cœurs utilisés pour le CPU (mon pc principal est plus rapide en utilisant 6 ou 7 cœurs sur 8 par exemple).

          • Partager sur Facebook
          • Partager sur Twitter

          FAQ 3D || 3DFR: discord francophone d'infographie 3D || Pas de demande d'aide par MP, le forum est là pour ça :)

          Rendu Blender très long...

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown