看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): Xcode 額外使用到的函數庫(Library Used): OpenGL 問題(Question): 小弟本身對程式非常不熟悉,因為一個專題需要處理一點3D model而接觸了OpenGL 一般網路上可以找到的3D model都有obj檔和mtl檔(可藉由mtl檔將圖片包覆在model上作為紋理) 目前我做了可以讀出obj的程式 不過一直沒辦法顯示出他的紋理 爬了文也找了很多網路資料 似乎很多人都有類似的問題 但一直沒有一個demo可以參考 想請問各位高手們能不能為小弟指點迷津 餵入的資料(Input): 一顆石頭的3D model(含obj file及mtl file) 預期的正確結果(Expected Output): 這是我用meshlab開出來的3D圖,是一個有紋理的石頭~~ http://imgur.com/d5guSrq 錯誤結果(Wrong Output): 用我寫的程式呈現出來只是一坨黑黑的東西(形狀對了但沒有紋理) http://imgur.com/Cl7kjBl 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/HM8edgNx 附註: 我本身對程式真的很不熟悉,希望解釋時可以詳盡一點謝謝 ^____^ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 137.189.240.108 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1451493788.A.C17.html
longlongint: 小弟不才 我猜你要的是texture 12/31 00:48
on9bb: 對的!!!不過一直沒辦法呈現 現在很懊惱 12/31 00:49
Bencrie: 你的程式碼沒處理 texture 那一塊,沒紋理貼圖很正常 12/31 02:07
Bencrie: 或者看 glm 有沒有幫你處理讀圖檔跟 texture coord 12/31 02:10
iamstudent: 從mtl檔案讀出需要的圖片檔名 12/31 17:25
iamstudent: 然後用可以讀取圖片的library載入圖片到記憶體 12/31 17:26
iamstudent: 用glGenTexture產生貼圖id, bind之後用glTexImage2D 12/31 17:26
iamstudent: 把圖片資料從主記憶體搬到顯示卡記憶體 12/31 17:27
iamstudent: 畫出物品時bind貼圖並enable,頂點要給貼圖座標 12/31 17:27
iamstudent: 網路上直接找OpenGL貼圖的範例程式看一下就好 12/31 17:28
iamstudent: 我是不知道你mtl的貼圖給到多複雜 12/31 17:29
iamstudent: 如果有bump_map或是specular_map就可能要寫shader 12/31 17:30
iamstudent: 只有diffuse map的話,用傳統貼圖的GL_MODULATE就夠了 12/31 17:31