Domanda

Utilizzando il Blender 2.49's Python API Sto creando una maglia. Ho un elenco di vertici e un elenco di indici viso.

E.G.

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

Ho notato MTTORE Uvco proprietà e Mface UV proprietà, e aggiunto alcuni valori casuali, ma non riesco a vederlo cambiare quando renderò.

Per quanto riguarda UVCO, la documentazione menziona:

.

Nota: questi non sono visti nell'editor UV e non sono parte di UV un UVlayer.

L'ho provato con la nuova maglia selezionata:

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
.

Posso vedere i valori cambiano nel terminale, ma non vedo alcun cambiamento quando renderò. Se riseletico l'oggetto, il precedente UV è andato via.

Qualcuno può spiegare come sono impostati UV usando il Blender 2.49 Python API?

Grazie

È stato utile?

Soluzione

prova a sostituire semplicemente questa linea:

o = ob.getData()
.

con

o = ob.getData(mesh=True)
.

A causa dello sviluppo storico dell'API Python del Blender, una chiamata ordinaria a Blender_Object.getData offre una copia dei dati della mesh di un oggetto, che mentre è possibile modificare, non è "live" sull'oggetto visualizzato.(In realtà è anche una "Nmesh" - una classe che differisce dalla classe vivente "Mesh").

Con il parametro opzionale "MESH= TRUE" è passato al metodo GetData restituisci la rete vivente dell'oggetto e le modifiche in esso hanno effetto (che può essere visto su un aggiornamento forzato con dopo un frullatore.redraw ()).

Non ho mai provato le cose UV, tuttavia, quindi potrebbero esserci più cose, ma credo che questo sia il tuo problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top