setupMaterial method

void setupMaterial(
  1. Material material
)

Implementation

void setupMaterial(Material material) {

	material.defines = material.defines ?? {};
	material.defines!['USE_CSM'] = 1;
	material.defines!['CSM_CASCADES'] = data.cascades;

	if (fade ) {
		material.defines!['CSM_FADE'] = '';
	}

	final List<Vector2> breaksVec2 = [];
	final scope = data;
	final shaders = this.shaders;

	material.onBeforeCompile = ( shader,target ) {
      shader as WebGLParameters;
		final far = math.min( scope.camera.far, scope.maxFar );
		getExtendedBreaks( breaksVec2 );

		shader.uniforms!['CSM_cascades'] = { ['value']: breaksVec2 };
		shader.uniforms!['cameraNear'] = { ['value']: scope.camera.near };
		shader.uniforms!['shadowFar'] = { ['value']: far };

		shaders[material] = shader;//.set material, shader );
	};

	shaders[material] = null;//.set( material, null );
}