refreshUniformsCommon method

void refreshUniformsCommon(
  1. Map<String, dynamic> uniforms,
  2. Material material
)

Implementation

void refreshUniformsCommon(Map<String, dynamic> uniforms, Material material) {
  uniforms["opacity"]["value"] = material.opacity;

  uniforms["diffuse"]["value"].setFrom(material.color);

  if (material.emissive != null) {
    uniforms["emissive"]["value"].setFrom(material.emissive)?.scale(material.emissiveIntensity);
  }

  if (material.map != null) {
    uniforms["map"]["value"] = material.map;
    refreshTransformUniform( material.map, uniforms['mapTransform'] );
  }

  if (material.alphaMap != null) {
    uniforms["alphaMap"]["value"] = material.alphaMap;
    refreshTransformUniform( material.alphaMap!, uniforms['alphaMapTransform'] );
  }

  if (material.bumpMap != null) {
    uniforms["bumpMap"]["value"] = material.bumpMap;
    refreshTransformUniform( material.bumpMap!, uniforms['bumpMapTransform'] );
    uniforms["bumpScale"]["value"] = material.bumpScale;
    if (material.side == BackSide) uniforms["bumpScale"]["value"] *= -1;
  }

  if (material.displacementMap != null) {
    uniforms["displacementMap"]["value"] = material.displacementMap;
    refreshTransformUniform( material.displacementMap!, uniforms['displacementMapTransform'] );
    uniforms["displacementScale"]["value"] = material.displacementScale;
    uniforms["displacementBias"]["value"] = material.displacementBias;
  }

  if (material.emissiveMap != null) {
    uniforms["emissiveMap"]["value"] = material.emissiveMap;
    refreshTransformUniform( material.emissiveMap!, uniforms['emissiveMapTransform'] );
  }

  if (material.normalMap != null) {
    uniforms["normalMap"]["value"] = material.normalMap;
    refreshTransformUniform( material.normalMap!, uniforms['normalMapTransform'] );
    uniforms["normalScale"]["value"].setFrom(material.normalScale);
    if (material.side == BackSide) uniforms["normalScale"]["value"].negate();
  }

  if (material.specularMap != null) {
    uniforms["specularMap"]["value"] = material.specularMap;
    refreshTransformUniform( material.specularMap!, uniforms['specularMapTransform'] );
  }

  if (material.alphaTest > 0) {
    uniforms["alphaTest"]["value"] = material.alphaTest;
  }

		final materialProperties = properties.get( material );

		final envMap = materialProperties['envMap'];
		final envMapRotation = materialProperties['envMapRotation'] ?? Euler();

  if (envMap != null) {
    uniforms["envMap"]["value"] = envMap;
			_e1.copy( envMapRotation );

			// accommodate left-handed frame
			_e1.x *= - 1; _e1.y *= - 1; _e1.z *= - 1;

			if ( envMap is CubeTexture && envMap is! WebGL3DRenderTarget) {
				// environment maps which are not cube render targets or PMREMs follow a different convention
				_e1.y *= - 1;
				_e1.z *= - 1;
			}

    uniforms['envMapRotation']?['value'].setFromMatrix4( _m1.makeRotationFromEuler( _e1 ) );

    uniforms["flipEnvMap"]?["value"] = (envMap is CubeTexture && envMap is! WebGL3DRenderTarget) ? -1 : 1;
    uniforms["reflectivity"]["value"] = material.reflectivity;
    uniforms["ior"]["value"] = material.ior;
    uniforms["refractionRatio"]["value"] = material.refractionRatio;
  }

  if (material.lightMap != null) {
    uniforms["lightMap"]["value"] = material.lightMap;
    uniforms["lightMapIntensity"]["value"] = material.lightMapIntensity!;
    refreshTransformUniform( material.lightMap!, uniforms['lightMapTransform'] );
  }

  if (material.aoMap != null) {
    uniforms["aoMap"]["value"] = material.aoMap;
    uniforms["aoMapIntensity"]["value"] = material.aoMapIntensity;
    refreshTransformUniform( material.aoMap!, uniforms['aoMapTransform'] );
  }
}