模型加載最後的一課,就是使用貼圖,不再使用純色顯示物體。紋理的信息也是和材料一樣存放在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的內容。