VFX Soupe
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

RenderRegion evaluer sur chaque frame.

5 participants

Aller en bas

RenderRegion evaluer sur chaque frame. Empty RenderRegion evaluer sur chaque frame.

Message par Deex Sam 15 Aoû 2009 - 13:55

Bonjour les enfants,
Bon, je suis entrain de faire la version 2 mon script : http://www.highend3d.com/maya/downloads/mel_scripts/rendering/mental_ray/Deex-Render-Booster-Tile-5794.html

Pour faire vite : mon script (qui est pour mentalRay ) permet de rendre une image sur plusieurs PC en découpant l'image, et il permet aussi de détecter les objetcs mis dans une liste, et ainsi découper la zone de rendu choisi. Et donc, optimizer à fond les calcules (ce pour contrer le satelite qui est pourri).
Bon, tout ça, ça marche.

Moi, pour la version 2, je veux que ça marche pour les animations.
Actuellement, ou j'en suis : j'ai fais un truc qui analyse la scène, il regarde si il ya un render layer, plusieurs camera, etc etc. Ensuite, il calcule les coordonnés pour chaque frames de la ou il y a l'object (ou la liste d'objet, en récupérant la taille des boundings box, regarde les max et les min, etc etc) et le retranspose (de la 3D en 2D en fesant un screenproject, la on passe par de l'API), pour arriver a générer un fichier .xml classer (en Python avec Element), avec pour chaque frame, les coordonnés X, Y, with et height de la zone de rendu.

Pour retransmettre les coordonnées, je rajoute des extra-attribut au node "mentalRayGlobals" qui sont :
Code:
regionRectX
regionRectY
regionRectWidth
regionRectHeight

Ces attributs sont des intergers (qui sont inexistant à la base).

Mon concept étant de rajouter un script en preFrame, et que ce script va ouvrir le fichier .xml générer auparavant, le parser, analyser la frame actuel du batch, le render layer, la caméra, etc etc...pour trouver ensuite les coordonnées a prendre.
Tout est fais avec le module ElementTree.

RenderRegion evaluer sur chaque frame. Image_098_2009_08_15_125854

A partir de la, quand le script (du preFrame) à récupéré les coordonnées, il fait un setAttr sur les 4 attributs ajouter (du node mentalrayGlobals) dynamiquement, en mettant donc les coorodonné récupés du xml.

Quel est le problème ?
Le problème étant que les 4 attributs sont évaluer au chargement de la scène. Hors, en preFrame, la scène est déjà charger. Donc le changement de renderRegion (qui doit être exact aux objets) n'est pas pris en compte.
Résultat : il ne prends que la valeur de la 1ere frame sur tout le batch.

Ce qui fait que j'ai une solution : faire un batch/job pour chaque frame, vu que les attributs sont évaluer a chaque chargement de la scene.
Sauf que la, déjà c'est moche, et ça comprommé tout ce que j'ai fais avant.

Au lieu d'avoir ça :
Code:
"C:/Program Files/Autodesk/Maya2009/bin/Render.exe" -im "testReg.ghth" -x 640 -y 480 -fnc 3 -r mr -rl defaultRenderLayer -cam perspShape -preFrame "python(""import deexRenderBoosterTile\ndeexRenderBoosterTile.DB_mentalrayGlobalsAddAttr('C:/Documents and Settings/Administrateur/My Documents/maya/projects/default/DeexBoosterBatFiles' ,'testReg.mb' ,'defaultRenderLayer' ,'perspShape')"");" -s 1.0 -e 10.0 -rd "C:/Documents and Settings/Administrateur/My Documents/maya/projects/default/images/" -proj "C:/Documents and Settings/Administrateur/My Documents/maya/projects/default" "C:/Documents and Settings/Administrateur/My Documents/maya/projects/default/scenes/testReg.mb"

Si il y a pas de solution, j'aurais ça :
Code:
"C:/Program Files/Autodesk/Maya2009/bin/Render.exe" -im
"testReg.ghth" -x 640 -y 480 -fnc 3 -r mr -rl defaultRenderLayer -cam
perspShape -preFrame "python(""import
deexRenderBoosterTile\ndeexRenderBoosterTile.DB_mentalrayGlobalsAddAttr('C:/Documents
and Settings/Administrateur/My
Documents/maya/projects/default/DeexBoosterBatFiles' ,'testReg.mb'
,'defaultRenderLayer' ,'perspShape')"");" -s 1.0 -e 1 -rd
"C:/Documents and Settings/Administrateur/My
Documents/maya/projects/default/images/" -proj "C:/Documents and
Settings/Administrateur/My Documents/maya/projects/default"
"C:/Documents and Settings/Administrateur/My
Documents/maya/projects/default/scenes/testReg.mb"
"C:/Program Files/Autodesk/Maya2009/bin/Render.exe" -im
"testReg.ghth" -x 640 -y 480 -fnc 3 -r mr -rl defaultRenderLayer -cam
perspShape -preFrame "python(""import
deexRenderBoosterTile\ndeexRenderBoosterTile.DB_mentalrayGlobalsAddAttr('C:/Documents
and Settings/Administrateur/My
Documents/maya/projects/default/DeexBoosterBatFiles' ,'testReg.mb'
,'defaultRenderLayer' ,'perspShape')"");" -s 2 -e 2 -rd
"C:/Documents and Settings/Administrateur/My
Documents/maya/projects/default/images/" -proj "C:/Documents and
Settings/Administrateur/My Documents/maya/projects/default"
"C:/Documents and Settings/Administrateur/My
Documents/maya/projects/default/scenes/testReg.mb"
"C:/Program Files/Autodesk/Maya2009/bin/Render.exe" -im
"testReg.ghth" -x 640 -y 480 -fnc 3 -r mr -rl defaultRenderLayer -cam
perspShape -preFrame "python(""import
deexRenderBoosterTile\ndeexRenderBoosterTile.DB_mentalrayGlobalsAddAttr('C:/Documents
and Settings/Administrateur/My
Documents/maya/projects/default/DeexBoosterBatFiles' ,'testReg.mb'
,'defaultRenderLayer' ,'perspShape')"");" -s 3 -e 3 -rd
"C:/Documents and Settings/Administrateur/My
Documents/maya/projects/default/images/" -proj "C:/Documents and
Settings/Administrateur/My Documents/maya/projects/default"
"C:/Documents and Settings/Administrateur/My
Documents/maya/projects/default/scenes/testReg.mb"
etc etc...

A noté qu'il y aussi possibilité de faire des render Region avec le flag -reg directement en batch, mais on arrive au même problème : impossible de modifier les valeurs.

Donc résultat, tout est fait, mais je suis bloqué cheers .
J'ai essayé plusieurs solutions pour essayer de faire évaluer les attributs :
- en créant une expres​sion(if frame == 1, blabla)
- en les créants sur un objet dumy et en reliant chaque attribut avec le connection editor
- en fesant un scriptJob

Aucune des solutions ne marchent (MR c'est de la merde ?).

Si quelqu'un voit une solution, qu'on me le fasse savoir. Je suis pas programmeur, je fais juste ça comme ça en auto didacte, parce que la nuit, on se fait chier.

Merci d'avance cheers .
Deex
Deex
2ème commis
2ème commis

Nombre de messages : 445
Age : 37
Localisation : Santa Monica
Date d'inscription : 11/03/2008

http://deex.info/

Revenir en haut Aller en bas

RenderRegion evaluer sur chaque frame. Empty Re: RenderRegion evaluer sur chaque frame.

Message par xaebhal Mer 19 Aoû 2009 - 11:07

Je ne m'y connais pas assez en mental ray pour avoir une solution directement, par contre tu peux peut etre essayer d'utiliser une camera asymétrique.

Le principe est surtout utilisé en réalité virtuelle, ou la position de la caméra bouge en fonction de celle du spectateur, mais le plan de projection lui reste fixe. Je ne suis pas sur mais il semble qu'en modifiant simplement la matrice de la camera tu peux faire ça, et du coup modifier pour chaque frame la fenêtre de rendu.

Par contre ca ne changera pas la resolution du rendu (mais peut être que tu peux modifier la resolution (pas la région) dans une anim avec MR).
xaebhal
xaebhal

Nombre de messages : 16
Age : 40
Date d'inscription : 24/07/2009

Revenir en haut Aller en bas

RenderRegion evaluer sur chaque frame. Empty Re: RenderRegion evaluer sur chaque frame.

Message par Deex Mer 19 Aoû 2009 - 12:03

J'y avais déjà pensé, mais la on tombe sur le probleme qu'on ne puisse pas changer la résolution en perFrame :/.
Deex
Deex
2ème commis
2ème commis

Nombre de messages : 445
Age : 37
Localisation : Santa Monica
Date d'inscription : 11/03/2008

http://deex.info/

Revenir en haut Aller en bas

RenderRegion evaluer sur chaque frame. Empty Re: RenderRegion evaluer sur chaque frame.

Message par Deex Jeu 1 Oct 2009 - 11:48

http://deex.info/wordpress2/2009/10/deex-render-booster-tile-v200/

Fini, suivant.

J'ai jamais de retour, c'est chiant. J'ai remarqué que quand c'est gratuit, personne ne prend la peine de relever des bugs ou autres.
Un exemple simple : le Deex Render Tool. Je frôle les 2000 downloads, 10 merci, 0 retour de bugs RenderRegion evaluer sur chaque frame. Suspect RenderRegion evaluer sur chaque frame. Icon_pale .
Deex
Deex
2ème commis
2ème commis

Nombre de messages : 445
Age : 37
Localisation : Santa Monica
Date d'inscription : 11/03/2008

http://deex.info/

Revenir en haut Aller en bas

RenderRegion evaluer sur chaque frame. Empty Re: RenderRegion evaluer sur chaque frame.

Message par Kaiz3r Jeu 1 Oct 2009 - 18:46

c'est qu'il doit bien marcher !
moi perso j'ai jamais réussi a le faire marcher sur mac et depuis je suis passer sur houdini ^^
Kaiz3r
Kaiz3r
2ème commis
2ème commis

Nombre de messages : 779
Age : 38
Localisation : Montpellier
Date d'inscription : 19/10/2008

http://www.kaiz3r.net

Revenir en haut Aller en bas

RenderRegion evaluer sur chaque frame. Empty Re: RenderRegion evaluer sur chaque frame.

Message par Titus Jeu 1 Oct 2009 - 18:53

Ou alors, c'est que ça marche pas et que tout le monde le supprime sans y preter guere d'attention.
haha.(nelson mode)
Titus
Titus
Chef de cuisine
Chef de cuisine

Nombre de messages : 1145
Age : 39
Localisation : France
Date d'inscription : 11/12/2007

Revenir en haut Aller en bas

RenderRegion evaluer sur chaque frame. Empty Re: RenderRegion evaluer sur chaque frame.

Message par johntchance Ven 2 Oct 2009 - 0:26

Je ne découvre ce sujet que maintenant et, au risque de jouer les lourds, jpeux savoir comment tu as finalement réussi à solutionner ton problème d'évaluation des attributes MR à chaque frame et pas au chargement de scène ?
Merci !

johntchance

Nombre de messages : 17
Date d'inscription : 29/03/2009

Revenir en haut Aller en bas

RenderRegion evaluer sur chaque frame. Empty Re: RenderRegion evaluer sur chaque frame.

Message par Deex Ven 2 Oct 2009 - 0:41

J'ai pas fais un preFrame, mais un preRender. Donc au final, 1 frame = 1 job (le tout dans un .bat).
Deex
Deex
2ème commis
2ème commis

Nombre de messages : 445
Age : 37
Localisation : Santa Monica
Date d'inscription : 11/03/2008

http://deex.info/

Revenir en haut Aller en bas

RenderRegion evaluer sur chaque frame. Empty Re: RenderRegion evaluer sur chaque frame.

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum