function genMaterial() { var material; // shader uniforms // corner is the vertex UV mapped to (0, 0) // width and height are fragment size // tex is texture var uniforms = { corner: { type: 'v2', value: new THREE.Vector2(_bounds.min.x, _bounds.min.y) }, width: { type: 'f', value: _bounds.width }, height: { type: 'f', value: _bounds.height }, tex: { type: 't', value: _texture } }; material = new THREE.ShaderMaterial({ uniforms: uniforms, vertexShader: $("#vertexshader").text(), fragmentShader: $("#fragmentshader").text(), side: THREE.DoubleSide }); material.transparent = true; // register the material under the name "heatmap" _viewer.impl.matman().addMaterial("heatmap", material, true); return material; }