随着 kinect sdk 的最新更新,它是 v 1.8,现在我可以扫描带有纹理的对象。但是我们如何使用纹理器保存 3D 模型呢?可用选项另存为 .obj 、 .ply 、 .stl 但是当我将保存的模型加载到 3ds max 中时,我看不到任何纹理只有灰色网格。这是关于我最后一年的大学项目,所以请帮助我。
3 回答
我知道这个线程现在正在收集一些灰尘,但我最近一直在解决类似的问题,并认为我会分享结果。
通过使用 MeshLab 将 PLY 文件转换为 WRL,然后将 WRL 文件导入 3DS Max,我已经(至少部分地)解决了这个问题。这似乎很容易做到这一点。
我现在需要的只是发现一旦我对纹理进行了修改后如何再次导出文件。
当与纹理一起导出到 obj 时,您将拥有一个“.mtl”文件以及 obj 文件。该文件包含材料定义。
所以我在 3dsmax 中做了一个盒子,在漫反射槽中添加一个简单的 tga 纹理,然后导出为带有材质的 obj。
.mtl 文件看起来像这样(命名与 obj 文件相同,但文件扩展名为 mtl):
# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
# File Created: 04.11.2013 11:48:56
newmtl 01___Default
Ns 10.0000
Ni 1.5000
d 1.0000
Tr 0.0000
Tf 1.0000 1.0000 1.0000
illum 2
Ka 0.5882 0.5882 0.5882
Kd 0.5882 0.5882 0.5882
Ks 0.0000 0.0000 0.0000
Ke 0.0000 0.0000 0.0000
map_Ka C:\Users\asdf\Documents\3dsmax\sceneassets\images\Snake_Skin.tga
map_Kd C:\Users\asdf\Documents\3dsmax\sceneassets\images\Snake_Skin.tga
然后它也会在将其导入 3dsmax 时读取它,因此使用 kinect SDK 代码只需创建此 mtl 文件,添加文件名等,然后将其保存在您的 obj 旁边。然后你可以很容易地用纹理导入到 max 中。
默认情况下,3dsmax 不会在视口或渲染中显示顶点颜色。您不需要 .mtl 文件,因为这些材料可以手工制作。obj 文件仅支持一个 uv 通道,不支持顶点颜色通道。
尝试在对象属性中打开顶点颜色。您可以更改顶点颜色来自的通道。它们可能在顶点颜色或贴图通道 1 中,所有这些通道的数据都是相同的,因此它们让您可以选择任何一个进行显示。
您应该在视口中诊断问题。如果您在这里看到您想要的颜色,那么它们确实存储为顶点颜色。如果您看到的是彩虹色的渐变,那么这就是 uvw 映射。如果 uvw 采用世界单位,这也可能是黑色、青色、黄色等。如果所有贴图通道和顶点通道都是黑色的,则您没有颜色或贴图数据。
对于渲染,在漫反射通道中指定具有顶点颜色贴图的材质,或者如果它们是 uvw 贴图,则指定位图。