Projet

Général

Profil

Raydium Blender » Script_identifier.py

Script Scénario :Script Export tri blender, identifier les informations concernant les positions des vertices, faces et texturage - Anonyme, 29/11/2021 16:23

 
######################################
# Script identifier les informations
# concernant les positions des vertices,
# faces et texturage
######################################

'''Les vertices sont stockées dans : bpy.data.meshes.vertices[i]
On peut obtenir les coordonnées de chaque vertices avec ___.vertices[i].co[0]...[1]...[2] (x,y,z)

Les bords (edges) du mesh sont stockés dans : bpy.data.meshes.edges[i]
On peut obtenir les points (p1,p2) qui construisent chaque edge avec ____.edges[i].vertices

Pour calculer la triangulisation du mesh, il faut utiliser bpy.data.meshes.calc_looptriangles()
Les triangles sont stockés dans : bpy.data.meshes.loop_triangles
On peut obtenir les couples (p1,p2,p3) qui construisent chaque triangle avec ___.loop_triangle.vertices[0]..[1]..[2] (p1,p2,p3)'''

import bpy, bpy_extras
import numpy as np


name = bpy.data.objects[1].name
me = bpy.data.meshes[name]
print("Voici les caractéristiques de votre mesh nommé :",name)

# génération matrice des coordonées des vertices :
vts = []
for vert in me.vertices :
vts.append([vert.co[0],vert.co[1],vert.co[2]])
vts_mtx = np.matrix(vts)

print("Matrice des coordonnées des vertices : bpy.data.meshes.vertices[i].vertices[i].co[0]...[1]...[2] x=0,y=1,z=2")
for i in range(len(vts_mtx)):
if i > 2 and i < len(vts_mtx)-1:
pass
elif i == len(vts_mtx)-1:
print("...")
print("Vert_"+str(i),vts_mtx[i])
else :
print("Vert_"+str(i),vts_mtx[i])
print("\n")


# génération matrice de la triangulisation du mesh :
trgl = []
print("CALCULE DE LA TRIANGULISATION DU MESH : bpy.data.meshes.calc_looptriangles()")
me.calc_loop_triangles()

for triangle in me.loop_triangles:
trgl.append(list(triangle.vertices))
trgl_mtx = np.matrix(trgl)

print("Matrice de la triangulisation du mesh : bpy.data.meshes.loop_triangles.loop_triangle.vertices[0]..[1]..[2]")
for i in range(len(trgl_mtx)):
if i > 2 and i < len(trgl_mtx)-1:
pass
elif i == len(trgl_mtx)-1:
print("...")
print("Triangle_"+str(i),"vertices",trgl_mtx[i])
else :
print("Triangle_"+str(i),"vertices",trgl_mtx[i])
print("\n")

print("Affichage faces par faces des vertices de chaques faces")
for f in me.polygons:
print('Face', f.index, 'vertices', list(f.vertices))

print("Les coordonnees des textures : bpy.data.meshes.uv_layers[i].data[i].uv.xy")

obj = bpy.context.scene.objects['Cube']
mm = obj.to_mesh()

coord_list= []
for uv_layer in mm.uv_layers:
for coord in uv_layer.data:
coord_list.append([coord.uv.xy[0],coord.uv.xy[1]])

for i in range(len(coord_list)):
if i%4==0 :
print("\n")
print("Face",i//4)
print('Vert_'+str(i)+" :", "x= "+str(coord_list[i][0]),"y= "+str(coord_list[i][1]))
(9-9/10)