O.K. - Gelato läuft. Jetzt hab ich zwei Renderknechte - beides alte PPC-Macs. Da wird es mit Gelato nicht viel werden. Deshalb würde ich gern das blend2pixie-script zum laufen bekommen. Bis jetzt geht es nicht mal auf meinem Gentoo.
Die betreffenden Foren schweigen sich aus. Vielleicht gibt es hier jemanden mit Sports- oder Pythongeist?
Das script mit ein paar Hinweisen gibt es hier:
http://art-atel.com/htm/program/blender/help/htm/site_ren_blend2pix.htm
Fehlerausgabe:
/DG/Projets/Pixie/default//SurfaceShaders/ shaders dir: /opt/Pixie/shaders shader : ambientindirect shader : ambientlight shader : ambientocclusion shader : arealight shader : constant shader : distantlight shader : fog shader : glass shader : matte shader : metal shader : mirror shader : mtorDirectionalLight shader : mtorLambert shader : mtorPhong shader : normdir shader : paintedmatte shader : paintedplastic shader : plastic shader : pointlight shader : rayarea shader : raydistant shader : raypoint shader : shadowarea shader : shadowdistant shader : shadowpoint shader : shadowspot shader : spotlight Traceback (most recent call last): File "<string>", line 1639, in ? File "<string>", line 1631, in saveShaderName IOError: [Errno 2] No such file or directory: '/DG/Projets/Pixie/default//SurfaceShaders/ShaderNames'
Ich habe im script die line 17 angepasst (Folder existiert!): #rootdir = "/DG/Projets/Pixie/" rootdir = "/home/wy/sane/PixRendr/"
"ShaderNames" taucht im script ab line 950 auf:
def bevent(evt): global sshader, increment, pdir, maxblur, imagelist, imagelistmenu, imagelisttif, shadernametemp, selectedname, shaderselect, shaders global drawshadergui global paramobjects global params global paramscrolloffset global paramToggleSurface,paramToggleDisp global shaderstringselected global pathshader global testrendersize,testrendersizes,testrenderobject,testrenderobjects if (evt == 1101): #textshader.val='Surface "'+shaders[shaderselect.val-2]+'"' print "evt == 1101" getShaderArgs(shaderselect.val-2) drawshadergui=1 Register(gui,event,bevent)
if (evt == 1102): c=0 while c<len(paramobjects): print "got value: "+paramobjects[c].val c=c+1 Register(gui,event,bevent)
if (evt == 1103): paramToggleDisp.val=0 print "shaderselected strng was %s" % shaderstringselected getSaveableParams();
print "shaderselected strng was %s" % shaderstringselected shaderstringselected="surface"
print "toggle %s %s" % (shaderstringselected,shaderstrings[shaderstringselected]) setLoadableParams() Register(gui,event,bevent) if (evt == 1104): paramToggleSurface.val=0
print "shaderselected strng was %s" % shaderstringselected
getSaveableParams();
print "shaderselectpathshadered strng was %s" % shaderstringselected
shaderstringselected="disp" print "toggle %s %s" % (shaderstringselected,shaderstrings[shaderstringselected])
setLoadableParams()
Register(gui,event,bevent) if (evt == 1111): paramscrolloffset=paramscrolloffset-1 Register(gui,event,bevent) if (evt == 1112): paramscrolloffset=paramscrolloffset+1 Register(gui,event,bevent) if (evt >=1200 and evt <=1300): attribobj=evt-1200
print "got attrib event of type: "+params[attribobj].type params[attribobj].handleEvent()
Register(gui,event,bevent) if (evt == 500): # Change project newdirs() surfaceshadername.val = "" sshader = "ADD NEW" try: f = open(surfaceshadersdir + 'ShaderNames','r') saveShaderName(0) except:
weiter mit line 1365:
def saveload(save, exportS, module,temp=0): global shaderval global params global shaderselect global paramsraw global shadernametemp global drawshadergui
global shaderstrings
if (module == 'shader'): getSaveableParams(); Variables = [shaderstrings["surface"], shaderstrings["disp"]] if exportS: namelist = string.split(sshader, "|") name = namelist[objectshadermenu.val - 1] else: if (temp==0): name = surfaceshadername.val else: name = shadernametemp if (name == ''): return fname = surfaceshadersdir + name
sname=fname+".custom" print "\n-- about to save or load --\n"; print "shader: "+fname print "custom shader: "+sname
und hier die betreffenden lines um 1630:
def saveShaderName(save): global sshader if save: f = open(surfaceshadersdir + 'ShaderNames','w') else: f = open(surfaceshadersdir + 'ShaderNames','r') if save: writeln(f,sshader) else: sshader = readstr(f) f.close() try: f = open(surfaceshadersdir + 'ShaderNames','r') except: saveShaderName(1) Register (gui, event, bevent)
saveShaderName(0) Register (gui, event, bevent) sshader2 = sshader
Ich habe schon einiges probiert, die Pfade zu setzen:
/etc/env.d/99pixie:
LDPATH = "/lib:/usr/lib:/usr/local/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib32:/usr/lib32 :/usr/local/lib32:/opt/Pixie/lib"
/etc/profile.d/pixie.sh:
#!/bin/bash export PIXIEHOME="/opt/Pixie" export PYTHONPATH="$PIXIEHOME/lib;$PYTHONPATH" export PATH=$PATH:$PIXIEHOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PIXIEHOME/lib export SHADERS=$PIXIEHOME/shaders
/home/user/.bashrc:
export PATH="${PATH}:/opt/Pixie/bin" PIXIEHOME=/opt/Pixie SHADERS=/opt/Pixie/shaders
Ist viel Text geworden. Ich möchte nur mein Problem mundgerecht servieren. Es wäre schön, wenn jemand einen Tip hätte.
Grüße Willi