PreprocessedMaterial constructor
PreprocessedMaterial({})
Implementation
PreprocessedMaterial({
required gpu.Shader fragmentShader,
required Map<String, Object?> metadata,
Map<String, gpu.Shader>? vertexShaders,
gpu.Shader? radianceCubeFragmentShader,
}) : _cubeFragmentShader = radianceCubeFragmentShader,
_shadingModel = _parseShadingModel(metadata['shading_model']),
_blending = _parseBlending(metadata['blending']),
_culling = _parseCulling(metadata['culling']),
_depthWrite = metadata['depth_write'] == true,
_effectsDepth = metadata['effects_depth'] == true,
_depthCompare = _parseDepthCompare(metadata['depth_test']),
_sceneInputs = _parseSceneInputs(metadata['engine_inputs']),
_environmentLighting = metadata['environment_lighting'] != false,
_instanceAttributes = InstanceAttributeSchema.fromMetadata(metadata),
_vertexAttributes = VertexAttributeSchema.fromMetadata(metadata),
_usesPlanarReflection = parsePlanarReflectionInput(
metadata['engine_inputs'],
),
_sceneColorReach = _parseSceneColorReach(metadata['scene_color_reach']),
_vertexShaders = vertexShaders,
parameters = MaterialParameters.fromMetadata(fragmentShader, metadata) {
setFragmentShader(fragmentShader);
_declaredDepthLayer = _parseDepthLayer(metadata['depth_layer']);
depthLayer = _declaredDepthLayer;
}