從Blender裡萃取模組資料(10)
前言
在先前的"從Blender裡萃取模組資料"系列文章中發現在萃取 Material 的時候沒有萃取對應的 Vertex ,也就是一個 Mesh 有多個 Material 時要如何萃取,在此做個紀錄。
內容
先看以下範例
import bpy import bmesh tagMesh = bpy.data.meshes["Cube"] #Create bmesh from mesh tagBMesh = bmesh.new() tagBMesh.from_mesh(tagMesh) #Start extract matList = tagMesh.materials for face in tagBMesh.faces: #Start extract face data print( 'material index:' , face.material_index ) print( 'material name:' , matList[ face.material_index ].name) #Free bmesh... tagBMesh.free()
要萃取 Vertex 所屬的Material 可以透過 bmesh 來取得,加上先前 從Blender裡萃取模組資料(1) 裡的範例搭配使用就可以簡單地取得。要注意的是取得的資料"material.index",這是一個整數型態,而非名稱,所以是有順序性的,這個索引對應的陣列,這個對應的陣列是"mesh.materials",也就是範例的"matList",透過這個陣列加上"face.material_index"就可以完整萃取到對應資訊。
參考資料
[ docs.blender.org ] Blender 2.92.0 Python API Documentation
沒有留言:
張貼留言