Considérations sur la performance

Optimisation de la performance de rendu

« Tout vient à point à qui sait attendre » est un vieil adage, mais il se peut que vous vous demandiez pourquoi votre rendu prend autant de temps ou pire, se plante à mi-chemin ! Eh bien, il y a beaucoup à dire et beaucoup que vous pouvez faire pour accélérer le rendu ou faire qu’un rendu compliqué se termine. Aussi, c’est possible de faire le rendu d’une scène très compliquée sur un PC médiocre en étant « futé en rendu ». Ci-après une liste « top ten » des choses à faire et à ne pas faire pour accélérer le rendu ou même éviter les plantages pendant le rendu de scène. Certaines options peut diminuer la qualité de votre rendu, mais pour des rendus brouillons vous vous en fichez.

Si vous obtenez le message « Malloc returns nil », qui signifie en anglais simple que le gestionnaire de mémoire a essayé d’obtenir plus de mémoire physique pour Blender mais est revenu les mains vides. Cela signifie que vous n’avez pas assez de mémoire disponible pour faire le rendu de la scène, et Blender ne peut pas continuer. Vous devrez faire une ou plusieurs tâches suivantes sur cette page pour pouvoir faire un rendu.

Améliorations du matériel

  • Installez plus de mémoire système.
  • Changer votre CPU pour un multi-core/multiprocesseur.
  • Mettre à niveau vos pilotes vidéo OpenGL.
  • Disposer de mémoire plus rapide, jusqu’à la limite de la carte-mère de votre ordinateur.
  • Utiliser ou installer une ferme de rendu en utilisant tous les ordinateurs disponibles à votre domicile, ou utilisez une ferme de rendu.

Configuration du système d’exploitation

  • Augmenter la priorité de traitement de Blender via votre OS.
  • Augmenter la taille de votre fichier swap utilisé par l’OS pour l’échange de mémoire, aussi appelée taille du fichier de pagination de la mémoire virtuelle, jusqu’à la taille de votre mémoire physique.
  • Utiliser un moniteur système pour vérifier si d’autres processus utilisant de manière significative le CPU ou la RAM peuvent être fermés.
  • Faire le rendu en « mode d’arrière-plan » (depuis la ligne de commande), économise de la mémoire.

Réglages de Blender

  • Augmenter la MEM Cache Limit dans les User Preferences, onglet System & OpenGL.
  • Switch to an Orthographic camera, and render your own « parts » of the scene as separate images, and then paste those parts together in GIMP. An old trick in making your own panorama with a real camera is to take three or so pictures of a very wide (beach sunset) scene, where you take one picture, rotate to the right, snap another, then another, and when you get the pictures developed, you overlap them to make a very wide landscape image. Do the same in Blender: render out one shot to a file, then move the camera to look at a different area of the scene, and render that shot. Each shot will be of a smaller area and thus take in fewer polygons/faces. Be sure that when you position your camera that you snap overlapping shots, so that you can then match them up. If you do not want to use GIMP, you can use compositing nodes and the Translate node to match them up in Blender.
  • Minimize the render window (and the Blender window, if the UV/Image editor is used). ATI users report dramatic speed-up on a per-frame basis, which adds up over the frame range.
  • Utiliser le script Big Render pour faire le rendu de sous-sections de l’image entière, et ensuite les coller ensemble.

Scène et objets spécifiques

  1. Supprimer les lampes, ou les déplacer sur des calques non rendus, ou les grouper dans des calques.
  2. Désactiver certaines ombres de lampe, en n’utilisant qu’une ou deux lampes sun pour jeter des ombres. Quelques lumières « shadows only » vont permettre un rendu plus rapide que chaque lampe avec activation des ombres.
  3. Utiliser les ombres en mémoire tampon plutôt que les ombres en lancer de rayon.
  4. Précalculer vos ombres en utilisant Render Baking Full Render bake sur les surfaces qui ne bougent pas. Utilisez cette texture pour ce maillage, puis désactivez les ombres pour ce matériau.
  5. Simplifier les maillages (supprimer des polygones). Plus vous avez de sommets, plus cela prendra du temps pour faire le rendu.
  6. Supprimer les Doubles, ou utiliser la fonction d’édition de maillage Decimator.
  7. Supprimer les modificateurs Subdivision Surface et Multiresolution.
  8. Supprimer l’arrière des maillages (en supprimant la géométrie invisible).
  9. Faire le rendu de quelques objets seulement à la fois ; au début de votre projet, faire le rendu des objets en arrière-plan qui ne changeront pas et se trouveront toujours en arrière-plan.
  10. Put the buildings on another layer, and, through render layers, do not render them. Then composite them back in later.
  11. Rendre la caméra statique de sorte que vous pouvez mieux appliquer les deux idées ci-dessus.
  12. Éviter l’utilisation d”Area lights.
  13. Rendre les matériaux Shadeless.
  14. Render Bake AO and textures, and then make those materials Shadeless.
  15. Diminuer la Clip distance pour les lumières spot.
  16. Diminuer la Clip distance pour la caméra.
  17. Turn off world AO.
  18. Turn off Material SSS.
  19. Utiliser des textures image plus petites. Une image 256x256 prend seulement 1% de la mémoire d’une image 2k, souvent sans perte de qualité dans le rendu ultime.
  20. Réduire les Subdivision Surfaces. Chaque niveau quadruple (4x) le nombre de faces du niveau précédent.
  21. Réduire Multires.
  22. Make a matte render of background objects, like buildings, and put the image of them on a billboard in the scene instead of the object themselves. This will reduce vertex/face count.
  23. If you have lots of linked instances of an object, use DupliFaces, as these are instanced. If you have 100 of them, Blender will only store the geometry for one. (Instances themselves take a small amount of memory).

Réglages de rendu

Panneau Output
  • Désactiver le rendu Edge.
  • Save Buffers.
  • Render to a UV/Image Editor, not a pop-up. Render Window.
  • Utiliser les Threads sur un CPU multi-core (avec des Portions multiples).
  • Decrease the frame count of the animation (and use a lower frame rate for the same duration of animation). For example, render 30 frames at 10 frames per second for a 3-second animation, instead of 75 frames at 25 frames per second.
Panneau Render Layers
  • Faire uniquement le rendu des calques intéressants.
  • Render with all lights set to one simple spot (enter its name in the Light: field).
  • Faire le rendu avec un material override (entrer son nom dans la champ Mat:).
  • Désactiver les passes de rendu non nécessaires, telles que Z, ou faire uniquement le rendu pour la passe intéressante telle que Diffuse.
Panneau Shading
  • Désactiver Shadows.
  • Désactiver Environment Mapping.
  • Désactiver Panoramic Rendering.
  • Turn off Ray tracing.
  • Désactiver SSS Subsurface Scattering.
  • Désactiver ou baisser oversampling/aliasing OSA.
  • Désactiver ou baisser Motion Blur.
  • Render in Parts. This will also allow you to render huge images on a weak PC. On a multi-core PC, it will assign a thread to each part as well.
  • Augmenter la résolution de l”octree.
  • Faire le rendu à une taille en pourcentage de votre résolution finale (comme 25%).
  • Désactiver le rendu Fields.
  • Utiliser le rendu Border pour faire le rendu d’un sous-ensemble de l’image entière.
Panneau Bake
  • Bake Full Render creates a UV texture that colors the objects based on materials, and then uses that UV texture shadeless instead of the material.
  • Bake Ambient Occlusion only.
  • Précalculer les textures des objets.
  • Baking Normals or Displacement does not speed up render time, and are used for other things.
Panneau Format
  • Faire le rendu à une résolution plus basse. Des images plus petites prennent moins de temps pour faire le rendu.
  • Choisir un CODEC plus rapide ou certains réglages des CODEC.
  • Faire le rendu en blanc et noir (bouton BW).
  • Si FFMPEG est utilisé, ne pas activer Multiplex audio.
  • Si FFMPEG est utilisé, Autosplit Output (bouton du panneau Video).
  • Faire le rendu seulement en mode RVB si vous voulez simplement de la couleur, le canal A (bouton RGBA) prend plus de mémoire et n’est pas utilisé lors de l’enregistrement d’un fichier film.

Compositing multipasses

Une autre stratégie qui peut être mise en œuvre pour répondre au problème de durées des (re-)rendus est de structurer votre flux de travail de sorte qu une utilisation agressive du compositiong, comme décrit dans la section « Post-production ». Dans cette approche, vous réduisez chaque tir en composants qui peuvent être rendus séparément, puis vous combinez ces éléments rendus séparément pour obtenir le clic fini. Par exemple :

  • If the camera is not moving, then neither is the background: only a single frame is needed. (The same is true of any non-moving object within the frame). These individual elements, having been generated once, can be reused as many times as necessary over as many frames as necessary.
  • Les Ombres et les peuvent être capturés séparément des objets qui sont illuminés ou ombrées, telles que l’intensité, la couleur, et la profondeur de l’effet peuvent être ajustées plus tard sans refaire de rendu.
  • Start by using lights that do not cast shadows (shadow calculations are big time-killers). Then, use « shadow-only » lights (which cast shadows, but do not cast light) to create shadows only where you judge that they are actually necessary (it is very often the case that only a few of the shadows which could exist in the scene actually matter, and that the rest of them simply will not be noticed).
  • Tricky lighting situations can be avoided by handling the objects separately, then combining the individually-rendered clips and « tweaking » the result.

This is a very familiar idea. Modern sound recordings, for example, always use a « multi-track » approach. Individual components of the song are captured separately and in isolation, then the components are « mixed » together. The « final mix » then goes through additional processing stages, called mastering, to produce the finished product(s) (in fact, the features and design of modern sound-processing software are directly comparable to that of Blender’s node-based compositor).

Il y a des avantages convaincants pour cette approche :

  • If something is « not quite right », you do not necessarily have to start over from scratch.
  • In practice, the deadline-killer is re-rendering, which ordinarily must be done (in its entirety) just because « “one little thing” about the shot is wrong ». Compositing helps to avoid this, because (ideally…) only the specific parts that are found to be in error must be repeated (or, maybe, the error can be blocked out with a « garbage matte » and a corrected version can be inserted in its place).
  • Sometimes you might find that it is almost what you wanted, but now you would like to add this and maybe take away that. A compositing-based approach enables you to do just that, and furthermore, to do so non-destructively. In other words, having generated the « addition » (or the « mask ») as a separate channel of information, you can now fine-tune its influence in the overall « mix », or even change your mind and remove it altogether, all without permanently altering anything.
  • By and large, these stages work two-dimensionally, manipulating what is by that time « a raster bitmap with R, G, B, Alpha and Z-depth information », so they are consistently fast.
  • Puisque chaque tâche discrète de rendu a été simplifiée, l’ordinateur va les accomplir avec beaucoup moins de ressources.
  • Les tâches peuvent être distribuées entre différents ordinateurs.
  • « After all, the scene does not actually have to be physically perfect, to be convincing ». A compositing-based approach lets you take full advantage of this. You can focus your attention (and Blender’s) upon those specific aspects of the scene which will actually make a noticeable difference. It is possible to save a considerable amount of time by consciously choosing to exclude less-important aspects which (although « technically correct ») probably will not be noticed.

Of course, this approach is not without its own set of trade-offs. You must devise a workable asset management system for keeping track of exactly what material you have, where it is, whether it is up-to-date, and exactly how to re-create it. You must understand and use the « library linking » features of Blender to allow you to refer to objects, nodes, materials, textures and scenes in a carefully-organized collection of other files. You need to have a very clear notion, in advance, of exactly what the finished shot must consist of and what the task breakdown must be. You must be a scrupulous note-taker and record-keeper. But sometimes this is the best way, if not the only way, to accomplish a substantial production.