[问题] OpenGL objloader相关问题

楼主: on9bb (on9)   2015-12-31 00:43:05
开发平台(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
附注:
我本身对程式真的很不熟悉,希望解释时可以详尽一点谢谢 ^____^
作者: longlongint (华哥尔)   2015-12-31 00:48:00
小弟不才 我猜你要的是texture
楼主: on9bb (on9)   2015-12-31 00:49:00
对的!!!不过一直没办法呈现 现在很懊恼
作者: Bencrie   2015-12-31 02:07:00
你的程式码没处理 texture 那一块,没纹理贴图很正常或者看 glm 有没有帮你处理读图档跟 texture coord
作者: iamstudent (stu)   2015-12-31 17:25:00
从mtl档案读出需要的图片档名然后用可以读取图片的library加载图片到内存用glGenTexture产生贴图id, bind之后用glTexImage2D把图片资料从主内存搬到显示卡内存画出物品时bind贴图并enable,顶点要给贴图座标网络上直接找OpenGL贴图的范例程式看一下就好我是不知道你mtl的贴图给到多复杂如果有bump_map或是specular_map就可能要写shader只有diffuse map的话,用传统贴图的GL_MODULATE就够了

Links booklink

Contact Us: admin [ a t ] ucptt.com