apply method

  1. @override
void apply(
  1. covariant RenderContext3D context
)
override

Implementation

@override
void apply(covariant RenderContext3D context) {
  vertexShader
    ..setMatrix4('VertexInfo.model', context.model)
    ..setMatrix4('VertexInfo.view', context.view)
    ..setMatrix4('VertexInfo.projection', context.projection);

  final jointTransforms = context.jointsInfo.jointTransforms;
  if (jointTransforms.length > _maxJoints) {
    throw Exception(
      'At most $_maxJoints joints per surface are supported;'
      ' found ${jointTransforms.length}',
    );
  }
  for (final (index, transform) in jointTransforms.indexed) {
    vertexShader.setMatrix4('JointMatrices.joints[$index]', transform);
  }

  fragmentShader
    ..setTexture('albedoTexture', albedoTexture)
    ..setColor('Material.albedoColor', albedoColor);
}