|
@@ -11,12 +11,12 @@ THREE.WebGLProgram = ( function () {
|
|
|
value = defines[ d ];
|
|
|
if ( value === false ) continue;
|
|
|
|
|
|
- chunk = "#define " + d + " " + value;
|
|
|
+ chunk = '#define ' + d + ' ' + value;
|
|
|
chunks.push( chunk );
|
|
|
|
|
|
}
|
|
|
|
|
|
- return chunks.join( "\n" );
|
|
|
+ return chunks.join( '\n' );
|
|
|
|
|
|
};
|
|
|
|
|
@@ -72,21 +72,21 @@ THREE.WebGLProgram = ( function () {
|
|
|
|
|
|
}
|
|
|
|
|
|
- var shadowMapTypeDefine = "SHADOWMAP_TYPE_BASIC";
|
|
|
+ var shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC';
|
|
|
|
|
|
if ( parameters.shadowMapType === THREE.PCFShadowMap ) {
|
|
|
|
|
|
- shadowMapTypeDefine = "SHADOWMAP_TYPE_PCF";
|
|
|
+ shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF';
|
|
|
|
|
|
} else if ( parameters.shadowMapType === THREE.PCFSoftShadowMap ) {
|
|
|
|
|
|
- shadowMapTypeDefine = "SHADOWMAP_TYPE_PCF_SOFT";
|
|
|
+ shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT';
|
|
|
|
|
|
}
|
|
|
|
|
|
- var envMapTypeDefine = "ENVMAP_TYPE_CUBE";
|
|
|
- var envMapModeDefine = "ENVMAP_MODE_REFLECTION";
|
|
|
- var envMapBlendingDefine = "ENVMAP_BLENDING_MULTIPLY";
|
|
|
+ var envMapTypeDefine = 'ENVMAP_TYPE_CUBE';
|
|
|
+ var envMapModeDefine = 'ENVMAP_MODE_REFLECTION';
|
|
|
+ var envMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';
|
|
|
|
|
|
if ( parameters.envMap ) {
|
|
|
|
|
@@ -94,16 +94,16 @@ THREE.WebGLProgram = ( function () {
|
|
|
|
|
|
case THREE.CubeReflectionMapping:
|
|
|
case THREE.CubeRefractionMapping:
|
|
|
- envMapTypeDefine = "ENVMAP_TYPE_CUBE";
|
|
|
+ envMapTypeDefine = 'ENVMAP_TYPE_CUBE';
|
|
|
break;
|
|
|
|
|
|
case THREE.EquirectangularReflectionMapping:
|
|
|
case THREE.EquirectangularRefractionMapping:
|
|
|
- envMapTypeDefine = "ENVMAP_TYPE_EQUIREC";
|
|
|
+ envMapTypeDefine = 'ENVMAP_TYPE_EQUIREC';
|
|
|
break;
|
|
|
|
|
|
case THREE.SphericalReflectionMapping:
|
|
|
- envMapTypeDefine = "ENVMAP_TYPE_SPHERE";
|
|
|
+ envMapTypeDefine = 'ENVMAP_TYPE_SPHERE';
|
|
|
break;
|
|
|
|
|
|
}
|
|
@@ -112,7 +112,7 @@ THREE.WebGLProgram = ( function () {
|
|
|
|
|
|
case THREE.CubeRefractionMapping:
|
|
|
case THREE.EquirectangularRefractionMapping:
|
|
|
- envMapModeDefine = "ENVMAP_MODE_REFRACTION";
|
|
|
+ envMapModeDefine = 'ENVMAP_MODE_REFRACTION';
|
|
|
break;
|
|
|
|
|
|
}
|
|
@@ -120,22 +120,22 @@ THREE.WebGLProgram = ( function () {
|
|
|
switch ( material.combine ) {
|
|
|
|
|
|
case THREE.MultiplyOperation:
|
|
|
- envMapBlendingDefine = "ENVMAP_BLENDING_MULTIPLY";
|
|
|
+ envMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';
|
|
|
break;
|
|
|
|
|
|
case THREE.MixOperation:
|
|
|
- envMapBlendingDefine = "ENVMAP_BLENDING_MIX";
|
|
|
+ envMapBlendingDefine = 'ENVMAP_BLENDING_MIX';
|
|
|
break;
|
|
|
|
|
|
case THREE.AddOperation:
|
|
|
- envMapBlendingDefine = "ENVMAP_BLENDING_ADD";
|
|
|
+ envMapBlendingDefine = 'ENVMAP_BLENDING_ADD';
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- // console.log( "building new program " );
|
|
|
+ // console.log( 'building new program ' );
|
|
|
|
|
|
//
|
|
|
|
|
@@ -156,161 +156,161 @@ THREE.WebGLProgram = ( function () {
|
|
|
|
|
|
prefix_vertex = [
|
|
|
|
|
|
- "precision " + parameters.precision + " float;",
|
|
|
- "precision " + parameters.precision + " int;",
|
|
|
+ 'precision ' + parameters.precision + ' float;',
|
|
|
+ 'precision ' + parameters.precision + ' int;',
|
|
|
|
|
|
customDefines,
|
|
|
|
|
|
- parameters.supportsVertexTextures ? "#define VERTEX_TEXTURES" : "",
|
|
|
+ parameters.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '',
|
|
|
|
|
|
- _this.gammaInput ? "#define GAMMA_INPUT" : "",
|
|
|
- _this.gammaOutput ? "#define GAMMA_OUTPUT" : "",
|
|
|
+ _this.gammaInput ? '#define GAMMA_INPUT' : '',
|
|
|
+ _this.gammaOutput ? '#define GAMMA_OUTPUT' : '',
|
|
|
|
|
|
- "#define MAX_DIR_LIGHTS " + parameters.maxDirLights,
|
|
|
- "#define MAX_POINT_LIGHTS " + parameters.maxPointLights,
|
|
|
- "#define MAX_SPOT_LIGHTS " + parameters.maxSpotLights,
|
|
|
- "#define MAX_HEMI_LIGHTS " + parameters.maxHemiLights,
|
|
|
+ '#define MAX_DIR_LIGHTS ' + parameters.maxDirLights,
|
|
|
+ '#define MAX_POINT_LIGHTS ' + parameters.maxPointLights,
|
|
|
+ '#define MAX_SPOT_LIGHTS ' + parameters.maxSpotLights,
|
|
|
+ '#define MAX_HEMI_LIGHTS ' + parameters.maxHemiLights,
|
|
|
|
|
|
- "#define MAX_SHADOWS " + parameters.maxShadows,
|
|
|
+ '#define MAX_SHADOWS ' + parameters.maxShadows,
|
|
|
|
|
|
- "#define MAX_BONES " + parameters.maxBones,
|
|
|
+ '#define MAX_BONES ' + parameters.maxBones,
|
|
|
|
|
|
- parameters.map ? "#define USE_MAP" : "",
|
|
|
- parameters.envMap ? "#define USE_ENVMAP" : "",
|
|
|
- parameters.envMap ? "#define " + envMapModeDefine : "",
|
|
|
- parameters.lightMap ? "#define USE_LIGHTMAP" : "",
|
|
|
- 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.map ? '#define USE_MAP' : '',
|
|
|
+ parameters.envMap ? '#define USE_ENVMAP' : '',
|
|
|
+ parameters.envMap ? '#define ' + envMapModeDefine : '',
|
|
|
+ parameters.lightMap ? '#define USE_LIGHTMAP' : '',
|
|
|
+ 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" : "",
|
|
|
- parameters.useVertexTexture ? "#define BONE_TEXTURE" : "",
|
|
|
+ parameters.skinning ? '#define USE_SKINNING' : '',
|
|
|
+ parameters.useVertexTexture ? '#define BONE_TEXTURE' : '',
|
|
|
|
|
|
- parameters.morphTargets ? "#define USE_MORPHTARGETS" : "",
|
|
|
- parameters.morphNormals ? "#define USE_MORPHNORMALS" : "",
|
|
|
- parameters.wrapAround ? "#define WRAP_AROUND" : "",
|
|
|
- parameters.doubleSided ? "#define DOUBLE_SIDED" : "",
|
|
|
- parameters.flipSided ? "#define FLIP_SIDED" : "",
|
|
|
+ parameters.morphTargets ? '#define USE_MORPHTARGETS' : '',
|
|
|
+ parameters.morphNormals ? '#define USE_MORPHNORMALS' : '',
|
|
|
+ parameters.wrapAround ? '#define WRAP_AROUND' : '',
|
|
|
+ parameters.doubleSided ? '#define DOUBLE_SIDED' : '',
|
|
|
+ parameters.flipSided ? '#define FLIP_SIDED' : '',
|
|
|
|
|
|
- parameters.shadowMapEnabled ? "#define USE_SHADOWMAP" : "",
|
|
|
- parameters.shadowMapEnabled ? "#define " + shadowMapTypeDefine : "",
|
|
|
- parameters.shadowMapDebug ? "#define SHADOWMAP_DEBUG" : "",
|
|
|
- parameters.shadowMapCascade ? "#define SHADOWMAP_CASCADE" : "",
|
|
|
+ parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',
|
|
|
+ parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',
|
|
|
+ parameters.shadowMapDebug ? '#define SHADOWMAP_DEBUG' : '',
|
|
|
+ parameters.shadowMapCascade ? '#define SHADOWMAP_CASCADE' : '',
|
|
|
|
|
|
- parameters.sizeAttenuation ? "#define USE_SIZEATTENUATION" : "",
|
|
|
+ parameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '',
|
|
|
|
|
|
- parameters.logarithmicDepthBuffer ? "#define USE_LOGDEPTHBUF" : "",
|
|
|
- //_this._glExtensionFragDepth ? "#define USE_LOGDEPTHBUF_EXT" : "",
|
|
|
+ parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
|
|
|
+ //_this._glExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '',
|
|
|
|
|
|
|
|
|
- "uniform mat4 modelMatrix;",
|
|
|
- "uniform mat4 modelViewMatrix;",
|
|
|
- "uniform mat4 projectionMatrix;",
|
|
|
- "uniform mat4 viewMatrix;",
|
|
|
- "uniform mat3 normalMatrix;",
|
|
|
- "uniform vec3 cameraPosition;",
|
|
|
+ 'uniform mat4 modelMatrix;',
|
|
|
+ 'uniform mat4 modelViewMatrix;',
|
|
|
+ 'uniform mat4 projectionMatrix;',
|
|
|
+ 'uniform mat4 viewMatrix;',
|
|
|
+ 'uniform mat3 normalMatrix;',
|
|
|
+ 'uniform vec3 cameraPosition;',
|
|
|
|
|
|
- "attribute vec3 position;",
|
|
|
- "attribute vec3 normal;",
|
|
|
- "attribute vec2 uv;",
|
|
|
- "attribute vec2 uv2;",
|
|
|
+ 'attribute vec3 position;',
|
|
|
+ 'attribute vec3 normal;',
|
|
|
+ 'attribute vec2 uv;',
|
|
|
+ 'attribute vec2 uv2;',
|
|
|
|
|
|
- "#ifdef USE_COLOR",
|
|
|
+ '#ifdef USE_COLOR',
|
|
|
|
|
|
- " attribute vec3 color;",
|
|
|
+ ' attribute vec3 color;',
|
|
|
|
|
|
- "#endif",
|
|
|
+ '#endif',
|
|
|
|
|
|
- "#ifdef USE_MORPHTARGETS",
|
|
|
+ '#ifdef USE_MORPHTARGETS',
|
|
|
|
|
|
- " attribute vec3 morphTarget0;",
|
|
|
- " attribute vec3 morphTarget1;",
|
|
|
- " attribute vec3 morphTarget2;",
|
|
|
- " attribute vec3 morphTarget3;",
|
|
|
+ ' attribute vec3 morphTarget0;',
|
|
|
+ ' attribute vec3 morphTarget1;',
|
|
|
+ ' attribute vec3 morphTarget2;',
|
|
|
+ ' attribute vec3 morphTarget3;',
|
|
|
|
|
|
- " #ifdef USE_MORPHNORMALS",
|
|
|
+ ' #ifdef USE_MORPHNORMALS',
|
|
|
|
|
|
- " attribute vec3 morphNormal0;",
|
|
|
- " attribute vec3 morphNormal1;",
|
|
|
- " attribute vec3 morphNormal2;",
|
|
|
- " attribute vec3 morphNormal3;",
|
|
|
+ ' attribute vec3 morphNormal0;',
|
|
|
+ ' attribute vec3 morphNormal1;',
|
|
|
+ ' attribute vec3 morphNormal2;',
|
|
|
+ ' attribute vec3 morphNormal3;',
|
|
|
|
|
|
- " #else",
|
|
|
+ ' #else',
|
|
|
|
|
|
- " attribute vec3 morphTarget4;",
|
|
|
- " attribute vec3 morphTarget5;",
|
|
|
- " attribute vec3 morphTarget6;",
|
|
|
- " attribute vec3 morphTarget7;",
|
|
|
+ ' attribute vec3 morphTarget4;',
|
|
|
+ ' attribute vec3 morphTarget5;',
|
|
|
+ ' attribute vec3 morphTarget6;',
|
|
|
+ ' attribute vec3 morphTarget7;',
|
|
|
|
|
|
- " #endif",
|
|
|
+ ' #endif',
|
|
|
|
|
|
- "#endif",
|
|
|
+ '#endif',
|
|
|
|
|
|
- "#ifdef USE_SKINNING",
|
|
|
+ '#ifdef USE_SKINNING',
|
|
|
|
|
|
- " attribute vec4 skinIndex;",
|
|
|
- " attribute vec4 skinWeight;",
|
|
|
+ ' attribute vec4 skinIndex;',
|
|
|
+ ' attribute vec4 skinWeight;',
|
|
|
|
|
|
- "#endif",
|
|
|
+ '#endif',
|
|
|
|
|
|
- ""
|
|
|
+ ''
|
|
|
|
|
|
].join( '\n' );
|
|
|
|
|
|
prefix_fragment = [
|
|
|
|
|
|
- "precision " + parameters.precision + " float;",
|
|
|
- "precision " + parameters.precision + " int;",
|
|
|
+ 'precision ' + parameters.precision + ' float;',
|
|
|
+ 'precision ' + parameters.precision + ' int;',
|
|
|
|
|
|
- ( parameters.bumpMap || parameters.normalMap ) ? "#extension GL_OES_standard_derivatives : enable" : "",
|
|
|
+ ( parameters.bumpMap || parameters.normalMap ) ? '#extension GL_OES_standard_derivatives : enable' : '',
|
|
|
|
|
|
customDefines,
|
|
|
|
|
|
- "#define MAX_DIR_LIGHTS " + parameters.maxDirLights,
|
|
|
- "#define MAX_POINT_LIGHTS " + parameters.maxPointLights,
|
|
|
- "#define MAX_SPOT_LIGHTS " + parameters.maxSpotLights,
|
|
|
- "#define MAX_HEMI_LIGHTS " + parameters.maxHemiLights,
|
|
|
+ '#define MAX_DIR_LIGHTS ' + parameters.maxDirLights,
|
|
|
+ '#define MAX_POINT_LIGHTS ' + parameters.maxPointLights,
|
|
|
+ '#define MAX_SPOT_LIGHTS ' + parameters.maxSpotLights,
|
|
|
+ '#define MAX_HEMI_LIGHTS ' + parameters.maxHemiLights,
|
|
|
|
|
|
- "#define MAX_SHADOWS " + parameters.maxShadows,
|
|
|
+ '#define MAX_SHADOWS ' + parameters.maxShadows,
|
|
|
|
|
|
- parameters.alphaTest ? "#define ALPHATEST " + parameters.alphaTest: "",
|
|
|
+ parameters.alphaTest ? '#define ALPHATEST ' + parameters.alphaTest: '',
|
|
|
|
|
|
- _this.gammaInput ? "#define GAMMA_INPUT" : "",
|
|
|
- _this.gammaOutput ? "#define GAMMA_OUTPUT" : "",
|
|
|
+ _this.gammaInput ? '#define GAMMA_INPUT' : '',
|
|
|
+ _this.gammaOutput ? '#define GAMMA_OUTPUT' : '',
|
|
|
|
|
|
- ( parameters.useFog && parameters.fog ) ? "#define USE_FOG" : "",
|
|
|
- ( parameters.useFog && parameters.fogExp ) ? "#define FOG_EXP2" : "",
|
|
|
+ ( parameters.useFog && parameters.fog ) ? '#define USE_FOG' : '',
|
|
|
+ ( parameters.useFog && parameters.fogExp ) ? '#define FOG_EXP2' : '',
|
|
|
|
|
|
- parameters.map ? "#define USE_MAP" : "",
|
|
|
- parameters.envMap ? "#define USE_ENVMAP" : "",
|
|
|
- parameters.envMap ? "#define " + envMapTypeDefine : "",
|
|
|
- parameters.envMap ? "#define " + envMapModeDefine : "",
|
|
|
- parameters.envMap ? "#define " + envMapBlendingDefine : "",
|
|
|
- parameters.lightMap ? "#define USE_LIGHTMAP" : "",
|
|
|
- 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.map ? '#define USE_MAP' : '',
|
|
|
+ parameters.envMap ? '#define USE_ENVMAP' : '',
|
|
|
+ parameters.envMap ? '#define ' + envMapTypeDefine : '',
|
|
|
+ parameters.envMap ? '#define ' + envMapModeDefine : '',
|
|
|
+ parameters.envMap ? '#define ' + envMapBlendingDefine : '',
|
|
|
+ parameters.lightMap ? '#define USE_LIGHTMAP' : '',
|
|
|
+ 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" : "",
|
|
|
- parameters.wrapAround ? "#define WRAP_AROUND" : "",
|
|
|
- parameters.doubleSided ? "#define DOUBLE_SIDED" : "",
|
|
|
- parameters.flipSided ? "#define FLIP_SIDED" : "",
|
|
|
+ parameters.metal ? '#define METAL' : '',
|
|
|
+ parameters.wrapAround ? '#define WRAP_AROUND' : '',
|
|
|
+ parameters.doubleSided ? '#define DOUBLE_SIDED' : '',
|
|
|
+ parameters.flipSided ? '#define FLIP_SIDED' : '',
|
|
|
|
|
|
- parameters.shadowMapEnabled ? "#define USE_SHADOWMAP" : "",
|
|
|
- parameters.shadowMapEnabled ? "#define " + shadowMapTypeDefine : "",
|
|
|
- parameters.shadowMapDebug ? "#define SHADOWMAP_DEBUG" : "",
|
|
|
- parameters.shadowMapCascade ? "#define SHADOWMAP_CASCADE" : "",
|
|
|
+ parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',
|
|
|
+ parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',
|
|
|
+ parameters.shadowMapDebug ? '#define SHADOWMAP_DEBUG' : '',
|
|
|
+ parameters.shadowMapCascade ? '#define SHADOWMAP_CASCADE' : '',
|
|
|
|
|
|
- parameters.logarithmicDepthBuffer ? "#define USE_LOGDEPTHBUF" : "",
|
|
|
- //_this._glExtensionFragDepth ? "#define USE_LOGDEPTHBUF_EXT" : "",
|
|
|
+ parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',
|
|
|
+ //_this._glExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '',
|
|
|
|
|
|
- "uniform mat4 viewMatrix;",
|
|
|
- "uniform vec3 cameraPosition;",
|
|
|
- ""
|
|
|
+ 'uniform mat4 viewMatrix;',
|
|
|
+ 'uniform vec3 cameraPosition;',
|
|
|
+ ''
|
|
|
|
|
|
].join( '\n' );
|
|
|
|
|
@@ -359,7 +359,15 @@ THREE.WebGLProgram = ( function () {
|
|
|
|
|
|
var identifiers = [
|
|
|
|
|
|
- 'viewMatrix', 'modelViewMatrix', 'projectionMatrix', 'normalMatrix', 'modelMatrix', 'cameraPosition', 'morphTargetInfluences', 'bindMatrix', 'bindMatrixInverse'
|
|
|
+ 'viewMatrix',
|
|
|
+ 'modelViewMatrix',
|
|
|
+ 'projectionMatrix',
|
|
|
+ 'normalMatrix',
|
|
|
+ 'modelMatrix',
|
|
|
+ 'cameraPosition',
|
|
|
+ 'morphTargetInfluences',
|
|
|
+ 'bindMatrix',
|
|
|
+ 'bindMatrixInverse'
|
|
|
|
|
|
];
|
|
|
|
|
@@ -394,20 +402,27 @@ THREE.WebGLProgram = ( function () {
|
|
|
|
|
|
identifiers = [
|
|
|
|
|
|
- "position", "normal", "uv", "uv2", "tangent", "color",
|
|
|
- "skinIndex", "skinWeight", "lineDistance"
|
|
|
+ 'position',
|
|
|
+ 'normal',
|
|
|
+ 'uv',
|
|
|
+ 'uv2',
|
|
|
+ 'tangent',
|
|
|
+ 'color',
|
|
|
+ 'skinIndex',
|
|
|
+ 'skinWeight',
|
|
|
+ 'lineDistance'
|
|
|
|
|
|
];
|
|
|
|
|
|
for ( var i = 0; i < parameters.maxMorphTargets; i ++ ) {
|
|
|
|
|
|
- identifiers.push( "morphTarget" + i );
|
|
|
+ identifiers.push( 'morphTarget' + i );
|
|
|
|
|
|
}
|
|
|
|
|
|
for ( var i = 0; i < parameters.maxMorphNormals; i ++ ) {
|
|
|
|
|
|
- identifiers.push( "morphNormal" + i );
|
|
|
+ identifiers.push( 'morphNormal' + i );
|
|
|
|
|
|
}
|
|
|
|