I want to set texture for faces. I put together a quick example using the "Cube" and an existing BMP as the texture file on disk. I am in Object Mode. I set the Viewport Shading to Texture.
The code is:
import bpy
import bmesh
texturak = bpy.data.textures
o = bpy.data.objects["Cube"]
me = o.data
ol = me.materials
img = bpy.data.images.load('d:\\canwall1.bmp')
texturak.new('ColorTex', type = 'IMAGE')
texturak[-1].image = img
mat = bpy.data.materials.new('TexMat')
mtex = mat.texture_slots.add()
mtex.texture = texturak[-1]
mtex.texture_coords = 'UV'
mtex.use_map_color_diffuse = True
mtex.use_map_color_emission = True
mtex.emission_color_factor = 0.5
mtex.use_map_density = True
mtex.mapping = 'FLAT'
if (len(me.uv_textures) == 0):
me.uv_textures.new()
while (ol):
ol.pop(0,update_data = True)
ol.append(mat)
for texlay in me.uv_textures:
for tf in texlay.data:
tf.image = img
I get the cube, then the texture, I add it as a material. From there, I found no good examples on internet. The only working stuff was for Blender 2.5 and some guesses from the answer of my previous question here.
So for this time I tried to set all face-images to the image I load. But all I get is a purple cube. Now my guess is that "something happened" (woohoo), but as well as "something is missing" (no woohoo this time).
My question would be to those more experienced, that what is missed here actually, or is there a better way to set material / texture to a face / faces?
Edit: To extend my question: I want to have more textures per mesh; this is why I want to set the texture per face.