fragmentShaderForLighting method

  1. @override
Shader fragmentShaderForLighting(
  1. Lighting lighting
)

Selects this material's fragment shader for the frame lighting state.

Implementation

@override
gpu.Shader fragmentShaderForLighting(Lighting lighting) {
  final shadow = lighting.shadowMap != null;
  // The layout variant wins over the shadow one: a shadow variant in the
  // wrong layout would be handed a texture its sampler cannot read, while
  // dropping the shadow variant only loses the shadow term.
  if (usesRadianceCubeVariant(lighting)) {
    return shadow
        ? (_cubeShadowFragmentShader ?? _cubeFragmentShader!)
        : _cubeFragmentShader!;
  }
  return shadow ? (_shadowFragmentShader ?? fragmentShader) : fragmentShader;
}