Page 1 of 1

materiaalien vaihto

Posted: 19.10.2009, 13:07
by simart
Miten Pythonilla on tarkoitus vaihtaa pintojen materiaaleja? Jos esimerkkiksi ajan 249PythonDoc:n mesh-modulin esimekkiscirptin:

Example:

from Blender import *
import bpy

editmode = Window.EditMode() # are we in edit mode? If so ...
if editmode: Window.EditMode(0) # leave edit mode before getting the mesh

# define vertices and faces for a pyramid
coords=[ [-1,-1,-1], [1,-1,-1], [1,1,-1], [-1,1,-1], [0,0,1] ]
faces= [ [3,2,1,0], [0,1,4], [1,2,4], [2,3,4], [3,0,4] ]

me = bpy.data.meshes.new('myMesh') # create a new mesh

me.verts.extend(coords) # add vertices to mesh
me.faces.extend(faces) # add faces to the mesh (also adds edges)

me.vertexColors = 1 # enable vertex colors
me.faces[1].col[0].r = 255 # make each vertex a different color
me.faces[1].col[1].g = 255
me.faces[1].col[2].b = 255

scn = bpy.data.scenes.active # link object to current scene
ob = scn.objects.new(me, 'myObj')


Niin lopputuloksena on harmaa pyramidi, vaikka kulmien värejä muuttaisi kaikkiin kulmiin. Materiaalien lisääminen me-muuttujaan ja pintojen me.faces[1].mat muuttaminen ei myöskään näyttäisi vaikuttavan mihinkään. Ilmeisesti jokin tilanteen päivityskomento puuttu

Re: materiaalien vaihto

Posted: 19.10.2009, 14:52
by Könni
Ei mitään hajua, mutta tämän sivun perusteella arvattuna puuttuu mesh.update(). vertexcolors.py

Korjaan: dokumentaation mukaan "this method may be only temporary and may be removed in future releases". En tiiä mutta joku muu update sitten. scene.update?

Re: materiaalien vaihto

Posted: 20.10.2009, 14:04
by simart
Kokeilin tuota, mutta en saanut mitään näkyvää aikaiseksi.

Kokeilin myös Blenderin päivitystä 2.5:een, mutta se valitti Blender modulin puuttumista. Onkohan tämä jossain vaiheessa tulossa uudempaan Blender pythoniin vai korvautuuko se jollain?

Re: materiaalien vaihto

Posted: 20.10.2009, 21:27
by Könni
"The bpy module is intended as a replacement for the Blender module." -doc