學習OpenGL ES for Android(十七)— 模型紋理

模型加載最後的一課,就是使用貼圖,不再使用純色顯示物體。紋理的信息也是和材料一樣存放在mtl文件中,格式也是類似的,只是一些信息以map開頭的,我們先下載https://free3d.com/3d-model/crocus-flower-v1--75899.html這個模型的文件,找到mtl文件,同樣根據https://en.m.wikipedia.org/wiki/Wavefront_.obj_file文檔來分析文件內容,

# 與obj文件同理,#開頭是註釋可以忽略
newmtl flower 定義一個名爲flower的材料
    ……和材料相同的內容不再重複

    map_Ka lemur.tga           # 環境光照貼圖 
    map_Kd lemur.tga           # 漫反射顏色
    map_Ks lemur.tga           # 鏡面光顏色
    map_Ns lemur_spec.tga      # 反光度貼圖
    map_d lemur_alpha.tga      # 透明貼圖
    map_bump lemur_bump.tga    # 法線貼圖,在後面會學到

值得注意的是,如果沒有貼圖時我們可以使用純黑色的一個圖片代替。我們可以使用光照貼圖那一章的代碼來顯示,首先是我們下載的這個鮮花的顯示,我們需要傳入讀取到的貼圖信息,然後位移和旋轉一定的角度,可以得到如下的顯示效果

隨後我們再根據文檔https://learnopengl-cn.github.io/03%20Model%20Loading/03%20Model/中提到的孤島危機(Crysis)中的原版納米裝(下載地址https://learnopengl-cn.github.io/data/nanosuit.rar),下載之後加載它,我們調整光源位置,觀察點位置,位移和旋轉之後可以看到如下的效果

因爲這個模型有法線貼圖,而我們還沒有使用,所以效果上和教程上的有些許區別,等我們學習之後再修改代碼顯示。此章源碼https://github.com/jklwan/OpenGLProject/blob/master/sample/src/main/java/com/chends/opengl/renderer/model/LoadModelTextureRenderer.java

到此關於模型加載也就學習完了,後面將要開始學習高級OpenGL的內容。

發佈了52 篇原創文章 · 獲贊 17 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章