将 Blender 的 UV 向量转换为 3D 坐标

Posted

技术标签:

【中文标题】将 Blender 的 UV 向量转换为 3D 坐标【英文标题】:Converting Blender's UV vectors into 3D coordinates 【发布时间】:2018-07-19 00:36:46 【问题描述】:

我已经使用 Blender 的 Bmesh 函数将 UV 矢量坐标转换为 3D 平面。使用 bmesh 创建更新的网格,

bm.faces.new((vert))

它会创建不受欢迎的面,或者更准确地说,该函数生成的边和面与预期不符。

有没有办法允许生成的边不超过使用 bmesh 的网格的最大连接距离?

这个picture 显示了左侧边缘和面的生成,标记为绿色,与我标记为UV展开的接缝相比。

【问题讨论】:

【参考方案1】:

每个面都有一个edges 的列表,边缘可以给你length,如果太长你可以remove 它。删除其中一条边也会删除面。

f = bm.faces.new((vert))
for e in f.edges:
    if e.calc_length() > max_length:
        bm.edges.remove(e)

您还可以在使用它们创建面之前获取两个顶点之间的距离(v1.co-v2.co).length,诀窍是知道哪些将作为边连接,哪些将与面对角线。

【讨论】:

以上是关于将 Blender 的 UV 向量转换为 3D 坐标的主要内容,如果未能解决你的问题,请参考以下文章

U,V坐标如何工作?

为啥 3D 模型具有不同 uv 坐标的重复顶点位置

Blender 中的纹理不会出现在 Unity 3D 中

是否可以从 Blender 中的渲染对象创建 UV 贴图

如何将 .C3D 文件导入 Blender?

python 将3D数组转换为列向量