看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《OOXXOO (一個人生活)》之銘言: : 簡單的來說就是3D model的重建~ : 我用雷射掃描建出了一個3D的 model(obj檔之類的) : 但貼圖可能要用相機拍各個角度的照片~ : 然後想辦法把各個角度的照片貼到3D model上~ : 但我不知該如何做~ : 如何把各個角度的照片對應到3D model的3D座標~ : 我知道opengl如何貼圖~ : 但不知照片的2D座標該對應到3D座標的那個點~ : 就像你說的不知道相機位置~ : 有C++ code可下載嗎?我都找不到~ : 我只有找到opengl教我如何把貼圖貼到一個四方體~ : 但我的3D model是很複雜的~有很多頂點很多面~ : 可能要把很多照片分割成很多區塊貼到3D model的各個部位~ : 或是用3dsmax軟體可以手動把貼圖和3D model對應的座標都定義出來嗎? : 因為用C++好難寫~ 嗯 你的問題很大 基本上這種情況不能用 3D 軟體去指定 texture coordinate 因為你的來源是照片 而照片照出來的結果會經過 perspective transform 所以直接拿照片來貼會產生扭曲 一個可行的想法是 structure from motion 首先在這些照片中進行 feature detection & matching 藉由這些 feature 計算出他們所對應的 3D coordinate 然後設法把這些 3D coordinate 對應到雷射掃瞄出來的 3D model 上面 (註1) 這樣基本上就可以算出 3D model 上的某一點會對應到照片上的哪一點 然後把第一步 structure from motion 中算出來的 camera parameter 對照片做一個 inverse transform 應該就可以把 texture 做出來了 註1:我不確定這邊有沒有已知的演算法,強者板友請補充 另外這邊有一篇 Modeling and Rendering Architecture fromPhotographs: A hybrid geometry- and image-based approach http://www.cs.berkeley.edu/~malik/papers/debevecTM96.pdf 這篇 paper 則是假設你的 model 由一些基本的幾何形狀所組成 可以參考看看 - 不過不管你用這麼方法 因為這問題很大 所以都不是短時間內可以寫出來的程式 我估計大概數千行到一萬行左右吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.151.2
MasterChang:以前用過OpenGL寫過類似的東西,程式差不多逼近萬行, 06/25 10:06
MasterChang:還不包括GUI的部分,原PO要有心理準備長期抗戰。 06/25 10:07
QQ29:littile大 想不到你連圖學都有涉略....真的很佩服... 06/25 11:24
OOXXOO:恩恩~感謝~這就是我要的其中之一@@~ 06/25 18:23