2016-03-23 46 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映射的基礎。

即使沒有適合執行核心要求(提取紋理)的東西,它也是顯示原始文件和生成的任何輸出的很好的工具包。