[問題] OpenGL objloader相關問題

看板C_and_CPP (C/C++)作者 (on9)時間10年前 (2015/12/31 00:43), 編輯推噓4(409)
留言13則, 4人參與, 最新討論串1/1
開發平台(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

12/31 00:48, , 1F
小弟不才 我猜你要的是texture
12/31 00:48, 1F

12/31 00:49, , 2F
對的!!!不過一直沒辦法呈現 現在很懊惱
12/31 00:49, 2F

12/31 02:07, , 3F
你的程式碼沒處理 texture 那一塊,沒紋理貼圖很正常
12/31 02:07, 3F

12/31 02:10, , 4F
或者看 glm 有沒有幫你處理讀圖檔跟 texture coord
12/31 02:10, 4F

12/31 17:25, , 5F
從mtl檔案讀出需要的圖片檔名
12/31 17:25, 5F

12/31 17:26, , 6F
然後用可以讀取圖片的library載入圖片到記憶體
12/31 17:26, 6F

12/31 17:26, , 7F
用glGenTexture產生貼圖id, bind之後用glTexImage2D
12/31 17:26, 7F

12/31 17:27, , 8F
把圖片資料從主記憶體搬到顯示卡記憶體
12/31 17:27, 8F

12/31 17:27, , 9F
畫出物品時bind貼圖並enable,頂點要給貼圖座標
12/31 17:27, 9F

12/31 17:28, , 10F
網路上直接找OpenGL貼圖的範例程式看一下就好
12/31 17:28, 10F

12/31 17:29, , 11F
我是不知道你mtl的貼圖給到多複雜
12/31 17:29, 11F

12/31 17:30, , 12F
如果有bump_map或是specular_map就可能要寫shader
12/31 17:30, 12F

12/31 17:31, , 13F
只有diffuse map的話,用傳統貼圖的GL_MODULATE就夠了
12/31 17:31, 13F
文章代碼(AID): #1MX0cSmN (C_and_CPP)
文章代碼(AID): #1MX0cSmN (C_and_CPP)