2016-03-23 47 views
1

在我的(有限)3D编程体验中,通常我们设置一个包含材质和纹理的3D模型,然后设置灯光和相机。最后,我们可以通过相机获得2D视图。通过3D投影从图像中获取纹理

但是我需要逆转这个过程:给定一个2D视图图像,一个摄像机设置和一个没有纹理的3D模型,我想找到模型的纹理,使它产生相同的2D视图。为了简化,我们忽略光线和材料,假设它们是均匀的。

虽然不容易,我想我可以写一个程序来做到这一点。但是现在有没有轮子,所以我不必再发明它了? (C#,WPF 3D或openCV)

回答

1

Helix3dToolkit对于WPF有一个有趣的例子叫做“ContourDemo”。如果你下载了整个源代码,你会得到一个非常全面的示例应用程序来展示它的功能。

该特定示例使用多个辅助方法从给定的3D模型文件(.3ds,.obj,.stl)生成轮廓网格。

enter image description here 随着一些延伸,可能是反向计算uv映射的基础。

即使没有适合执行核心要求(提取纹理)的东西,它也是显示原始文件和生成的任何输出的很好的工具包。