提交 548289b3 编写于 作者: A alteredq

Fixed remaining extras/geometries, GeometryUtils and few examples.

上级 8546a3bd
此差异已折叠。
......@@ -39,9 +39,92 @@
<div id="container"><br /><br /><br /><br /><br />Generating world...</div>
<div id="info"><a href="http://github.com/mrdoob/three.js" target="_blank">three.js</a> - <a href="http://www.minecraft.net/" target="_blank">minecraft</a> demo. featuring <a href="http://painterlypack.net/" target="_blank">painterly pack</a><br />(left click: forward, right click: backward)</div>
<!--
<script type="text/javascript" src="../build/Three.js"></script>
-->
<script type="text/javascript" src="../src/Three.js"></script>
<script type="text/javascript" src="../src/core/Color.js"></script>
<script type="text/javascript" src="../src/core/Vector2.js"></script>
<script type="text/javascript" src="../src/core/Vector3.js"></script>
<script type="text/javascript" src="../src/core/Vector4.js"></script>
<script type="text/javascript" src="../src/core/Ray.js"></script>
<script type="text/javascript" src="../src/core/Rectangle.js"></script>
<script type="text/javascript" src="../src/core/Matrix3.js"></script>
<script type="text/javascript" src="../src/core/Matrix4.js"></script>
<script type="text/javascript" src="../src/core/Object3D.js"></script>
<script type="text/javascript" src="../src/core/Quaternion.js"></script>
<script type="text/javascript" src="../src/core/Vertex.js"></script>
<script type="text/javascript" src="../src/core/Face3.js"></script>
<script type="text/javascript" src="../src/core/Face4.js"></script>
<script type="text/javascript" src="../src/core/UV.js"></script>
<script type="text/javascript" src="../src/core/Geometry.js"></script>
<script type="text/javascript" src="../src/core/Spline.js"></script>
<script type="text/javascript" src="../src/animation/AnimationHandler.js"></script>
<script type="text/javascript" src="../src/animation/Animation.js"></script>
<script type="text/javascript" src="../src/cameras/Camera.js"></script>
<script type="text/javascript" src="../src/lights/Light.js"></script>
<script type="text/javascript" src="../src/lights/AmbientLight.js"></script>
<script type="text/javascript" src="../src/lights/DirectionalLight.js"></script>
<script type="text/javascript" src="../src/lights/PointLight.js"></script>
<script type="text/javascript" src="../src/materials/Material.js"></script>
<script type="text/javascript" src="../src/materials/Mappings.js"></script>
<script type="text/javascript" src="../src/materials/LineBasicMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshBasicMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshLambertMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshPhongMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshDepthMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshNormalMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshFaceMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshShaderMaterial.js"></script>
<script type="text/javascript" src="../src/materials/ParticleBasicMaterial.js"></script>
<script type="text/javascript" src="../src/materials/ParticleCanvasMaterial.js"></script>
<script type="text/javascript" src="../src/materials/ParticleDOMMaterial.js"></script>
<script type="text/javascript" src="../src/materials/Texture.js"></script>
<script type="text/javascript" src="../src/materials/RenderTarget.js"></script>
<script type="text/javascript" src="../src/materials/Uniforms.js"></script>
<script type="text/javascript" src="../src/objects/Particle.js"></script>
<script type="text/javascript" src="../src/objects/ParticleSystem.js"></script>
<script type="text/javascript" src="../src/objects/Line.js"></script>
<script type="text/javascript" src="../src/objects/Mesh.js"></script>
<script type="text/javascript" src="../src/objects/Bone.js"></script>
<script type="text/javascript" src="../src/objects/SkinnedMesh.js"></script>
<script type="text/javascript" src="../src/objects/Ribbon.js"></script>
<script type="text/javascript" src="../src/objects/Sound.js"></script>
<script type="text/javascript" src="../src/objects/LOD.js"></script>
<script type="text/javascript" src="../src/scenes/Scene.js"></script>
<script type="text/javascript" src="../src/scenes/Fog.js"></script>
<script type="text/javascript" src="../src/scenes/FogExp2.js"></script>
<script type="text/javascript" src="../src/renderers/Projector.js"></script>
<script type="text/javascript" src="../src/renderers/DOMRenderer.js"></script>
<script type="text/javascript" src="../src/renderers/CanvasRenderer.js"></script>
<script type="text/javascript" src="../src/renderers/SVGRenderer.js"></script>
<script type="text/javascript" src="../src/renderers/WebGLShaders.js"></script>
<script type="text/javascript" src="../src/renderers/WebGLRenderer.js"></script>
<script type="text/javascript" src="../src/renderers/SoundRenderer.js"></script>
<script type="text/javascript" src="../src/renderers/renderables/RenderableVertex.js"></script>
<script type="text/javascript" src="../src/renderers/renderables/RenderableFace3.js"></script>
<script type="text/javascript" src="../src/renderers/renderables/RenderableObject.js"></script>
<script type="text/javascript" src="../src/renderers/renderables/RenderableParticle.js"></script>
<script type="text/javascript" src="../src/renderers/renderables/RenderableLine.js"></script>
<script type="text/javascript" src="../src/extras/GeometryUtils.js"></script>
<script type="text/javascript" src="../src/extras/ImageUtils.js"></script>
<script type="text/javascript" src="../src/extras/SceneUtils.js"></script>
<script type="text/javascript" src="../src/extras/ShaderUtils.js"></script>
<script type="text/javascript" src="../src/extras/cameras/QuakeCamera.js"></script>
<script type="text/javascript" src="../src/extras/cameras/PathCamera.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Cube.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Cylinder.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Icosahedron.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Lathe.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Plane.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Sphere.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Torus.js"></script>
<script type="text/javascript" src="../src/extras/geometries/TorusKnot.js"></script>
<script type="text/javascript" src="../src/extras/io/Loader.js"></script>
<script type="text/javascript" src="../src/extras/io/JSONLoader.js"></script>
<script type="text/javascript" src="../src/extras/io/BinaryLoader.js"></script>
<script type="text/javascript" src="../src/extras/objects/MarchingCubes.js"></script>
<script type="text/javascript" src="js/ImprovedNoise.js"></script>
<script type="text/javascript" src="js/Detector.js"></script>
......
......@@ -291,7 +291,7 @@
function setUVTile( face, s, t ) {
var j, uv = cube.uvs[ face ];
var j, uv = cube.faceVertexUvs[ 0 ][ face ];
for ( j = 0; j < uv.length; j++ ) {
uv[ j ].u += s * (unit+2*padding);
......@@ -372,9 +372,9 @@
// set UV tiles
for ( i = 0; i < cube.uvs.length; i++ ) {
for ( i = 0; i < cube.faceVertexUvs[ 0 ].length; i++ ) {
uv = cube.uvs[ i ];
uv = cube.faceVertexUvs[ 0 ][ i ];
for ( j = 0; j < uv.length; j++ ) {
......
......@@ -42,91 +42,8 @@
<pre id="log"></pre>
<!--
<script type="text/javascript" src="../build/Three.js"></script>
-->
<script type="text/javascript" src="../src/Three.js"></script>
<script type="text/javascript" src="../src/core/Color.js"></script>
<script type="text/javascript" src="../src/core/Vector2.js"></script>
<script type="text/javascript" src="../src/core/Vector3.js"></script>
<script type="text/javascript" src="../src/core/Vector4.js"></script>
<script type="text/javascript" src="../src/core/Ray.js"></script>
<script type="text/javascript" src="../src/core/Rectangle.js"></script>
<script type="text/javascript" src="../src/core/Matrix3.js"></script>
<script type="text/javascript" src="../src/core/Matrix4.js"></script>
<script type="text/javascript" src="../src/core/Object3D.js"></script>
<script type="text/javascript" src="../src/core/Quaternion.js"></script>
<script type="text/javascript" src="../src/core/Vertex.js"></script>
<script type="text/javascript" src="../src/core/Face3.js"></script>
<script type="text/javascript" src="../src/core/Face4.js"></script>
<script type="text/javascript" src="../src/core/UV.js"></script>
<script type="text/javascript" src="../src/core/Geometry.js"></script>
<script type="text/javascript" src="../src/core/Spline.js"></script>
<script type="text/javascript" src="../src/animation/AnimationHandler.js"></script>
<script type="text/javascript" src="../src/animation/Animation.js"></script>
<script type="text/javascript" src="../src/cameras/Camera.js"></script>
<script type="text/javascript" src="../src/lights/Light.js"></script>
<script type="text/javascript" src="../src/lights/AmbientLight.js"></script>
<script type="text/javascript" src="../src/lights/DirectionalLight.js"></script>
<script type="text/javascript" src="../src/lights/PointLight.js"></script>
<script type="text/javascript" src="../src/materials/Material.js"></script>
<script type="text/javascript" src="../src/materials/Mappings.js"></script>
<script type="text/javascript" src="../src/materials/LineBasicMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshBasicMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshLambertMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshPhongMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshDepthMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshNormalMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshFaceMaterial.js"></script>
<script type="text/javascript" src="../src/materials/MeshShaderMaterial.js"></script>
<script type="text/javascript" src="../src/materials/ParticleBasicMaterial.js"></script>
<script type="text/javascript" src="../src/materials/ParticleCircleMaterial.js"></script>
<script type="text/javascript" src="../src/materials/ParticleDOMMaterial.js"></script>
<script type="text/javascript" src="../src/materials/Texture.js"></script>
<script type="text/javascript" src="../src/materials/RenderTarget.js"></script>
<script type="text/javascript" src="../src/materials/Uniforms.js"></script>
<script type="text/javascript" src="../src/objects/Particle.js"></script>
<script type="text/javascript" src="../src/objects/ParticleSystem.js"></script>
<script type="text/javascript" src="../src/objects/Line.js"></script>
<script type="text/javascript" src="../src/objects/Mesh.js"></script>
<script type="text/javascript" src="../src/objects/Bone.js"></script>
<script type="text/javascript" src="../src/objects/SkinnedMesh.js"></script>
<script type="text/javascript" src="../src/objects/Ribbon.js"></script>
<script type="text/javascript" src="../src/objects/Sound.js"></script>
<script type="text/javascript" src="../src/objects/LOD.js"></script>
<script type="text/javascript" src="../src/scenes/Scene.js"></script>
<script type="text/javascript" src="../src/scenes/Fog.js"></script>
<script type="text/javascript" src="../src/scenes/FogExp2.js"></script>
<script type="text/javascript" src="../src/renderers/Projector.js"></script>
<script type="text/javascript" src="../src/renderers/DOMRenderer.js"></script>
<script type="text/javascript" src="../src/renderers/CanvasRenderer.js"></script>
<script type="text/javascript" src="../src/renderers/SVGRenderer.js"></script>
<script type="text/javascript" src="../src/renderers/WebGLShaders.js"></script>
<script type="text/javascript" src="../src/renderers/WebGLRenderer.js"></script>
<script type="text/javascript" src="../src/renderers/SoundRenderer.js"></script>
<script type="text/javascript" src="../src/renderers/renderables/RenderableObject.js"></script>
<script type="text/javascript" src="../src/renderers/renderables/RenderableFace3.js"></script>
<script type="text/javascript" src="../src/renderers/renderables/RenderableParticle.js"></script>
<script type="text/javascript" src="../src/renderers/renderables/RenderableLine.js"></script>
<script type="text/javascript" src="../src/extras/GeometryUtils.js"></script>
<script type="text/javascript" src="../src/extras/ImageUtils.js"></script>
<script type="text/javascript" src="../src/extras/SceneUtils.js"></script>
<script type="text/javascript" src="../src/extras/ShaderUtils.js"></script>
<script type="text/javascript" src="../src/extras/cameras/QuakeCamera.js"></script>
<script type="text/javascript" src="../src/extras/cameras/PathCamera.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Cube.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Cylinder.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Icosahedron.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Lathe.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Plane.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Sphere.js"></script>
<script type="text/javascript" src="../src/extras/geometries/Torus.js"></script>
<script type="text/javascript" src="../src/extras/geometries/TorusKnot.js"></script>
<script type="text/javascript" src="../src/extras/io/Loader.js"></script>
<script type="text/javascript" src="../src/extras/io/JSONLoader.js"></script>
<script type="text/javascript" src="../src/extras/io/BinaryLoader.js"></script>
<script type="text/javascript" src="../src/extras/objects/MarchingCubes.js"></script>
<script type="text/javascript" src="js/Detector.js"></script>
<script type="text/javascript" src="js/RequestAnimationFrame.js"></script>
<script type="text/javascript" src="js/Stats.js"></script>
......@@ -279,8 +196,8 @@
callbackMale = function( geometry ) { createScene( geometry, 90, 50, FLOOR, 105 ) },
callbackFemale = function( geometry ) { createScene( geometry, -80, 50, FLOOR, 0 ) };
//loader.load( { model: "obj/male02/Male02_slim.js", callback: callbackMale } );
//loader.load( { model: "obj/female02/Female02_slim.js", callback: callbackFemale } );
loader.load( { model: "obj/male02/Male02_slim.js", callback: callbackMale } );
loader.load( { model: "obj/female02/Female02_slim.js", callback: callbackFemale } );
//loader.loadBinary( { model: "obj/male02/Male02_bin.js", callback: callbackMale } );
//loader.loadBinary( { model: "obj/female02/Female02_bin.js", callback: callbackFemale } );
......
......@@ -14,8 +14,8 @@ THREE.Geometry = function () {
this.faces = [];
this.faceUvs = [];
this.faceVertexUvs = [];
this.faceUvs = [[]];
this.faceVertexUvs = [[]];
this.morphTargets = [];
......
......@@ -5,14 +5,14 @@ var GeometryUtils = {
var isMesh = object2 instanceof THREE.Mesh,
vertexPosition = geometry1.vertices.length,
facePosition = geometry1.faces.length,
uvPosition = geometry1.uvs.length,
uvPosition = geometry1.faceVertexUvs[ 0 ].length,
geometry2 = isMesh ? object2.geometry : object2,
vertices1 = geometry1.vertices,
vertices2 = geometry2.vertices,
faces1 = geometry1.faces,
faces2 = geometry2.faces,
uvs1 = geometry1.uvs,
uvs2 = geometry2.uvs;
uvs1 = geometry1.faceVertexUvs[ 0 ],
uvs2 = geometry2.faceVertexUvs[ 0 ];
isMesh && object2.matrixAutoUpdate && object2.updateMatrix();
......
......@@ -6,7 +6,7 @@
var Cube = function ( width, height, depth, segmentsWidth, segmentsHeight, segmentsDepth, materials, flipped, sides ) {
THREE.Geometry.call( this );
var scope = this,
width_half = width / 2,
height_half = height / 2,
......@@ -106,8 +106,6 @@ var Cube = function ( width, height, depth, segmentsWidth, segmentsHeight, segme
}
}
scope.faceVertexUvs[ 0 ] = [];
for( iy = 0; iy < gridY; iy++ ) {
......
......@@ -5,7 +5,7 @@
function Lathe( points, steps, angle ) {
THREE.Geometry.call( this );
this.steps = steps || 12;
this.angle = angle || 2 * Math.PI;
......@@ -47,7 +47,7 @@ function Lathe( points, steps, angle ) {
for ( var j = 0; j < oldInds.length - 1; j ++ ) {
this.faces.push( new THREE.Face4( newInds[ j ], newInds[ j + 1 ], oldInds[ j + 1 ], oldInds[ j ] ) );
this.uvs.push( [
this.faceVertexUvs[ 0 ].push( [
new THREE.UV( r / angle, j / points.length ),
new THREE.UV( r / angle, ( j + 1 ) / points.length ),
......
......@@ -30,8 +30,6 @@ var Plane = function ( width, height, segmentsWidth, segmentsHeight ) {
}
}
this.faceVertexUvs[ 0 ] = [];
for( iy = 0; iy < gridY; iy++ ) {
......
......@@ -45,8 +45,6 @@ var Sphere = function ( radius, segmentsWidth, segmentsHeight ) {
var n1, n2, n3, iVerNum = aVtc.length;
this.faceVertexUvs[ 0 ] = [];
for ( j = 0; j < iVerNum; j++ ) {
var iHorNum = aVtc[ j ].length;
......
......@@ -13,55 +13,66 @@ var Torus = function ( radius, tube, segmentsR, segmentsT ) {
this.segmentsT = segmentsT || 6;
var temp_uv = [];
THREE.Geometry.call( this );
THREE.Geometry.call(this);
for ( var j = 0; j <= this.segmentsR; ++j ) {
for ( var i = 0; i <= this.segmentsT; ++i ) {
for (var j = 0; j <= this.segmentsR; ++j) {
for (var i = 0; i <= this.segmentsT; ++i) {
var u = i / this.segmentsT * 2 * Math.PI;
var v = j / this.segmentsR * 2 * Math.PI;
var x = (this.radius + this.tube*Math.cos(v))*Math.cos(u);
var y = (this.radius + this.tube*Math.cos(v))*Math.sin(u);
var z = this.tube*Math.sin(v);
vert(x, y, z);
vert( x, y, z );
temp_uv.push( [i/this.segmentsT, 1 - j/this.segmentsR] );
temp_uv.push([i/this.segmentsT, 1 - j/this.segmentsR]);
}
}
for (var j = 1; j <= this.segmentsR; ++j) {
for (var i = 1; i <= this.segmentsT; ++i) {
for ( var j = 1; j <= this.segmentsR; ++j ) {
for ( var i = 1; i <= this.segmentsT; ++i ) {
var a = (this.segmentsT + 1)*j + i;
var b = (this.segmentsT + 1)*j + i - 1;
var c = (this.segmentsT + 1)*(j - 1) + i - 1;
var d = (this.segmentsT + 1)*(j - 1) + i;
f4(a,b,c,d);
f4( a, b, c,d );
this.uvs.push( [new THREE.UV( temp_uv[a][0], temp_uv[a][1] ),
this.faceVertexUvs[ 0 ].push( [new THREE.UV( temp_uv[a][0], temp_uv[a][1] ),
new THREE.UV( temp_uv[b][0], temp_uv[b][1] ),
new THREE.UV( temp_uv[c][0], temp_uv[c][1] ),
new THREE.UV( temp_uv[d][0], temp_uv[d][1] )
] );
}
}
delete temp_uv;
this.computeCentroids();
this.computeFaceNormals();
this.computeVertexNormals();
function vert( x, y, z ) {
scope.vertices.push( new THREE.Vertex( new THREE.Vector3( x, y, z ) ) );
}
};
function f4( a, b, c, d ) {
scope.faces.push( new THREE.Face4( a, b, c, d ) );
}
}
};
};
Torus.prototype = new THREE.Geometry();
Torus.prototype.constructor = Torus;
......@@ -7,7 +7,7 @@ var TorusKnot = function ( radius, tube, segmentsR, segmentsT, p, q, heightScale
var scope = this;
THREE.Geometry.call( this );
this.radius = radius || 200;
this.tube = tube || 40;
this.segmentsR = segmentsR || 64;
......@@ -26,6 +26,7 @@ var TorusKnot = function ( radius, tube, segmentsR, segmentsT, p, q, heightScale
this.grid[ i ] = new Array( this.segmentsT );
for ( var j = 0; j < this.segmentsT; ++ j ) {
var u = i / this.segmentsR * 2 * this.p * Math.PI;
var v = j / this.segmentsT * 2 * Math.PI;
var p = getPos( u, v, this.q, this.p, this.radius, this.heightScale );
......@@ -66,10 +67,12 @@ var TorusKnot = function ( radius, tube, segmentsR, segmentsT, p, q, heightScale
var uvc = new THREE.UV( i / this.segmentsR, ( j + 1 ) / this.segmentsT );
var uvd = new THREE.UV( ( i + 1 ) / this.segmentsR, ( j + 1 ) / this.segmentsT );
f3(a, b, c);
this.uvs.push( [ uva,uvb,uvc ] );
f3(d, c, b);
this.uvs.push( [ uvd,uvc,uvb ] );
f3( a, b, c );
this.faceVertexUvs[ 0 ].push( [ uva,uvb,uvc ] );
f3( d, c, b );
this.faceVertexUvs[ 0 ].push( [ uvd,uvc,uvb ] );
}
}
......@@ -106,7 +109,7 @@ var TorusKnot = function ( radius, tube, segmentsR, segmentsT, p, q, heightScale
}
}
};
TorusKnot.prototype = new THREE.Geometry();
TorusKnot.prototype.constructor = TorusKnot;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册