搅拌机可以按顶点 UV 坐标导出吗?
Posted
技术标签:
【中文标题】搅拌机可以按顶点 UV 坐标导出吗?【英文标题】:can blender export per vertex UV coordinates? 【发布时间】:2011-12-09 00:04:53 【问题描述】:是否可以为 Blender 编写一个导出器,用于导出每个顶点级别上的网格 UV 纹理坐标,与面的标准 UV 相对应?
我不是真正的 python 人,只使用了两天,但我已经设法为 android 编写了一个简单的网格导出器......我能够将顶点和索引导出到数组,但我无法让 UV 以相同的方式导出……我只能让它们与面顶点相关,这并不太有用……
由于格式的原因,我不太确定如何发布 python 代码,但这里是我获取所有信息并将其放入数组的部分:
obverts = bpy.context.active_object.data.vertices
obfaces = bpy.context.active_object.data.faces
verts = []
indices = []
tex = []
for vertex in obverts:
verts.append(vertex.co.x)
verts.append(vertex.co.y)
verts.append(vertex.co.z)
for face in obfaces:
indices.append(face.vertices[0])
indices.append(face.vertices[1])
indices.append(face.vertices[2])
face_index = face.index
for u,v in bpy.context.active_object.data.uv_textures.active.data[ face_index ].uv:
tex.append(u)
tex.append(v)
现在一切正常,除了最后四行获取 UV 坐标...这是从面获取 UV 的地方...但是如何获取与 data.vertices 相关的 UV?我读过一些关于“粘性 uv 坐标”的内容,但在我的 Blender 版本中找不到该选项。 我正在使用 Blender 2.57 并且花了一整天的时间试图找到答案,所以如果有人可以提供帮助;非常感谢。
【问题讨论】:
【参考方案1】:我可以将顶点和索引导出到数组,但我无法以相同的方式导出 UV……我只能将它们与面顶点相关,这并不太有用。 ...
UV 必须与面相关,因为每个顶点可能对于它所属的每个多边形都有不同的 uv。
例如,想象一个立方体,每个面上都有不同的纹理。顶点将位于一个面上的左上角,以及旁边面的右上角。
【讨论】:
你说得对,我在入睡前考虑了一下,意识到我想做的事情可能看起来很方便,但它有点傻。感谢您指出。【参考方案2】:如果您分离对象的所有面,您可以按顶点导出 UV。
(是的,这将复制两个或多个面使用的顶点)
进入编辑模式
将所有边缘标记为锐利
转到对象模式
分配并应用“边缘分割”修饰符
现在所有面都使用独特的顶点和边,
因此每个顶点都有自己的单个 UV 坐标
【讨论】:
以上是关于搅拌机可以按顶点 UV 坐标导出吗?的主要内容,如果未能解决你的问题,请参考以下文章