之前章节,我们给出了一个包含有简单场景的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"
}
}
使用了材质信息后,三角形的渲染效果如下:
材质定义
可以看出,我们添加了一个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对象看起来更加真实。
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性
GLB下载网 - GLB/GLTF模型与格式资源免费下载,支持在线浏览与转换 » glTF/glb格式详解(示例:一个简单的材质 )
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载要提取码
- 分享过期和重复下载怎么办
- 模型和平台不兼容怎么办
