Salut la compagnie,
Ça fait quelques années !! J'ai toujours un oeil sur le forum de loin, mais très pris par d'autres projets ces derniers temps, énormément de boulot en 2D, rénovation de ma maison, ou mon statut nouvellement acquis de papa
Bref, j'essai d'optimiser mon workflow et je suis en train de me faire un setup studio standard avec vray qui soit contrôlable facilement et rapidement. Xpresso m'a toujours permis d'arriver à mes fins ; par contre pour modifier mes paramètres de rendus (arrêtez moi si je me trompe) il me semble qu'Xpresso ne suffise plus et qu'il faille passer par des noeuds en Python.
Je suis une bille en programmation, quelques base de actionscirpt et un peu de html.
D'habitude j'arrive à me dépatouiller avec des morceaux pris à droite à gauche ; pour gérer la taille de mon rendu j'ai pu écrire un truc tout simple qui fonctionne:
Code:
import c4d
#Welcome to the world of Python
def main():
global Output1
Output1 = Input1
global Output2
Output2 = Input2
rd = doc.GetActiveRenderData()
rd[c4d.RDATA_XRES] = Output1
rd[c4d.RDATA_YRES] = Output2
Je souhaiterai maintenant avoir un contrôle sur l'IG, rien de fou, juste un menu déroulant avec 3 ou 4 niveaux de qualité (qui contrôlerait donc les différents paramètres de l'irradiance map et du light cache, le max rate, etc etc)
J'ai donc d'une part créé un user data qui renvoi 3 valeurs possibles : 0, 1 ou 2 en fonction de la qualité d'IG souhaitée.
D'autre part j'ai non sans peine trouvé un petit bout de code qui me permet d'agir sur les paramètres (enfin un seul pour le moment mais le reste ira tout seul) de l'IG de vray :
Code:
import c4d
#Welcome to the world of Python
def check_vray():
doc = c4d.documents.GetActiveDocument() ## Sets Active Document
rdata = doc.GetActiveRenderData() ## Sets Active RenderData
post = rdata.GetFirstVideoPost() ## Returns the first Video Post Effect
if post == None: return ## If no Video Post Effect is found the script is stopped
while post:
if post.GetType() == 1019782: ## if Video Post Effect is V-Ray Bridge
post[c4d.VP_VRAYBRIDGE_IRRADMAXRATE] = -1 ## Here you can put your code
post = None ## changes post object to none so the loop is broken
else:
post = post.GetNext() ## Try the next Post-Effect
c4d.EventAdd() ## refreshes the interface
if __name__=='__main__':
check_vray()
Je suppose qu'il ne manque pas grand chose, quelques instructions conditionnelles bien placées, j'ai bien essayé, mais à l'évidence je suis complètement dépassé et j'ai de grosse lacunes de syntaxe...
Il y aurait un codeur charitable pour me venir en aide ? Allez, je vous laisse vous foutre de ma gueule en échange.
Merci !!!