initMaterial method

dynamic initMaterial()

Implementation

initMaterial() async {
 // var material;
  var textureLoader = new THREE.TextureLoader();


  /*if (! !material) {
    return material;
  }*/

  // TODO
  // Canvas2D で noise 画像を作る
 // print("xxx"+VolumetricFire.texturePath);
  if (nzw==null) {
    nzw = await textureLoader.loadAsync(VolumetricFire.texturePath + 'nzw.png');
    nzw?.wrapS = THREE.RepeatWrapping;
    nzw?.wrapT = THREE.RepeatWrapping;
    nzw?.magFilter = THREE.LinearFilter;
    nzw?.minFilter = THREE.LinearFilter;
  }

  if (fireProfile==null) {
    fireProfile = await textureLoader.loadAsync(
        VolumetricFire.texturePath + 'firetex.png');
    fireProfile?.wrapS = THREE.ClampToEdgeWrapping;
    fireProfile?.wrapT = THREE.ClampToEdgeWrapping;
    fireProfile?.magFilter = THREE.LinearFilter;
    fireProfile?.minFilter = THREE.LinearFilter;
  }

  var uniforms = {
    'nzw': {
      'type': 't',
      'value': nzw
    },
    'fireProfile': {
      'type': 't',
      'value': fireProfile
    },
    'time': {
      'type': 'f',
      'value': 1.0
    },
    'flamingcolor': {
      'value': _color //THREE.Vector3(0.1,0.1,1.0)
    }
  };

 // THREE.Material dog;

 /* if (!kIsWeb&&Platform.isMacOS) {
 //   vs="#version 410\n"+prefix+vs;
    vs=prefix+vs;
    fs=prefix+fs;
    //print("is macos"+prefix);
  } else {
  //  print("is not macos");
  }
  THREE.RawShaderMaterial material = new THREE.RawShaderMaterial({
    'vertexShader': vs,
    'fragmentShader': fs,
    'uniforms': uniforms,
    'side': THREE.DoubleSide,
    'blending': THREE.AdditiveBlending,
    'transparent': true
  });*/
  THREE.ShaderMaterial material = new THREE.ShaderMaterial({
    'vertexShader': vs,
    'fragmentShader': fs,
    'uniforms': uniforms,
    'side': THREE.DoubleSide,
    'blending': THREE.AdditiveBlending,
    'transparent': true
  });

  //print("uuu"+ material.visible.toString());
  return material;
}