GLTFMaterialsSheenExtension constructor
GLTFMaterialsSheenExtension(
- GLTFParser parser
Implementation
GLTFMaterialsSheenExtension(this.parser) {
name = gltfExtensions["KHR_MATERIALS_SHEEN"]!;
getMaterialType = (materialIndex) {
final parser = this.parser;
final materialDef = parser.json["materials"][materialIndex];
if (materialDef["extensions"] == null ||
materialDef["extensions"][name] == null) return null;
return MeshPhysicalMaterial;
};
extendMaterialParams = (int materialIndex, Map<String, dynamic> materialParams) {
final parser = this.parser;
final materialDef = parser.json["materials"][materialIndex];
if (materialDef["extensions"] == null ||
materialDef["extensions"][name] == null) {
return null;
}
List<Future> pending = [];
materialParams['sheenColor'] = Color(0, 0, 0);
materialParams['sheenRoughness'] = 0;
materialParams['sheen'] = 1;
Map extension = materialDef["extensions"][name];
if (extension["sheenColorFactor"] != null) {
final colorFactor = List<double>.from(extension['sheenColorFactor'].map((e) => e.toDouble()));
materialParams['sheenColor'].setRGB( colorFactor[ 0 ], colorFactor[ 1 ], colorFactor[ 2 ]);
}
if (extension["sheenRoughnessFactor"] != null) {
materialParams['sheenRoughness'] = extension["sheenRoughnessFactor"];
}
if (extension["sheenColorTexture"] != null) {
pending.add(parser.assignTexture(materialParams, 'sheenColorMap', extension["sheenColorTexture"], SRGBColorSpace));
}
if (extension["sheenRoughnessTexture"] != null) {
pending.add(parser.assignTexture(materialParams, 'sheenRoughnessMap',extension["sheenRoughnessTexture"]));
}
return Future.wait(pending);
};
}