作者on9bb (on9)
看板C_and_CPP
標題[問題] OpenGL objloader相關問題
時間Thu Dec 31 00:43:05 2015
開發平台(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