Scripting 如何修改网格属性以在Blender中发送自定义信息?

Scripting 如何修改网格属性以在Blender中发送自定义信息?,scripting,blender,mesh,Scripting,Blender,Mesh,我有一个3DS格式的网格。我将此网格导入到blender,现在,我想将此网格导出回3DS,但我想将一个数字(例如id)与此网格的每个顶点关联。现在,我只需要这个新导出的3DS的x、y和z坐标,我并不真正关心法线或纹理坐标 因此,保持ID完整的方法可以是在一个非必需的属性中插入该数字,比如说每个顶点法线的x坐标或每个顶点的第一个纹理坐标 以下是我尝试使用法线的方法: import bpy import bmesh object_reference = bpy.context.active_obj

我有一个3DS格式的网格。我将此网格导入到blender,现在,我想将此网格导出回3DS,但我想将一个数字(例如
id
)与此网格的每个顶点关联。现在,我只需要这个新导出的3DS的x、y和z坐标,我并不真正关心法线或纹理坐标

因此,保持ID完整的方法可以是在一个非必需的属性中插入该数字,比如说每个顶点法线的x坐标或每个顶点的第一个纹理坐标

以下是我尝试使用法线的方法:

import bpy
import bmesh

object_reference = bpy.context.active_object
bm = bmesh.new()
bm.from_mesh(object_reference.data)

for vert in bm.verts:
    vert.normal[0] = vert.index

bm.to_mesh(object_reference.data)
但是,正常值在导出时恢复为默认值。那么,我该怎么做呢?

我想不出一种设置纹理坐标的方法,我该怎么做?如果我不能,那么我如何才能使顶点法线黑客工作?有没有一种不太老套的方法可以做到这一点?

法线会在不同的时间重新计算,这使得它们成为一个糟糕的选择。如果导出到3DS,则需要考虑格式输出的数据,也许您需要以3D格式导出您想要的数据和自定义导入。我没有使用它们,但bmesh有-其他选项可能是顶点颜色或斜面权重。此外,您还可以在@sambler上找到更多特定于搅拌机的帮助。如何通过颜色或纹理坐标发送数据?这个问题也在blender.stackexchange上讨论了一会儿,没有人回答。我认为SO有一个更活跃的社区。uv数据不会自动更新,因此它应该保留您在其中输入的值-只要奇数uv数据不会弄乱3DS中的材质。@sambler我对弄乱的材质没有问题。但是如何修改uv数据?我没能找到一个方法。法线在不同的时间被重新计算,这使它们成为一个错误的选择。如果导出到3DS,则需要考虑格式输出的数据,也许您需要以3D格式导出您想要的数据和自定义导入。我没有使用它们,但bmesh有-其他选项可能是顶点颜色或斜面权重。此外,您还可以在@sambler上找到更多特定于搅拌机的帮助。如何通过颜色或纹理坐标发送数据?这个问题也在blender.stackexchange上讨论了一会儿,没有人回答。我认为SO有一个更活跃的社区。uv数据不会自动更新,因此它应该保留您在其中输入的值-只要奇数uv数据不会弄乱3DS中的材质。@sambler我对弄乱的材质没有问题。但是如何修改uv数据?我没能找到办法。