提取Blender原始坐标(ORCO)

6 投票
1 回答
2064 浏览
提问于 2025-04-16 16:32

我做了一个导出工具(用Python写的),可以把Blender(2.5以上版本)里的模型导出到一种自定义格式。不过让我困扰的是,大多数我下载的模型都没有UV层,而是使用自动生成的纹理坐标。

我的问题是:我怎么才能在Python中访问Blender生成的坐标(ORCO)呢?

编辑-2:示例文件: http://dl.dropbox.com/u/16317117/orco.blend

这个文件是通过加载默认场景并用一个立方体,然后把它的纹理单元类型改成“木头”创建的。默认的映射方式已经是生成的:平面。如果你渲染这个场景,你会看到木纹纹理正确地应用在立方体上,就好像立方体有一个合适的UV展开一样。

编辑-3:答案。

我在Yafaray的Blender导出器源代码中找到了答案。谢谢你们!如果你们看到这个帖子,请回复一下,这样我就可以给你们奖励。

生成的坐标(ORCO)是顶点的“标准化”局部坐标。简单来说,就是给定物体的局部边界框:Orco(v) = 2*(v-center)/size

1 个回答

3

生成坐标(ORCO)是顶点的一个“标准化”局部坐标。简单来说,就是根据物体的局部边界框来计算的:ORCO(v) = 2 * (v - 中心) / 大小。

撰写回答