rendered paste body#!BPY
"""
Name: 'Autobake (RCRuiz)'
Blender: 243
Group: 'Object'
Tooltip: 'Genera imagenes y uvm y renderea'
"""
__author__ = "Ramon Carlos Ruiz (RCRuiz)"
__url__ = ("http://blenderartists.org/forum/showthread.php?t=92364", "http://blenderartists.org" )
__version__ = "1.0 03/25/2007"
__bpydoc__ = """\
Copywrite to Ramon Carlos Ruiz
"""
#max size of image
height=500
width=500
import Blender
import archimap_ex
from Blender import *
H = Blender.Draw.Create(200)
W = Blender.Draw.Create(200)
pup_block = [\
'Projection',\
('W:', W,50,2500, 'width'),\
('H', H,50,2500, 'height'),\
]
if Blender.Draw.PupBlock("Max Image Size", pup_block):
height=H.val
width=W.val
sel=Blender.Object.GetSelected()
maxFac=0.0
for obj in sel:
if obj.getType()=='Mesh':
obj.sel=0
bnd=obj.getBoundBox()
v=bnd[0]
v=bnd[0]-bnd[6]
if maxFac<v.length:
maxFac=v.length
scn = Scene.GetCurrent()
context = scn.getRenderingContext()
cont=1
for obj in sel:
obj.sel=1
print "Chequing "+obj.name+" ("+str(cont)+"/"+str(len(sel))+")"
cont=cont+1
if obj.getType()=='Mesh':
bnd=obj.getBoundBox()
v=bnd[0]
v=bnd[0]-bnd[6]
fac=v.length/maxFac
mesh=obj.getData(mesh=1)
uvnames=mesh.getUVLayerNames()
ctr=0
for uvn in uvnames:
if uvn==obj.name+".BakeInfo":
ctr=1
if ctr==0:
mesh.addUVLayer(obj.name+".BI")
mesh.activeUVLayer=obj.name+".BI"
archimap_ex.main(0)
ctr=0
img=None
imgl=Image.Get()
for im in imgl:
if im.getName()==obj.name+".BI":
img=im
if img==None:
ctr=1
img=Image.New(obj.name+".BI",width*fac,height*fac,24)
img.setFilename(Blender.Get("texturesdir")+obj.name+".BI")
Blender.Main.images.active=img
faces=mesh.faces
for f in faces:
f.mode=512
f.image=img
context.renderBake()
print "Render Done!"
img.save()
if img.packed==1:
img.repack()
else:
img.pack()
img.repack()
obj.sel=0
print "Pack Done!"
print "Object Done!"
for obj in sel:
obj.sel=1