提交 5c8a0896 编写于 作者: S Szymon Nowak

Fixed implied globals and added few missing semicolons

上级 05dbe81d
......@@ -7,7 +7,7 @@ THREE.Color = function ( hex ) {
this.autoUpdate = true;
this.setHex( hex );
}
};
THREE.Color.prototype = {
......@@ -65,7 +65,7 @@ THREE.Color.prototype = {
},
toString: function () {
return 'THREE.Color ( r: ' + this.r + ', g: ' + this.g + ', b: ' + this.b + ', hex: ' + this.hex + ' )';
......
......@@ -113,7 +113,7 @@ THREE.Geometry.prototype = {
computeVertexNormals: function () {
var v, vertices = [],
var v, vl, vertices = [],
f, fl, face;
for ( v = 0, vl = this.vertices.length; v < vl; v ++ ) {
......@@ -179,7 +179,7 @@ THREE.Geometry.prototype = {
var f, fl, v, vl, face, uv, vA, vB, vC, uvA, uvB, uvC,
x1, x2, y1, y2, z1, z2,
s1, s2, t1, t2, r, t, n,
s1, s2, t1, t2, r, t, test,
tan1 = [], tan2 = [],
sdir = new THREE.Vector3(), tdir = new THREE.Vector3(),
tmp = new THREE.Vector3(), tmp2 = new THREE.Vector3(),
......@@ -355,7 +355,7 @@ THREE.Geometry.prototype = {
// which could then use vertex color attributes instead of each being
// in its separate VBO
var i, l, f, fl, face, material, vertices, mhash, ghash, hash_map = {};
var i, l, f, fl, face, material, materials, vertices, mhash, ghash, hash_map = {};
function materialHash( material ) {
......
......@@ -18,4 +18,4 @@ THREE.Matrix3.prototype = {
}
}
};
......@@ -24,4 +24,4 @@ THREE.UV.prototype = {
}
}
};
......@@ -16,7 +16,7 @@ THREE.Vertex = function ( position, normal ) {
this.__visible = true;
}
};
THREE.Vertex.prototype = {
......
......@@ -28,7 +28,7 @@ var GeometryUtils = {
}
for ( var i = 0, il = faces2.length; i < il; i ++ ) {
for ( i = 0, il = faces2.length; i < il; i ++ ) {
var face = faces2[ i ], faceCopy, normal,
faceVertexNormals = face.vertexNormals;
......@@ -59,7 +59,7 @@ var GeometryUtils = {
}
for ( var i = 0, il = uvs2.length; i < il; i ++ ) {
for ( i = 0, il = uvs2.length; i < il; i ++ ) {
var uv = uvs2[ i ], uvCopy = [];
......@@ -75,4 +75,4 @@ var GeometryUtils = {
}
}
};
......@@ -20,7 +20,7 @@ var ImageUtils = {
images[ i ] = new Image();
images[ i ].loaded = 0;
images[ i ].onload = function () { images.loadCount += 1; this.loaded = true; }
images[ i ].onload = function () { images.loadCount += 1; this.loaded = true; };
images[ i ].src = array[ i ];
}
......@@ -29,4 +29,4 @@ var ImageUtils = {
}
}
};
var SceneUtils = {
addMesh: function ( scene, geometry, scale, x, y, z, rx, ry, rz, material ) {
var mesh = new THREE.Mesh( geometry, material );
mesh.scale.x = mesh.scale.y = mesh.scale.z = scale;
mesh.position.x = x;
......@@ -13,30 +13,30 @@ var SceneUtils = {
scene.addObject( mesh );
return mesh;
},
},
addPanoramaCubeWebGL: function ( scene, size, textureCube ) {
var shader = ShaderUtils.lib["cube"];
shader.uniforms["tCube"].texture = textureCube;
var material = new THREE.MeshShaderMaterial( { fragment_shader: shader.fragment_shader,
vertex_shader: shader.vertex_shader,
var material = new THREE.MeshShaderMaterial( { fragment_shader: shader.fragment_shader,
vertex_shader: shader.vertex_shader,
uniforms: shader.uniforms
} ),
mesh = new THREE.Mesh( new Cube( size, size, size, 1, 1, null, true ), material );
scene.addObject( mesh );
return mesh;
},
addPanoramaCube: function( scene, size, images ) {
var materials = [];
var materials = [], mesh;
materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[0] ) } ) );
materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[1] ) } ) );
materials.push( new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[2] ) } ) );
......@@ -46,14 +46,14 @@ var SceneUtils = {
mesh = new THREE.Mesh( new Cube( size, size, size, 1, 1, materials, true ), new THREE.MeshFaceMaterial() );
scene.addObject( mesh );
return mesh;
},
addPanoramaCubePlanes: function ( scene, size, images ) {
var hsize = size/2, plane = new Plane( size, size ), pi2 = Math.PI/2, pi = Math.PI;
SceneUtils.addMesh( scene, plane, 1, 0, 0, -hsize, 0, 0, 0, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[5] ) } ) );
......@@ -61,7 +61,7 @@ var SceneUtils = {
SceneUtils.addMesh( scene, plane, 1, hsize, 0, 0, 0, -pi2, 0, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[1] ) } ) );
SceneUtils.addMesh( scene, plane, 1, 0, hsize, 0, pi2, 0, pi, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[2] ) } ) );
SceneUtils.addMesh( scene, plane, 1, 0, -hsize, 0, -pi2, 0, pi, new THREE.MeshBasicMaterial( { map: new THREE.Texture( images[3] ) } ) );
}
}
};
......@@ -64,7 +64,7 @@ var Cube = function ( width, height, depth, segments_width, segments_height, mat
function buildPlane( u, v, udir, vdir, width, height, depth, material ) {
var w,
var w, ix, iy,
gridX = segments_width || 1,
gridY = segments_height || 1,
gridX1 = gridX + 1,
......@@ -160,7 +160,7 @@ var Cube = function ( width, height, depth, segments_width, segments_height, mat
}
for ( var i = 0, l = scope.faces.length; i < l; i ++ ) {
for ( i = 0, il = scope.faces.length; i < il; i ++ ) {
var face = scope.faces[ i ];
......@@ -179,7 +179,7 @@ var Cube = function ( width, height, depth, segments_width, segments_height, mat
this.computeFaceNormals();
this.sortFacesByMaterial();
}
};
Cube.prototype = new THREE.Geometry();
Cube.prototype.constructor = Cube;
......@@ -76,7 +76,7 @@ var Cylinder = function ( numSegs, topRad, botRad, height, topOffset, botOffset
}
}
};
Cylinder.prototype = new THREE.Geometry();
Cylinder.prototype.constructor = Cylinder;
......@@ -56,7 +56,7 @@ var Plane = function ( width, height, segments_width, segments_height ) {
this.computeFaceNormals();
this.sortFacesByMaterial();
}
};
Plane.prototype = new THREE.Geometry();
Plane.prototype.constructor = Plane;
......@@ -110,7 +110,7 @@ var Sphere = function ( radius, segments_width, segments_height ) {
this.boundingSphere = { radius: radius };
}
};
Sphere.prototype = new THREE.Geometry();
Sphere.prototype.constructor = Sphere;
var Uniforms = {
clone: function( uniforms_src ) {
var u, p, parameter, uniforms_dst = {};
var u, p, parameter, parameter_src, uniforms_dst = {};
for ( u in uniforms_src ) {
uniforms_dst[ u ] = {};
for ( p in uniforms_src[ u ] ) {
parameter_src = uniforms_src[ u ][ p ];
if ( parameter_src instanceof THREE.Color ||
parameter_src instanceof THREE.Vector3 ||
parameter_src instanceof THREE.Texture ) {
uniforms_dst[ u ][ p ] = parameter_src.clone();
} else {
uniforms_dst[ u ][ p ] = parameter_src;
}
}
}
return uniforms_dst;
}
}
};
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE.CubeReflectionMapping = function () {
}
};
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE.CubeRefractionMapping = function () {
}
};
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE.LatitudeReflectionMapping = function () {
}
};
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE.LatitudeRefractionMapping = function () {
}
};
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE.SphericalReflectionMapping = function () {
}
};
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE.SphericalRefractionMapping = function () {
}
};
/**
* @author mr.doob / http://mrdoob.com/
*/
THREE.UVMapping = function () {
}
};
......@@ -36,14 +36,14 @@ THREE.WebGLRenderer = function ( parameters ) {
// heuristics to create shader parameters according to lights in the scene
// (not to blow over maxLights budget)
maxLightCount = allocateLights( parameters.scene, 4 );
maxLightCount = allocateLights( parameters.scene, 4 ),
fog = parameters.scene ? parameters.scene.fog : null,
antialias = parameters.antialias != undefined ? parameters.antialias : true,
clearColor = parameters.clearColor ? new THREE.Color( parameters.clearColor ) : new THREE.Color( 0x000000 ),
clearAlpha = parameters.clearAlpha ? parameters.clearAlpha : 0;
this.domElement = _canvas;
this.autoClear = true;
......@@ -63,12 +63,12 @@ THREE.WebGLRenderer = function ( parameters ) {
};
this.setClearColor = function( hex, alpha ) {
var color = new THREE.Color( hex );
_gl.clearColor( color.r, color.g, color.b, alpha );
};
this.clear = function () {
_gl.clear( _gl.COLOR_BUFFER_BIT | _gl.DEPTH_BUFFER_BIT );
......@@ -172,7 +172,7 @@ THREE.WebGLRenderer = function ( parameters ) {
this.createBuffers = function ( object, g ) {
var f, fl, fi, face, vertexNormals, normal, uv, v1, v2, v3, v4, t1, t2, t3, t4, m, ml, i,
var f, fl, fi, face, vertexNormals, faceNormal, normal, uv, v1, v2, v3, v4, t1, t2, t3, t4, m, ml, i,
faceArray = [],
lineArray = [],
......@@ -371,7 +371,7 @@ THREE.WebGLRenderer = function ( parameters ) {
geometryChunk.__webGLLineCount = lineArray.length;
};
function setMaterialShaders( material, shaders ) {
material.fragment_shader = shaders.fragment_shader;
......@@ -381,36 +381,36 @@ THREE.WebGLRenderer = function ( parameters ) {
};
function refreshUniforms( material, fog ) {
material.uniforms.color.value.setHex( material.color.hex );
material.uniforms.opacity.value = material.opacity;
material.uniforms.map.texture = material.map;
material.uniforms.env_map.texture = material.env_map;
material.uniforms.reflectivity.value = material.reflectivity;
material.uniforms.refraction_ratio.value = material.refraction_ratio;
material.uniforms.combine.value = material.combine;
material.uniforms.useRefract.value = material.env_map && material.env_map.mapping instanceof THREE.CubeRefractionMapping;
if ( fog ) {
material.uniforms.fogColor.value.setHex( fog.color.hex );
if ( fog instanceof THREE.Fog ) {
material.uniforms.fogNear.value = fog.near;
material.uniforms.fogFar.value = fog.far;
} else if ( fog instanceof THREE.FogExp2 ) {
material.uniforms.fogDensity.value = fog.density;
}
}
};
this.renderBuffer = function ( camera, lights, fog, material, geometryChunk ) {
var mColor, mOpacity, mReflectivity,
......@@ -423,7 +423,7 @@ THREE.WebGLRenderer = function ( parameters ) {
if ( material instanceof THREE.MeshShaderMaterial ||
material instanceof THREE.MeshDepthMaterial ||
material instanceof THREE.MeshNormalMaterial ||
material instanceof THREE.MeshNormalMaterial ||
material instanceof THREE.MeshBasicMaterial ) {
if ( !material.program ) {
......@@ -440,11 +440,11 @@ THREE.WebGLRenderer = function ( parameters ) {
setMaterialShaders( material, THREE.ShaderLib[ 'normal' ] );
} else if ( material instanceof THREE.MeshBasicMaterial ) {
setMaterialShaders( material, THREE.ShaderLib[ 'basic' ] );
refreshUniforms( material, fog );
}
material.program = buildProgram( material.fragment_shader, material.vertex_shader, { fog: fog, map: material.map, env_map: material.env_map } );
......@@ -486,11 +486,11 @@ THREE.WebGLRenderer = function ( parameters ) {
this.loadMatrices( program );
if ( material instanceof THREE.MeshBasicMaterial ) {
refreshUniforms( material, fog );
}
if ( material instanceof THREE.MeshShaderMaterial ||
material instanceof THREE.MeshDepthMaterial ||
material instanceof THREE.MeshNormalMaterial ||
......@@ -536,16 +536,16 @@ THREE.WebGLRenderer = function ( parameters ) {
if ( fog ) {
_gl.uniform3f( program.uniforms.fogColor, fog.color.r, fog.color.g, fog.color.b );
if ( fog instanceof THREE.Fog ) {
_gl.uniform1f( program.uniforms.fogNear, fog.near );
_gl.uniform1f( program.uniforms.fogFar, fog.far );
} else if ( fog instanceof THREE.FogExp2 ) {
_gl.uniform1f( program.uniforms.fogDensity, fog.density );
}
}
......@@ -990,7 +990,7 @@ THREE.WebGLRenderer = function ( parameters ) {
_gl.clearColor( clearColor.r, clearColor.g, clearColor.b, clearAlpha );
};
function generateFragmentShader( maxDirLights, maxPointLights ) {
var chunks = [
......@@ -1016,7 +1016,7 @@ THREE.WebGLRenderer = function ( parameters ) {
"uniform float mShininess;",
THREE.Snippets[ "fog_uniforms" ],
"uniform int pointLightNumber;",
"uniform int directionalLightNumber;",
......@@ -1158,7 +1158,7 @@ THREE.WebGLRenderer = function ( parameters ) {
"}",
THREE.Snippets[ "fog_fragment" ],
"}" ];
return chunks.join("\n");
......@@ -1273,7 +1273,7 @@ THREE.WebGLRenderer = function ( parameters ) {
parameters.fog ? "#define USE_FOG" : "",
parameters.fog instanceof THREE.FogExp2 ? "#define FOG_EXP2" : "",
parameters.map ? "#define USE_MAP" : "",
parameters.env_map ? "#define USE_ENVMAP" : "",
......@@ -1457,7 +1457,7 @@ THREE.WebGLRenderer = function ( parameters ) {
};
function initUbershader( maxDirLights, maxPointLights, fog ) {
var vertex_shader = generateVertexShader( maxDirLights, maxPointLights ),
fragment_shader = generateFragmentShader( maxDirLights, maxPointLights ),
program;
......@@ -1580,7 +1580,7 @@ THREE.WebGLRenderer = function ( parameters ) {
function bufferNeedsSmoothNormals( geometryChunk, object ) {
var m, ml, i, l, needsSmoothNormals = false;
var m, ml, i, l, meshMaterial, needsSmoothNormals = false;
for ( m = 0, ml = object.materials.length; m < ml; m++ ) {
......@@ -1622,7 +1622,8 @@ THREE.WebGLRenderer = function ( parameters ) {
if ( scene ) {
var l, ll, light, dirLights = pointLights = maxDirLights = maxPointLights = 0;
var l, ll, light, dirLights, pointLights, maxDirLights, maxPointLights;
dirLights = pointLights = maxDirLights = maxPointLights = 0;
for ( l = 0, ll = scene.lights.length; l < ll; l++ ) {
......@@ -1688,28 +1689,28 @@ THREE.WebGLRenderer = function ( parameters ) {
};
THREE.Snippets = {
fog_uniforms: [
"#ifdef USE_FOG",
"uniform vec3 fogColor;",
"#ifdef FOG_EXP2",
"uniform float fogDensity;",
"#else",
"uniform float fogNear;",
"uniform float fogFar;",
"#endif",
"#endif"
].join("\n"),
fog_fragment: [
"#ifdef USE_FOG",
"float depth = gl_FragCoord.z / gl_FragCoord.w;",
"#ifdef FOG_EXP2",
......@@ -1719,13 +1720,13 @@ THREE.Snippets = {
"#else",
"float fogFactor = smoothstep( fogNear, fogFar, depth );",
"#endif",
"gl_FragColor = mix( gl_FragColor, vec4( fogColor, 1.0 ), fogFactor );",
"#endif"
].join("\n")
};
THREE.ShaderLib = {
......@@ -1794,9 +1795,9 @@ THREE.ShaderLib = {
].join("\n")
},
'basic': {
uniforms: { "color" : { type: "c", value: new THREE.Color( 0xeeeeee ) },
"opacity" : { type: "f", value: 1 },
"map" : { type: "t", value: 0, texture: null },
......@@ -1810,32 +1811,32 @@ THREE.ShaderLib = {
"fogFar" : { type: "f", value: 2000 },
"fogColor" : { type: "c", value: new THREE.Color( 0xffffff ) }
},
fragment_shader: [
"uniform vec3 color;",
"uniform float opacity;",
"#ifdef USE_MAP",
"varying vec2 vUv;",
"uniform sampler2D map;",
"#endif",
"#ifdef USE_ENVMAP",
"varying vec3 vReflect;",
"uniform float reflectivity;",
"uniform samplerCube env_map;",
"uniform int combine;",
"#endif",
THREE.Snippets[ "fog_uniforms" ],
"void main() {",
"vec4 mColor = vec4( color, opacity );",
"vec4 mapColor = vec4( 1.0, 1.0, 1.0, 1.0 );",
"vec4 cubeColor = vec4( 1.0, 1.0, 1.0, 1.0 );",
......@@ -1849,11 +1850,11 @@ THREE.ShaderLib = {
"#endif",
// environment map
"#ifdef USE_ENVMAP",
"cubeColor = textureCube( env_map, vec3( -vReflect.x, vReflect.yz ) );",
"if ( combine == 1 ) {",
"gl_FragColor = mix( mColor * mapColor, cubeColor, reflectivity );",
......@@ -1863,48 +1864,48 @@ THREE.ShaderLib = {
"gl_FragColor = mColor * mapColor * cubeColor;",
"}",
"#else",
"gl_FragColor = mColor * mapColor;",
"#endif",
THREE.Snippets[ "fog_fragment" ],
"}"
].join("\n"),
vertex_shader: [
"#ifdef USE_MAP",
"varying vec2 vUv;",
"#endif",
"#ifdef USE_ENVMAP",
"varying vec3 vReflect;",
"uniform float refraction_ratio;",
"uniform bool useRefract;",
"#endif",
"void main() {",
"#ifdef USE_MAP",
"vUv = uv;",
"#endif",
"#ifdef USE_ENVMAP",
"vec4 mPosition = objectMatrix * vec4( position, 1.0 );",
"vec3 nWorld = mat3( objectMatrix[0].xyz, objectMatrix[1].xyz, objectMatrix[2].xyz ) * normal;",
"if ( useRefract ) {",
"vReflect = refract( normalize( mPosition.xyz - cameraPosition ), normalize( nWorld.xyz ), refraction_ratio );",
......@@ -1916,13 +1917,13 @@ THREE.ShaderLib = {
"}",
"#endif",
"gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
"}"
].join("\n")
}
}
};
......@@ -14,6 +14,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
_canvas = document.createElement( 'canvas' ),
_gl, _currentProgram,
_modelViewMatrix = new THREE.Matrix4(),
_normalMatrix = new THREE.Matrix4(),
_viewMatrixArray = new Float32Array( 16 ),
_modelViewMatrixArray = new Float32Array( 16 ),
_projectionMatrixArray = new Float32Array( 16 ),
......@@ -100,7 +101,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
function renderObject( object ) {
var geometry, material, m, nl,
var geometry, material, m, ml,
program, uniforms, attributes;
object.autoUpdateMatrix && object.updateMatrix();
......@@ -268,11 +269,11 @@ THREE.WebGLRenderer2 = function ( antialias ) {
} else if ( object instanceof THREE.Line ) {
} else if ( object instanceof THREE.Particle ) {
}
......@@ -283,10 +284,9 @@ THREE.WebGLRenderer2 = function ( antialias ) {
function buildBuffers( geometry ) {
var itemCount = 0, vertexIndex, group,
f, fl, face, v1, v2, v3, vertexNormals, normal, uv,
f, fl, face, v1, v2, v3, v4, vertexNormals, faceNormal, normal, uv,
vertexGroups = [], faceGroups = [], lineGroups = [], normalGroups = [], uvGroups = [],
vertices, faces, lines, normals, uvs,
buffers = {};
vertices, faces, lines, normals, uvs;
for ( f = 0, fl = geometry.faces.length; f < fl; f++ ) {
......@@ -544,9 +544,9 @@ THREE.WebGLRenderer2 = function ( antialias ) {
identifiers.push( 'mColor', 'mOpacity' );
material.map ? identifiers.push( 'tMap' ) : null;
material.env_map ? identifiers.push( 'tSpherical' ) : null;
material.fog ? identifiers.push( 'fog', 'fogColor', 'fogNear', 'fogFar' ) : null;
if ( material.map ) identifiers.push( 'tMap' );
if ( material.env_map ) identifiers.push( 'tSpherical' );
if ( material.fog ) identifiers.push( 'fog', 'fogColor', 'fogNear', 'fogFar' );
} else if ( material instanceof THREE.MeshNormalMaterial ) {
......@@ -622,7 +622,7 @@ THREE.WebGLRenderer2 = function ( antialias ) {
function compileProgram( vertex_shader, fragment_shader ) {
var program = _gl.createProgram(), shader
var program = _gl.createProgram(), shader, prefix_vertex, prefix_fragment;
prefix_vertex = [
maxVertexTextures() > 0 ? "#define VERTEX_TEXTURES" : "",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册