code: function (data) {
      this.material = new THREE.MeshStandardMaterial(getMaterialData(data));
      utils.material.updateMap(this, data);
      if (data.normalMap) { utils.material.updateDistortionMap('normal', this, data); }
      if (data.displacementMap) { utils.material.updateDistortionMap('displacement', this, data); }
      if (data.ambientOcclusionMap) { utils.material.updateDistortionMap('ambientOcclusion', this, data); }
      if (data.metalnessMap) { utils.material.updateDistortionMap('metalness', this, data); }
      if (data.roughnessMap) { utils.material.updateDistortionMap('roughness', this, data); }
      this.updateEnvMap(data);
  	this.material.onBeforeCompile = function ( shader ) {
  		shader.uniforms.tileData = State.tileData;
  		shader.uniforms.tileTexture = State.tileTexture;
  		shader.uniforms.lightTexture = State.lightTexture;
  		shader.defines[ 'TILED_FORWARD' ] = 1;  
  	}
    }
docs: Initializes the shader.
  Adds a reference from the scene to this entity as the camera.