• 正文概述
  • 之前章节,我们给出了一个包含有简单场景的glTF资源,但它没有包含对场景中3D对象外观描述的材质信息。当没有材质信息时,会假定使用一个默认的材质设置,如之前我们给出的那个最小巧的glTF格式文件的渲染结果,3D对象会使用被以白色或浅灰色进行渲染。

    本章节我们从一个带有材质信息的最简单的glTF格式文件开始,解释材质信息对渲染效果的影响。

    下面就是这个带有材质信息的glTF格式文件的内容:

    {
      "scenes" : [
        {
          "nodes" : [ 0 ]
        }
      ],
    
      "nodes" : [
        {
          "mesh" : 0
        }
      ],
    
      "meshes" : [
        {
          "primitives" : [ {
            "attributes" : {
              "POSITION" : 1
            },
            "indices" : 0,
            "material" : 0
          } ]
        }
      ],
    
      "buffers" : [
        {
          "uri" : "data:application/octet-stream;base64,为了排版而省略,可以使用英文原文中的代码",
          "byteLength" : 44
        }
      ],
      "bufferViews" : [
        {
          "buffer" : 0,
          "byteOffset" : 0,
          "byteLength" : 6,
          "target" : 34963
        },
        {
          "buffer" : 0,
          "byteOffset" : 8,
          "byteLength" : 36,
          "target" : 34962
        }
      ],
      "accessors" : [
        {
          "bufferView" : 0,
          "byteOffset" : 0,
          "componentType" : 5123,
          "count" : 3,
          "type" : "SCALAR",
          "max" : [ 2 ],
          "min" : [ 0 ]
        },
        {
          "bufferView" : 1,
          "byteOffset" : 0,
          "componentType" : 5126,
          "count" : 3,
          "type" : "VEC3",
          "max" : [ 1.0, 1.0, 0.0 ],
          "min" : [ 0.0, 0.0, 0.0 ]
        }
      ],
    
      "materials" : [
        {
          "pbrMetallicRoughness": {
            "baseColorFactor": [ 1.000, 0.766, 0.336, 1.0 ],
            "metallicFactor": 0.5,
            "roughnessFactor": 0.1
          }
        }
      ],
      "asset" : {
        "version" : "2.0"
      }
    }

    使用了材质信息后,三角形的渲染效果如下:

    glTF/glb格式详解(示例:一个简单的材质 )
    图11a:使用材质信息渲染的三角形

    材质定义

    可以看出,我们添加了一个materials数组对象到glTF的JSON文件中。它包含了一个material对象,用于定义材质信息:

      "materials" : [
        {
          "pbrMetallicRoughness": {
            "baseColorFactor": [ 1.000, 0.766, 0.336, 1.0 ],
            "metallicFactor": 0.5,
            "roughnessFactor": 0.1
          }
        }
      ],

    这里的material对象只包含了一个pbrMetallicRoughness对象,这一对象指定了基于metallic-roughness模型的材质属性(没有显式指定的材质属性会使用属性的默认值)。baseColorFactor属性包含了红,绿,蓝和alpha成分,构成了材质了基本颜色(这里设置的是亮橘色)。metallicFactor属性用于指定材质的反射情况与金属的相似度,这里我们设置相似度为0.5。roughnessFactor属性用于指定材质粗糙度,这里我们设置粗糙度为0.1。

    使用材质信息

    通过mesh对象的primitive属性,通过索引就可以引用使用材质信息:

      "meshes" : [
        {
          "primitives" : [ {
            "attributes" : {
              "POSITION" : 1
            },
            "indices" : 0,
            "material" : 0
          } ]
        }

    下一章节,我们会介绍如何使用纹理,使用纹理可以定义更加复杂的材质信息,让3D对象看起来更加真实。

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,请不要用于商业用途!
    3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
    8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
    声明如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性

    GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » glTF/glb格式详解(示例:一个简单的材质 )

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载要提取码
    百度网盘提取码都是gltf。
    分享过期和重复下载怎么办
    分享过期请使用备份下载,重复下载是不另扣费的,请放心下载。
    模型和平台不兼容怎么办
    可以用网站在线编辑功能,修改模型属性,大小,方向,坐标,中心,透明等问题,然后重新导出既可https://glbxz.com/38636.html
    开通VIP 享更多特权,建议使用 QQ 登录