perlinGradientDef top-level property
Implementation
final perlinGradientDef = ShaderDefinition(
hasChildren: false,
assetPath: 'packages/material_palette/shaders/perlin_gradient.frag',
layout: UniformLayout([
...ParamGroups.linearGradientFields,
...ParamGroups.noiseFields,
const UniformField('noiseScale'),
const UniformField('noiseContrast'),
...ParamGroups.gradientColorsFields,
...ParamGroups.postProcessingFields,
...ParamGroups.lightingFields,
]),
defaults: ShaderParams(
values: {
'gradientAngle': 110.03, 'gradientScale': 0.85, 'gradientOffset': 0.01,
'noiseIntensity': 0.46, 'ditherStrength': 0.0, 'ditherScale': 1.0,
'animSpeed': 0.91,
'noiseScale': 15.28, 'noiseContrast': 3.00,
'colorCount': 2.0, 'softness': 0.74,
'exposure': 1.0, 'contrast': 1.00,
'bumpStrength': 0.0,
'lightDirX': 0.60, 'lightDirY': 0.40, 'lightDirZ': 1.0,
'lightIntensity': 1.10, 'ambient': 0.35, 'specular': 0.30,
'shininess': 24.0, 'metallic': 0.0, 'roughness': 0.50,
'edgeFade': 0.0, 'edgeFadeMode': 0.0,
},
colors: {
...ParamGroups.gradientColorDefaults([
const Color.fromRGBO(37, 146, 244, 1),
const Color.fromRGBO(242, 252, 252, 1),
const Color.fromRGBO(20, 24, 133, 1),
]),
},
),
uiDefaults: ShaderUIDefaults({
...ParamGroups.linearGradientRanges,
...ParamGroups.noiseRanges,
'noiseScale': const SliderRange('Noise Scale', min: 1.0, max: 60.0),
'noiseContrast': const SliderRange('Noise Contrast', min: 0.5, max: 3.0),
...ParamGroups.edgeFadeRanges,
...ParamGroups.gradientColorsRanges,
...ParamGroups.postProcessingRanges,
...ParamGroups.lightingRanges,
}),
paramDescriptions: {
...ParamGroups.linearGradientDescriptions,
...ParamGroups.noiseDescriptions,
'noiseScale': 'Frequency scale of the Perlin noise',
'noiseContrast': 'Contrast sharpening of the noise pattern',
...ParamGroups.gradientColorsDescriptions,
...ParamGroups.postProcessingDescriptions,
...ParamGroups.lightingDescriptions,
},
);