to_mesh() в blender 3

#python #blender

#python #блендер

Вопрос:

в предыдущих версиях blender можно было получить фактическое положение вершины с помощью to_mesh():

https://blenderartists.org/t/how-to-get-vertices-coordinates-from-animated-mesh/565581/4

К сожалению, эта функция не работает в blender 3, не так ли? Существует ли альтернативный подход для получения координат вершин с применением модификаторов и ключей формы? Заранее спасибо!

Приветствую

Ответ №1:

Этот минимальный пример работает для меня в blender 3.0.0:

 import bpy

# get absolute position of a vertex from an object with shapekeys (and other transforms)
dg = bpy.context.evaluated_depsgraph_get()
obj = bpy.context.object.evaluated_get(dg)

mesh = obj.to_mesh(preserve_all_data_layers=True, depsgraph=dg)
co = mesh.vertices[0].co
co_final = obj.matrix_world @ co
print(co_final)
 

Он основан на подходах ideasman42 и iceythe Kaio в этих старых сообщениях:
https://blenderartists.org/t/get-mesh-data-with-modifiers-applied-in-2-8/1163217
https://blender.stackexchange.com/questions/1311/how-can-i-get-vertex-positions-from-a-mesh