GLTFMaterialsVolumeExtension constructor
GLTFMaterialsVolumeExtension(
- GLTFParser parser
Implementation
GLTFMaterialsVolumeExtension(this.parser) {
name = gltfExtensions["KHR_MATERIALS_VOLUME"]!;
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) async {
final parser = this.parser;
final materialDef = parser.json["materials"][materialIndex];
if (materialDef["extensions"] == null || materialDef["extensions"][name] == null) {
return null;
}
List<Future> pending = [];
final extension = materialDef["extensions"][name];
materialParams['thickness'] = extension['thicknessFactor'] ?? 0;
if (extension['thicknessTexture'] != null) {
pending.add(parser.assignTexture(
materialParams, 'thicknessMap', extension['thicknessTexture']));
}
materialParams['attenuationDistance'] = extension['attenuationDistance'] ?? 0;
final colorArray = extension['attenuationColor'] ?? [1, 1, 1];
materialParams['attenuationColor'] = Color(colorArray[0], colorArray[1], colorArray[2]);
return await Future.wait(pending);
};
}