|
@@ -11588,6 +11588,12 @@ THREE.Loader.prototype = {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ if ( m.mapAlpha && texturePath ) {
|
|
|
+
|
|
|
+ create_texture( mpars, 'alphaMap', m.mapAlpha, m.mapAlphaRepeat, m.mapAlphaOffset, m.mapAlphaWrap, m.mapAlphaAnisotropy );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
//
|
|
|
|
|
|
if ( m.mapBumpScale ) {
|
|
@@ -13284,6 +13290,8 @@ THREE.LineDashedMaterial.prototype.clone = function () {
|
|
|
*
|
|
|
* specularMap: new THREE.Texture( <Image> ),
|
|
|
*
|
|
|
+ * alphaMap: new THREE.Texture( <Image> ),
|
|
|
+ *
|
|
|
* envMap: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ),
|
|
|
* combine: THREE.Multiply,
|
|
|
* reflectivity: <float>,
|
|
@@ -13318,6 +13326,8 @@ THREE.MeshBasicMaterial = function ( parameters ) {
|
|
|
|
|
|
this.specularMap = null;
|
|
|
|
|
|
+ this.alphaMap = null;
|
|
|
+
|
|
|
this.envMap = null;
|
|
|
this.combine = THREE.MultiplyOperation;
|
|
|
this.reflectivity = 1;
|
|
@@ -13357,6 +13367,8 @@ THREE.MeshBasicMaterial.prototype.clone = function () {
|
|
|
|
|
|
material.specularMap = this.specularMap;
|
|
|
|
|
|
+ material.alphaMap = this.alphaMap;
|
|
|
+
|
|
|
material.envMap = this.envMap;
|
|
|
material.combine = this.combine;
|
|
|
material.reflectivity = this.reflectivity;
|
|
@@ -13398,6 +13410,8 @@ THREE.MeshBasicMaterial.prototype.clone = function () {
|
|
|
*
|
|
|
* specularMap: new THREE.Texture( <Image> ),
|
|
|
*
|
|
|
+ * alphaMap: new THREE.Texture( <Image> ),
|
|
|
+ *
|
|
|
* envMap: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ),
|
|
|
* combine: THREE.Multiply,
|
|
|
* reflectivity: <float>,
|
|
@@ -13438,6 +13452,8 @@ THREE.MeshLambertMaterial = function ( parameters ) {
|
|
|
|
|
|
this.specularMap = null;
|
|
|
|
|
|
+ this.alphaMap = null;
|
|
|
+
|
|
|
this.envMap = null;
|
|
|
this.combine = THREE.MultiplyOperation;
|
|
|
this.reflectivity = 1;
|
|
@@ -13483,6 +13499,8 @@ THREE.MeshLambertMaterial.prototype.clone = function () {
|
|
|
|
|
|
material.specularMap = this.specularMap;
|
|
|
|
|
|
+ material.alphaMap = this.alphaMap;
|
|
|
+
|
|
|
material.envMap = this.envMap;
|
|
|
material.combine = this.combine;
|
|
|
material.reflectivity = this.reflectivity;
|
|
@@ -13533,6 +13551,8 @@ THREE.MeshLambertMaterial.prototype.clone = function () {
|
|
|
*
|
|
|
* specularMap: new THREE.Texture( <Image> ),
|
|
|
*
|
|
|
+ * alphaMap: new THREE.Texture( <Image> ),
|
|
|
+ *
|
|
|
* envMap: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ),
|
|
|
* combine: THREE.Multiply,
|
|
|
* reflectivity: <float>,
|
|
@@ -13583,6 +13603,8 @@ THREE.MeshPhongMaterial = function ( parameters ) {
|
|
|
|
|
|
this.specularMap = null;
|
|
|
|
|
|
+ this.alphaMap = null;
|
|
|
+
|
|
|
this.envMap = null;
|
|
|
this.combine = THREE.MultiplyOperation;
|
|
|
this.reflectivity = 1;
|
|
@@ -13638,6 +13660,8 @@ THREE.MeshPhongMaterial.prototype.clone = function () {
|
|
|
|
|
|
material.specularMap = this.specularMap;
|
|
|
|
|
|
+ material.alphaMap = this.alphaMap;
|
|
|
+
|
|
|
material.envMap = this.envMap;
|
|
|
material.combine = this.combine;
|
|
|
material.reflectivity = this.reflectivity;
|
|
@@ -13850,12 +13874,19 @@ THREE.PointCloudMaterial.prototype.clone = function () {
|
|
|
|
|
|
// backwards compatibility
|
|
|
|
|
|
+THREE.ParticleBasicMaterial = function ( parameters ) {
|
|
|
+
|
|
|
+ console.warn( 'THREE.ParticleBasicMaterial has been renamed to THREE.PointCloudMaterial.' );
|
|
|
+ return new THREE.PointCloudMaterial( parameters );
|
|
|
+
|
|
|
+};
|
|
|
+
|
|
|
THREE.ParticleSystemMaterial = function ( parameters ) {
|
|
|
|
|
|
console.warn( 'THREE.ParticleSystemMaterial has been renamed to THREE.PointCloudMaterial.' );
|
|
|
return new THREE.PointCloudMaterial( parameters );
|
|
|
|
|
|
-}
|
|
|
+};
|
|
|
|
|
|
// File:src/materials/ShaderMaterial.js
|
|
|
|
|
@@ -16952,7 +16983,7 @@ THREE.ShaderChunk[ 'default_vertex'] = "vec4 mvPosition;\n\n#ifdef USE_SKINNING\
|
|
|
|
|
|
// File:src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl
|
|
|
|
|
|
-THREE.ShaderChunk[ 'map_pars_fragment'] = "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP )\n\n varying vec2 vUv;\n\n#endif\n\n#ifdef USE_MAP\n\n uniform sampler2D map;\n\n#endif";
|
|
|
+THREE.ShaderChunk[ 'map_pars_fragment'] = "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n varying vec2 vUv;\n\n#endif\n\n#ifdef USE_MAP\n\n uniform sampler2D map;\n\n#endif";
|
|
|
|
|
|
// File:src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl
|
|
|
|
|
@@ -17048,7 +17079,7 @@ THREE.ShaderChunk[ 'lights_lambert_pars_vertex'] = "uniform vec3 ambient;\nunifo
|
|
|
|
|
|
// File:src/renderers/shaders/ShaderChunk/map_pars_vertex.glsl
|
|
|
|
|
|
-THREE.ShaderChunk[ 'map_pars_vertex'] = "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP )\n\n varying vec2 vUv;\n uniform vec4 offsetRepeat;\n\n#endif\n";
|
|
|
+THREE.ShaderChunk[ 'map_pars_vertex'] = "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n varying vec2 vUv;\n uniform vec4 offsetRepeat;\n\n#endif\n";
|
|
|
|
|
|
// File:src/renderers/shaders/ShaderChunk/envmap_fragment.glsl
|
|
|
|
|
@@ -17092,7 +17123,7 @@ THREE.ShaderChunk[ 'skinbase_vertex'] = "#ifdef USE_SKINNING\n\n mat4 boneMatX =
|
|
|
|
|
|
// File:src/renderers/shaders/ShaderChunk/map_vertex.glsl
|
|
|
|
|
|
-THREE.ShaderChunk[ 'map_vertex'] = "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP )\n\n vUv = uv * offsetRepeat.zw + offsetRepeat.xy;\n\n#endif";
|
|
|
+THREE.ShaderChunk[ 'map_vertex'] = "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n vUv = uv * offsetRepeat.zw + offsetRepeat.xy;\n\n#endif";
|
|
|
|
|
|
// File:src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl
|
|
|
|
|
@@ -17134,6 +17165,14 @@ THREE.ShaderChunk[ 'skinning_pars_vertex'] = "#ifdef USE_SKINNING\n\n #ifdef BON
|
|
|
|
|
|
THREE.ShaderChunk[ 'logdepthbuf_pars_fragment'] = "#ifdef USE_LOGDEPTHBUF\n\n uniform float logDepthBufFC;\n\n #ifdef USE_LOGDEPTHBUF_EXT\n\n #extension GL_EXT_frag_depth : enable\n varying float vFragDepth;\n\n #endif\n\n#endif";
|
|
|
|
|
|
+// File:src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl
|
|
|
+
|
|
|
+THREE.ShaderChunk[ 'alphamap_fragment'] = "#ifdef USE_ALPHAMAP\n\n gl_FragColor.a *= texture2D( alphaMap, vUv ).g;\n\n#endif\n";
|
|
|
+
|
|
|
+// File:src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl
|
|
|
+
|
|
|
+THREE.ShaderChunk[ 'alphamap_pars_fragment'] = "#ifdef USE_ALPHAMAP\n\n uniform sampler2D alphaMap;\n\n#endif\n";
|
|
|
+
|
|
|
// File:src/renderers/shaders/UniformsUtils.js
|
|
|
|
|
|
/**
|
|
@@ -17221,6 +17260,7 @@ THREE.UniformsLib = {
|
|
|
|
|
|
"lightMap" : { type: "t", value: null },
|
|
|
"specularMap" : { type: "t", value: null },
|
|
|
+ "alphaMap" : { type: "t", value: null },
|
|
|
|
|
|
"envMap" : { type: "t", value: null },
|
|
|
"flipEnvMap" : { type: "f", value: - 1 },
|
|
@@ -17377,6 +17417,7 @@ THREE.ShaderLib = {
|
|
|
|
|
|
THREE.ShaderChunk[ "color_pars_fragment" ],
|
|
|
THREE.ShaderChunk[ "map_pars_fragment" ],
|
|
|
+ THREE.ShaderChunk[ "alphamap_pars_fragment" ],
|
|
|
THREE.ShaderChunk[ "lightmap_pars_fragment" ],
|
|
|
THREE.ShaderChunk[ "envmap_pars_fragment" ],
|
|
|
THREE.ShaderChunk[ "fog_pars_fragment" ],
|
|
@@ -17390,6 +17431,7 @@ THREE.ShaderLib = {
|
|
|
|
|
|
THREE.ShaderChunk[ "logdepthbuf_fragment" ],
|
|
|
THREE.ShaderChunk[ "map_fragment" ],
|
|
|
+ THREE.ShaderChunk[ "alphamap_fragment" ],
|
|
|
THREE.ShaderChunk[ "alphatest_fragment" ],
|
|
|
THREE.ShaderChunk[ "specularmap_fragment" ],
|
|
|
THREE.ShaderChunk[ "lightmap_fragment" ],
|
|
@@ -17485,6 +17527,7 @@ THREE.ShaderLib = {
|
|
|
|
|
|
THREE.ShaderChunk[ "color_pars_fragment" ],
|
|
|
THREE.ShaderChunk[ "map_pars_fragment" ],
|
|
|
+ THREE.ShaderChunk[ "alphamap_pars_fragment" ],
|
|
|
THREE.ShaderChunk[ "lightmap_pars_fragment" ],
|
|
|
THREE.ShaderChunk[ "envmap_pars_fragment" ],
|
|
|
THREE.ShaderChunk[ "fog_pars_fragment" ],
|
|
@@ -17498,6 +17541,7 @@ THREE.ShaderLib = {
|
|
|
|
|
|
THREE.ShaderChunk[ "logdepthbuf_fragment" ],
|
|
|
THREE.ShaderChunk[ "map_fragment" ],
|
|
|
+ THREE.ShaderChunk[ "alphamap_fragment" ],
|
|
|
THREE.ShaderChunk[ "alphatest_fragment" ],
|
|
|
THREE.ShaderChunk[ "specularmap_fragment" ],
|
|
|
|
|
@@ -17611,6 +17655,7 @@ THREE.ShaderLib = {
|
|
|
|
|
|
THREE.ShaderChunk[ "color_pars_fragment" ],
|
|
|
THREE.ShaderChunk[ "map_pars_fragment" ],
|
|
|
+ THREE.ShaderChunk[ "alphamap_pars_fragment" ],
|
|
|
THREE.ShaderChunk[ "lightmap_pars_fragment" ],
|
|
|
THREE.ShaderChunk[ "envmap_pars_fragment" ],
|
|
|
THREE.ShaderChunk[ "fog_pars_fragment" ],
|
|
@@ -17627,6 +17672,7 @@ THREE.ShaderLib = {
|
|
|
|
|
|
THREE.ShaderChunk[ "logdepthbuf_fragment" ],
|
|
|
THREE.ShaderChunk[ "map_fragment" ],
|
|
|
+ THREE.ShaderChunk[ "alphamap_fragment" ],
|
|
|
THREE.ShaderChunk[ "alphatest_fragment" ],
|
|
|
THREE.ShaderChunk[ "specularmap_fragment" ],
|
|
|
|
|
@@ -19683,6 +19729,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
material.bumpMap ||
|
|
|
material.normalMap ||
|
|
|
material.specularMap ||
|
|
|
+ material.alphaMap ||
|
|
|
material instanceof THREE.ShaderMaterial ) {
|
|
|
|
|
|
return true;
|
|
@@ -22727,6 +22774,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
bumpMap: !! material.bumpMap,
|
|
|
normalMap: !! material.normalMap,
|
|
|
specularMap: !! material.specularMap,
|
|
|
+ alphaMap: !! material.alphaMap,
|
|
|
|
|
|
vertexColors: material.vertexColors,
|
|
|
|
|
@@ -23127,6 +23175,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
uniforms.map.value = material.map;
|
|
|
uniforms.lightMap.value = material.lightMap;
|
|
|
uniforms.specularMap.value = material.specularMap;
|
|
|
+ uniforms.alphaMap.value = material.alphaMap;
|
|
|
|
|
|
if ( material.bumpMap ) {
|
|
|
|
|
@@ -23147,6 +23196,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
// 2. specular map
|
|
|
// 3. normal map
|
|
|
// 4. bump map
|
|
|
+ // 5. alpha map
|
|
|
|
|
|
var uvScaleMap;
|
|
|
|
|
@@ -23166,6 +23216,10 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
uvScaleMap = material.bumpMap;
|
|
|
|
|
|
+ } else if ( material.alphaMap ) {
|
|
|
+
|
|
|
+ uvScaleMap = material.alphaMap;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
if ( uvScaleMap !== undefined ) {
|
|
@@ -25059,6 +25113,7 @@ THREE.WebGLProgram = ( function () {
|
|
|
parameters.bumpMap ? "#define USE_BUMPMAP" : "",
|
|
|
parameters.normalMap ? "#define USE_NORMALMAP" : "",
|
|
|
parameters.specularMap ? "#define USE_SPECULARMAP" : "",
|
|
|
+ parameters.alphaMap ? "#define USE_ALPHAMAP" : "",
|
|
|
parameters.vertexColors ? "#define USE_COLOR" : "",
|
|
|
|
|
|
parameters.skinning ? "#define USE_SKINNING" : "",
|
|
@@ -25165,6 +25220,7 @@ THREE.WebGLProgram = ( function () {
|
|
|
parameters.bumpMap ? "#define USE_BUMPMAP" : "",
|
|
|
parameters.normalMap ? "#define USE_NORMALMAP" : "",
|
|
|
parameters.specularMap ? "#define USE_SPECULARMAP" : "",
|
|
|
+ parameters.alphaMap ? "#define USE_ALPHAMAP" : "",
|
|
|
parameters.vertexColors ? "#define USE_COLOR" : "",
|
|
|
|
|
|
parameters.metal ? "#define METAL" : "",
|