提交 94d01d8c 编写于 作者: M Mr.doob

Merge remote branch 'alteredq/master'

......@@ -166,7 +166,7 @@ f.program}else z=x;if(z!=A){c.useProgram(z);A=z}z==x&&this.setupLights(z,k);this
6?d(Q,H):e(Q,H)}}}if(f instanceof THREE.MeshPhongMaterial||f instanceof THREE.MeshLambertMaterial||f instanceof THREE.MeshBasicMaterial){j=f.color;i=f.opacity;u=f.wireframe;s=f.wireframe_linewidth;G=f.map;y=f.env_map;k=f.combine==THREE.MixOperation;g=f.reflectivity;Q=f.env_map&&f.env_map.mapping instanceof THREE.CubeRefractionMapping;H=f.refraction_ratio;c.uniform4f(z.uniforms.mColor,j.r*i,j.g*i,j.b*i,i);c.uniform1i(z.uniforms.mixEnvMap,k);c.uniform1f(z.uniforms.mReflectivity,g);c.uniform1i(z.uniforms.useRefract,
Q);c.uniform1f(z.uniforms.mRefractionRatio,H)}if(f instanceof THREE.MeshNormalMaterial){i=f.opacity;c.uniform1f(z.uniforms.mOpacity,i);c.uniform1i(z.uniforms.material,4)}else if(f instanceof THREE.MeshDepthMaterial){i=f.opacity;u=f.wireframe;s=f.wireframe_linewidth;c.uniform1f(z.uniforms.mOpacity,i);c.uniform1f(z.uniforms.m2Near,f.__2near);c.uniform1f(z.uniforms.mFarPlusNear,f.__farPlusNear);c.uniform1f(z.uniforms.mFarMinusNear,f.__farMinusNear);c.uniform1i(z.uniforms.material,3)}else if(f instanceof
THREE.MeshPhongMaterial){j=f.ambient;g=f.specular;f=f.shininess;c.uniform4f(z.uniforms.mAmbient,j.r,j.g,j.b,i);c.uniform4f(z.uniforms.mSpecular,g.r,g.g,g.b,i);c.uniform1f(z.uniforms.mShininess,f);c.uniform1i(z.uniforms.material,2)}else if(f instanceof THREE.MeshLambertMaterial)c.uniform1i(z.uniforms.material,1);else if(f instanceof THREE.MeshBasicMaterial)c.uniform1i(z.uniforms.material,0);else if(f instanceof THREE.MeshCubeMaterial){c.uniform1i(z.uniforms.material,5);y=f.env_map}if(G){e(G,0);c.uniform1i(z.uniforms.tMap,
0);c.uniform1i(z.uniforms.enableMap,1)}else c.uniform1i(z.uniforms.enableMap,0);if(y){d(y,1);c.uniform1i(z.uniforms.tCube,1);c.uniform1i(z.uniforms.enableCubeMap,1)}else c.uniform1i(z.uniforms.enableCubeMap,0);i=z.attributes;c.bindBuffer(c.ARRAY_BUFFER,p.__webGLVertexBuffer);c.vertexAttribPointer(i.position,3,c.FLOAT,false,0,0);c.bindBuffer(c.ARRAY_BUFFER,p.__webGLNormalBuffer);c.vertexAttribPointer(i.normal,3,c.FLOAT,false,0,0);if(i.tangent>=0){c.bindBuffer(c.ARRAY_BUFFER,p.__webGLTangentBuffer);
0);c.uniform1i(z.uniforms.enableMap,1)}else c.uniform1i(z.uniforms.enableMap,0);if(y){d(y,1);c.uniform1i(z.uniforms.tCube,1);c.uniform1i(z.uniforms.enableCubeMap,1)}else c.uniform1i(z.uniforms.enableCubeMap,0);i=z.attributes;c.bindBuffer(c.ARRAY_BUFFER,p.__webGLVertexBuffer);c.vertexAttribPointer(i.position,3,c.FLOAT,false,0,0);if(i.normal>=0){c.bindBuffer(c.ARRAY_BUFFER,p.__webGLNormalBuffer);c.vertexAttribPointer(i.normal,3,c.FLOAT,false,0,0)}if(i.tangent>=0){c.bindBuffer(c.ARRAY_BUFFER,p.__webGLTangentBuffer);
c.vertexAttribPointer(i.tangent,4,c.FLOAT,false,0,0)}if(i.uv>=0)if(p.__webGLUVBuffer){c.bindBuffer(c.ARRAY_BUFFER,p.__webGLUVBuffer);c.enableVertexAttribArray(i.uv);c.vertexAttribPointer(i.uv,2,c.FLOAT,false,0,0)}else c.disableVertexAttribArray(i.uv);if(u){c.lineWidth(s);c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,p.__webGLLineBuffer);c.drawElements(c.LINES,p.__webGLLineCount,c.UNSIGNED_SHORT,0)}else{c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,p.__webGLFaceBuffer);c.drawElements(c.TRIANGLES,p.__webGLFaceCount,c.UNSIGNED_SHORT,
0)}};this.renderPass=function(g,k,f,p,j,i){var u,s,G,y,H;G=0;for(y=f.material.length;G<y;G++){u=f.material[G];if(u instanceof THREE.MeshFaceMaterial){u=0;for(s=p.material.length;u<s;u++)if((H=p.material[u])&&H.blending==j&&H.opacity<1==i){this.setBlending(H.blending);this.renderBuffer(g,k,H,p)}}else if((H=u)&&H.blending==j&&H.opacity<1==i){this.setBlending(H.blending);this.renderBuffer(g,k,H,p)}}};this.render=function(g,k){var f,p,j,i,u=g.lights;this.initWebGLObjects(g);this.autoClear&&this.clear();
k.autoUpdateMatrix&&k.updateMatrix();f=0;for(p=g.__webGLObjects.length;f<p;f++){j=g.__webGLObjects[f];i=j.object;j=j.buffer;if(i.visible){this.setupMatrices(i,k);this.renderPass(k,u,i,j,THREE.NormalBlending,false)}}f=0;for(p=g.__webGLObjects.length;f<p;f++){j=g.__webGLObjects[f];i=j.object;j=j.buffer;if(i.visible){this.setupMatrices(i,k);this.renderPass(k,u,i,j,THREE.AdditiveBlending,false);this.renderPass(k,u,i,j,THREE.SubtractiveBlending,false);this.renderPass(k,u,i,j,THREE.AdditiveBlending,true);
......
......@@ -167,7 +167,7 @@ f.program}else A=y;if(A!=B){c.useProgram(A);B=A}A==y&&this.setupLights(A,l);this
6?d(Q,H):e(Q,H)}}}if(f instanceof THREE.MeshPhongMaterial||f instanceof THREE.MeshLambertMaterial||f instanceof THREE.MeshBasicMaterial){j=f.color;i=f.opacity;u=f.wireframe;t=f.wireframe_linewidth;G=f.map;z=f.env_map;l=f.combine==THREE.MixOperation;g=f.reflectivity;Q=f.env_map&&f.env_map.mapping instanceof THREE.CubeRefractionMapping;H=f.refraction_ratio;c.uniform4f(A.uniforms.mColor,j.r*i,j.g*i,j.b*i,i);c.uniform1i(A.uniforms.mixEnvMap,l);c.uniform1f(A.uniforms.mReflectivity,g);c.uniform1i(A.uniforms.useRefract,
Q);c.uniform1f(A.uniforms.mRefractionRatio,H)}if(f instanceof THREE.MeshNormalMaterial){i=f.opacity;c.uniform1f(A.uniforms.mOpacity,i);c.uniform1i(A.uniforms.material,4)}else if(f instanceof THREE.MeshDepthMaterial){i=f.opacity;u=f.wireframe;t=f.wireframe_linewidth;c.uniform1f(A.uniforms.mOpacity,i);c.uniform1f(A.uniforms.m2Near,f.__2near);c.uniform1f(A.uniforms.mFarPlusNear,f.__farPlusNear);c.uniform1f(A.uniforms.mFarMinusNear,f.__farMinusNear);c.uniform1i(A.uniforms.material,3)}else if(f instanceof
THREE.MeshPhongMaterial){j=f.ambient;g=f.specular;f=f.shininess;c.uniform4f(A.uniforms.mAmbient,j.r,j.g,j.b,i);c.uniform4f(A.uniforms.mSpecular,g.r,g.g,g.b,i);c.uniform1f(A.uniforms.mShininess,f);c.uniform1i(A.uniforms.material,2)}else if(f instanceof THREE.MeshLambertMaterial)c.uniform1i(A.uniforms.material,1);else if(f instanceof THREE.MeshBasicMaterial)c.uniform1i(A.uniforms.material,0);else if(f instanceof THREE.MeshCubeMaterial){c.uniform1i(A.uniforms.material,5);z=f.env_map}if(G){e(G,0);c.uniform1i(A.uniforms.tMap,
0);c.uniform1i(A.uniforms.enableMap,1)}else c.uniform1i(A.uniforms.enableMap,0);if(z){d(z,1);c.uniform1i(A.uniforms.tCube,1);c.uniform1i(A.uniforms.enableCubeMap,1)}else c.uniform1i(A.uniforms.enableCubeMap,0);i=A.attributes;c.bindBuffer(c.ARRAY_BUFFER,p.__webGLVertexBuffer);c.vertexAttribPointer(i.position,3,c.FLOAT,false,0,0);c.bindBuffer(c.ARRAY_BUFFER,p.__webGLNormalBuffer);c.vertexAttribPointer(i.normal,3,c.FLOAT,false,0,0);if(i.tangent>=0){c.bindBuffer(c.ARRAY_BUFFER,p.__webGLTangentBuffer);
0);c.uniform1i(A.uniforms.enableMap,1)}else c.uniform1i(A.uniforms.enableMap,0);if(z){d(z,1);c.uniform1i(A.uniforms.tCube,1);c.uniform1i(A.uniforms.enableCubeMap,1)}else c.uniform1i(A.uniforms.enableCubeMap,0);i=A.attributes;c.bindBuffer(c.ARRAY_BUFFER,p.__webGLVertexBuffer);c.vertexAttribPointer(i.position,3,c.FLOAT,false,0,0);if(i.normal>=0){c.bindBuffer(c.ARRAY_BUFFER,p.__webGLNormalBuffer);c.vertexAttribPointer(i.normal,3,c.FLOAT,false,0,0)}if(i.tangent>=0){c.bindBuffer(c.ARRAY_BUFFER,p.__webGLTangentBuffer);
c.vertexAttribPointer(i.tangent,4,c.FLOAT,false,0,0)}if(i.uv>=0)if(p.__webGLUVBuffer){c.bindBuffer(c.ARRAY_BUFFER,p.__webGLUVBuffer);c.enableVertexAttribArray(i.uv);c.vertexAttribPointer(i.uv,2,c.FLOAT,false,0,0)}else c.disableVertexAttribArray(i.uv);if(u){c.lineWidth(t);c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,p.__webGLLineBuffer);c.drawElements(c.LINES,p.__webGLLineCount,c.UNSIGNED_SHORT,0)}else{c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,p.__webGLFaceBuffer);c.drawElements(c.TRIANGLES,p.__webGLFaceCount,c.UNSIGNED_SHORT,
0)}};this.renderPass=function(g,l,f,p,j,i){var u,t,G,z,H;G=0;for(z=f.material.length;G<z;G++){u=f.material[G];if(u instanceof THREE.MeshFaceMaterial){u=0;for(t=p.material.length;u<t;u++)if((H=p.material[u])&&H.blending==j&&H.opacity<1==i){this.setBlending(H.blending);this.renderBuffer(g,l,H,p)}}else if((H=u)&&H.blending==j&&H.opacity<1==i){this.setBlending(H.blending);this.renderBuffer(g,l,H,p)}}};this.render=function(g,l){var f,p,j,i,u=g.lights;this.initWebGLObjects(g);this.autoClear&&this.clear();
l.autoUpdateMatrix&&l.updateMatrix();f=0;for(p=g.__webGLObjects.length;f<p;f++){j=g.__webGLObjects[f];i=j.object;j=j.buffer;if(i.visible){this.setupMatrices(i,l);this.renderPass(l,u,i,j,THREE.NormalBlending,false)}}f=0;for(p=g.__webGLObjects.length;f<p;f++){j=g.__webGLObjects[f];i=j.object;j=j.buffer;if(i.visible){this.setupMatrices(i,l);this.renderPass(l,u,i,j,THREE.AdditiveBlending,false);this.renderPass(l,u,i,j,THREE.SubtractiveBlending,false);this.renderPass(l,u,i,j,THREE.AdditiveBlending,true);
......
此差异已折叠。
......@@ -539,8 +539,12 @@ THREE.WebGLRenderer = function ( scene ) {
// normals
_gl.bindBuffer( _gl.ARRAY_BUFFER, geometryChunk.__webGLNormalBuffer );
_gl.vertexAttribPointer( attributes.normal, 3, _gl.FLOAT, false, 0, 0 );
if ( attributes.normal >= 0 ) {
_gl.bindBuffer( _gl.ARRAY_BUFFER, geometryChunk.__webGLNormalBuffer );
_gl.vertexAttribPointer( attributes.normal, 3, _gl.FLOAT, false, 0, 0 );
}
// tangents
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册