Pregunta

Uso de la API de Python de Blender 2.49 Estoy creando una malla. Tengo una lista de vértices y una lista de índices de cara.

e.g.

mesh = bpy.data.meshes.new('mesh')
mesh.verts.extend(mVerts)
mesh.faces.extend(mFaces)

He notado a Mvert's UVCO propiedad y mface's UV propiedad, y agregó algunos valores aleatorios, pero no puedo ver ninguna cambiar cuando rindo.

Con respecto a UVCO, la documentación menciona:

NOTA: Estos no se ven en el editor UV y no son parte de UV a UVLAYER.

Intenté esto con la nueva malla seleccionada:

import Blender
from Blender import *
import random

scn = Scene.GetCurrent()
ob = scn.objects.active
o = ob.getData()

for v in o.verts:
    v.uvco = (random.random(),random.random(),random.random())
    print v.uvco

for f in o.faces:
    r = (random.random(),random.random())
    for i in range(0,4):
        f.uv.append(r)
        print f.uv

Puedo ver los valores de cambio en el terminal, pero no veo ningún cambio cuando rindo. Si vuelvo a seleccionar el objeto, los UV de la cara anterior se han ido.

¿Puede alguien explicar cómo se establecen UVS usando la licuadora 2.49 Python API?

gracias

¿Fue útil?

Solución

Intenta simplemente reemplazar esta línea:

o = ob.getData()

con

o = ob.getData(mesh=True)

Debido al desarrollo histórico de la Blender Python API, una llamada ordinaria a Blender_Object.getData le ofrece una copia de los datos de malla de un objeto, que mientras se pueden modificar, no está "VIVO" en el objeto que se muestra.(En realidad, es incluso un "nmesh", una clase que difiere de la clase de "malla" viva).

con el parámetro opcional "Malla= verdadero" pasó al método GetData, recupera la malla viva del objeto, y los cambios en los mismos tienen efecto (que se puede ver en una actualización forzada con después de una licuadora.redraw ()).

Nunca probé las cosas UV, sin embargo, puede haber más cosas para eso, pero creo que este es su problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top