学习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的内容。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值