[Add-on] Precise Render Border Adjust: mon add-on pour positionner précisément la Border Render.

par Lapineige

publié dans 3D , Blender , Add-ons , Tutoriels , Python

Bonjour à vous, amis blenderiens !

Je vous présente aujourd’hui un petit add-on de mon cru - et 2014 est une bonne année ^^ - nommé Precise Render Border Adjust (pour "ajustement précis de la render border ").

Actuellement, cet add-on est disponible en version 1.3 (sous licence GPL). Vous pouvez le télécharger içi: Precise Render Border Adjust v1.3.

-----

Info: vous trouverez en bas de page un petit guide d’installation d'un add-on.

-----

La render border, ou frontière de rendu, c'est la zone entourée de liserée rouge, visible dans la vue caméra, qui permet de "découper" le rendu, et de ne rendre qu'une portion de celui-ci. Et ce dans la vue 3D comme pour le rendu final.

Elle s'active en vue caméra avec le raccourci [Ctrl] + [B].

Un exemple ci-dessous:

[Add-on] Precise Render Border Adjust: mon add-on pour positionner précisément la Border Render.

-----

A quoi ça sert ?

- Actuellement c'est surtout utile pour calculer deux (ou plus) parties non redondantes du même rendu: en effet on constate souvent que deux cartes graphiques séparées (dans Cycles) sont plus rapides à rendre un même image que si elles calculent ensembles.

Pour ce faire, on ouvre la même scène sur deux Blender différents, chacun utilisant une des cartes graphiques. On "découpe" en deux notre rendu grâce à la render border. La première instance de Blender va alors rendre la partie droite (par exemple), la deuxième la partie gauche (par exemple).

Problème: en découpant le rendu, il est difficile voire impossible de couper précisément au centre. La plupart du temps les images calculées se recoupent, certaines parties ont donc été calculées 2 fois, ce qui engendre une perte de temps, particulièrement problématique dans le cas de rendu très long.

Avec cet add-on, il est très facile et rapide de positionner sa render border pour qu'il n'y ai pas de redondances entre les différentes parties de l'image.

- Autre exemple d'utilisation: Rendre en plusieurs fois un rendu très long: Comme il possible de découper en morceau non redondants le rendu, on va ainsi pouvoir découper en plusieurs l'intervalle de temps nécessaire au rendu. Par exemple faire un rendu de 48h en 4 fois 12h. Si vous avez besoin de vos bécanes ou que votre portable chauffe beaucoup, c'est pratique !

De plus, j'ai prévu une nouvelle version permettant d'animer cette zone, par exemple pour suivre le contour d'un objet pendant une animation. Cela peut être utile pour accélérer des rendus ou seul la partie centrale est utilisée, par exemple pour placer un objet et son ombre sur un fond.

NB: Ce script est encore en court de développement n'hésitez donc pas à faire des remarques, des suggestions d'améliorations, à demander de nouvelles fonctionnalités, etc. C'est Open Bar ! ;-)

-----

L'interface:

Voici l'interface (provisoire) du script, que l'on retrouve dans le panneau des propriétés de rendu:

[Add-on] Precise Render Border Adjust: mon add-on pour positionner précisément la Border Render.

Un petit descriptif s'impose !

  • Les quatres sliders du haut (1) correspondent aux coordonnées des bords de la render border, en proportion de la taille du rendu. Exemple: Une valeur de 0.5 sur les X correspond donc à une bordure démarrant au centre de la caméra.
    NB: les valeurs de min et max peuvent être inversées.
  • Le bouton juste en dessous (2) permet de convertir les valeurs de base (entre 0 et 1) en pixels. C'est utile pour connaitre la taille exacte en pixel de la zone définie.
  • Les quatres champs suivant (3) définissent la position en pixels de votre render border. Pratique pour travailler avec des valeurs numériques parlantes.
    NB: Cette valeur doit être appliquée en cliquant sur le bouton au dessous.
  • Enfin le bouton du bas (4) permet d'aplliquer les valeurs en pixels à la border region. Ceci est obligatoire, sinon elles sont sans effet.

NB: Comme je l'ai précisé, cette interface est amenée à évoluer et à s’étoffer, en fonction des désidératas des utilisateurs. C'est à dire vous ! ;-)

Astuce: Dans certain cas il est pratique de rentrer des valeurs de render border "à la main". Sachez que si vous définissez dans la vue 3D une render border, les coordonnées sont automatiquement mises à jour !

Pour le moment ces valeurs ne sont pas animables, car elles ne le sont pas par défaut, et il va me falloir ruser pour réussir à les animer ! :-P

-----

Astuce: Lors du rendu, pour éviter d'obtenir une image noire autour de la zone rendue, cochez l'option Crop à coté de Border.

Seule la partie rendu sera alors affichée.

-----

N'hésitez pas à tester cette add-on, à me faire des rapports de bugs, à poser des questions, à racconter tout ce qui vous passe par la tête...

Bref éclatez-vous avec !

---------------------

Petit point technique: comment installer un add-on dans Blender ?

L'installation d'un add-on est un opération facile et rapide à réaliser:

  1. Téléchargez votre add-on (ou pour les plus vaillants, codez-le ^^).
  2. Ouvrez Blender;
  3. Ouvrez les préférences (Ctrl + Alt + U);
  4. Rendez-vous dans l'onglet Add-ons (numéro 1 sur l'image ci-dessous);
  5. Cliquez sur Install Add-On (numéro 2 sur l'image ci-dessous);
  6. Rendez-vous dans le dossier contenant votre add-on, si c'est un simple script python (fichier .py), ou sélectionnez l'archive, dans le cas d'un .zip.

Votre add-on est installé ! Il a été copié dans le répertoire de Blender, qui dépend de votre système d’exploitation:

  • Sous Linux: /home/$user/.config/blender/$version/scripts/addons
  • Sous Windows 7: C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\2.6x\scripts\addons
  • Sous Windows XP: C:\Documents and Settings\%username%\Application Data\Blender Foundation\Blender\2.6x\scripts\addons

Vous pouvez supprimer le(s) fichier(s) orginal(aux), puisque Blender en a fait une copie. Ah non c'est mon add-on le supprimez pas ! :-P

[Add-on] Precise Render Border Adjust: mon add-on pour positionner précisément la Border Render.
Commenter cet article

Matthieu 10/06/2016 01:21

Salut Lapineige,

Il semble que chez moi cela ne fonctionne pas voici le message d'erreur : no border area selected
http://www.screenart-graphiste.com/blender_clan/border_render.jpg
J'ai pourtant bien validé avec le bouton en bas.
Blender 2.77 sur linux xfce 14.04

Lapineige 10/06/2016 09:03

Étrange, chez moi ça marche.

Peut tu ouvrir une nouvelle scène, passer en vue caméra, cocher border dans le panneau de l'add-on, bouger les slides du haut, voir si ça marche, changer la valeur en pixel, appliquer, voir si ça marche ? Merci :)


PS: oh un copain sur Xubuntu :)

antoine 02/07/2014 18:43

Magnifique ! c'est justement ça qu'il manque au network render... Si on pouvait combiner les 2 ce serait génial ! il faudrait pouvoir animer les coordonnées du render border... faisable?

Lapineige 10/06/2016 18:55

Et surtout c'est à moi de le prévoir (d'ailleurs ça m'étonne que je ne l'ai pas fait, je crois que j'avais mis une limite pour empêcher le minimum de dépasser le maximum, mais on retombe sur le problème du zéro)

Matthieu 10/06/2016 18:52

Hehe j'ai capté le problème !
C'est tout con, lorsque la valeur d'un Min est supérieur a celle d'un Max il perd les pédales. Normal mais déroutant pour celui qui joue n'importe comment avec les boutons. :)-

Lapineige 10/06/2016 16:08

(j'ai supprimé le commentaire en double, il n'y avait pas de différence de contenu on est d'accord ?)

C'est en effet, un bug, je suppose que tu as modifié qu'une partie des valeurs, de telle sorte que tu as toujours un min et un max identique (à zéro) quelque part ?
Exemple, si tu ne modifie qu'en X, et pas en Y (donc toujours min 0 max 0), avec les valeurs par défaut tu observe ce bug, car la render border encadre une région de... 0 pixels.
Refait ta manip', mais en modifiant et X et Y, ça fonctionne.

Je mettrai une sécurité pour éviter ce problème ;)

Matthieu 10/06/2016 15:59

Salut copain Xubuntu & Blender ;)

J'ai suivi scrupuleusement ta procédure et cela fonctionne ! suite a quoi j'ai tenté de reproduire mon problème en simplifiant au max.

Mon problème survient lorsque :
1- j'ouvre la scène par défaut
2- je coche border dans la fenêtre de ton addon
3- je modifie les valeur en pixels (encart Num 3 de ton shema explicatif)
4- j'applique les paramètres avec le bouton "Pixels=>Border" en bas
5- je lance un rendu.

Lapineige 03/07/2014 14:49

Oui il calcule quand même, très peu mais il calcule. C'est toujours ça quand t'a rien d'autre ^^
Ok pour le script. Je booste pour la V3 alors :-P

antoine 03/07/2014 14:44

ah tiens oui des plans en holdout c'est plus simple... par contre blender va calculer quand même les zones ou y'a rien, ce qui prend quand même un peu de temps. Merci pour ta proposition de script, mais y'a pas d'urgence, je fais autrement pour le moment :)

Lapineige 03/07/2014 10:56

Ah ok pour ça. C'est bien le premier objectif de l'add-on :-)
Pour l'instant il te faut configurer le tout à la main, en lançant chaque Blender comme ça.
Après en attendant, si tu les lance en ligne de commande, je peut te faire un script qui ajuste la render border en fonction d'un argument de la ligne de commande. Moins pratique qu'une animation, mais au moins ça ferait le taf'.
Oui le mur de caméra, ou encore des plans en holdout.

antoine 03/07/2014 10:33

en fait si on peux découper une image en tiles et les repartir sur une animation, ça permet de calculer des images fixes sur plusieurs machines a la fois. il suffit de ré-assembler les tiles pour obtenir l'image finale. c'est une fonctionnalité qui me manque beaucoup parce que j'ai de grosses images a calculer et je dispose d'un parc avec beaucoup de machine. J'avais déjà penser a un autre système, mais c'est un peu laborieux : faire un "mur" de camera, toutes avec la même origine mais décalées les une par rapport aux autre avec le shift et animer le changement de camera sur chaque frame. je pourrais t'envoyer des capture si ça t'intéresse :)

Lapineige 03/07/2014 08:29

T'enflamme pas trop, c'est pour la V3, et j'ai quelques limitations techniques à contourner avant ^^
A quoi ça va te servir avec le network render ?
Content de voir que ça t'est utile !

antoine 02/07/2014 21:18

super nouvelle ! je vais suivre ça de près alors ;) voila qui va revaloriser le network render, dont le développement était un peu tombé dans l'oubli...

Lapineige 02/07/2014 20:50

Faisable ? Je dirais même plus, prévu !
C'est pour la V2 ou la V3. Je m'y attelle ;-)

triboulet 02/07/2014 08:09

pile poil à temps. Si, si, avec un rendu de brume le temps de calcul explose et quatre jours de sommeil , je ne sais pas faire. Donc encore une fois, merci qui? MERCI LAPINEIGE.

Lapineige 02/07/2014 09:03

Encore une fois, merci triboulet ! Pour ton soutiens indéfectible, mais pas que ! ^^
Je l'aurai su, l'add-on fonctionne depuis presque une semaine, avant que tu me parle de ça.
Je te l'aurai envoyé plus tôt.
Mince alors Lapi il se ramolli ^^