Appearance
格式定义
一个材质文件的基本格式如下,它是一种不严格的json形式
json
material {
// material properties
}
vertex {
// vertex shader, optional
}
fragment {
// fragment shader
}
一个最小的材质定义必须包含material部分,而vertex和fragment是非必须的。
下面的代码清单显示了一个有效材料定义的示例。这个定义使用lit材质模型(参见lit模型部分),使用默认的不透明混合模式,需要在渲染网格中呈现一组UV坐标,并定义3个用户参数。本文档的以下部分详细描述了材料和碎片块。
material {
name : "Textured material",
parameters : [
{
type : sampler2d,
name : texture
},
{
type : float,
name : metallic
},
{
type : float,
name : roughness
}
],
requires : [
uv0
],
shadingModel : lit,
blending : opaque
}
fragment {
void material(inout MaterialInputs material) {
prepareMaterial(material);
material.baseColor = texture(materialParams_texture, getUV0());
material.metallic = materialParams.metallic;
material.roughness = materialParams.roughness;
}
}