Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
92229405
T
three.js
项目概览
车家大少爷
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
92229405
编写于
10月 21, 2012
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Updated builds.
上级
7a2ba175
变更
2
展开全部
隐藏空白更改
内联
并排
Showing
2 changed file
with
691 addition
and
623 deletion
+691
-623
build/three.js
build/three.js
+207
-141
build/three.min.js
build/three.min.js
+484
-482
未找到文件。
build/three.js
浏览文件 @
92229405
...
...
@@ -3,7 +3,7 @@
* @author Larry Battle / http://bateru.com/news
*/
var THREE = THREE || { REVISION: '5
2
' };
var THREE = THREE || { REVISION: '5
3dev
' };
self.console = self.console || {
...
...
@@ -4865,7 +4865,8 @@ THREE.Geometry = function () {
this.name = '';
this.vertices = [];
this.colors = []; // one-to-one vertex colors, used in ParticleSystem, Line and Ribbon
this.colors = []; // one-to-one vertex colors, used in ParticleSystem, Line and Ribbon
this.normals = []; // one-to-one vertex normals, used in Ribbon
this.materials = [];
...
...
@@ -4886,7 +4887,7 @@ THREE.Geometry = function () {
this.hasTangents = false;
this.dynamic = true; // the intermediate typearrays will be deleted when set to false
this.dynamic = true; // the intermediate type
d
arrays will be deleted when set to false
// update flags
...
...
@@ -4897,6 +4898,8 @@ THREE.Geometry = function () {
this.tangentsNeedUpdate = false;
this.colorsNeedUpdate = false;
this.buffersNeedUpdate = false;
};
THREE.Geometry.prototype = {
...
...
@@ -7780,6 +7783,8 @@ THREE.JSONLoader = function ( showStatus ) {
THREE.Loader.call( this, showStatus );
this.withCredentials = false;
};
THREE.JSONLoader.prototype = Object.create( THREE.Loader.prototype );
...
...
@@ -7801,6 +7806,8 @@ THREE.JSONLoader.prototype.loadAjaxJSON = function ( context, url, callback, tex
var length = 0;
xhr.withCredentials = this.withCredentials;
xhr.onreadystatechange = function () {
if ( xhr.readyState === xhr.DONE ) {
...
...
@@ -8985,11 +8992,11 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
var urlBase = THREE.Loader.prototype.extractUrlBase( url );
var dg, dm, d
l, d
c, df, dt,
var dg, dm, dc, df, dt,
g, m, l, d, p, r, q, s, c, t, f, tt, pp, u,
geometry, material, camera, fog,
texture, images,
light,
light,
hex, intensity,
counter_models, counter_textures,
total_models, total_textures,
result;
...
...
@@ -9083,6 +9090,8 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
var object = null;
// meshes
if ( o.geometry !== undefined ) {
geometry = result.geometries[ o.geometry ];
...
...
@@ -9205,6 +9214,69 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
}
// lights
} else if ( o.type === "DirectionalLight" || o.type === "PointLight" || o.type === "AmbientLight" ) {
hex = ( o.color !== undefined ) ? o.color : 0xffffff;
intensity = ( o.intensity !== undefined ) ? o.intensity : 1;
if ( o.type === "DirectionalLight" ) {
p = o.direction;
light = new THREE.DirectionalLight( hex, intensity );
light.position.set( p[0], p[1], p[2] );
light.position.normalize();
} else if ( o.type === "PointLight" ) {
p = o.position;
d = o.distance;
light = new THREE.PointLight( hex, intensity, d );
light.position.set( p[0], p[1], p[2] );
} else if ( o.type === "AmbientLight" ) {
light = new THREE.AmbientLight( hex );
}
parent.add( light );
light.name = dd;
result.lights[ dd ] = light;
result.objects[ dd ] = light;
// cameras
} else if ( o.type === "PerspectiveCamera" || o.type === "OrthographicCamera" ) {
if ( o.type === "PerspectiveCamera" ) {
camera = new THREE.PerspectiveCamera( o.fov, o.aspect, o.near, o.far );
} else if ( o.type === "OrthographicCamera" ) {
camera = new THREE.OrthographicCamera( c.left, c.right, c.top, c.bottom, c.near, c.far );
}
p = o.position;
t = o.target;
u = o.up;
camera.position.set( p[0], p[1], p[2] );
camera.target = new THREE.Vector3( t[0], t[1], t[2] );
if ( u ) camera.up.set( u[0], u[1], u[2] );
parent.add( camera );
camera.name = dd;
result.cameras[ dd ] = camera;
result.objects[ dd ] = camera;
// pure Object3D
} else {
...
...
@@ -9350,73 +9422,6 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
// first go synchronous elements
// cameras
for( dc in data.cameras ) {
c = data.cameras[ dc ];
if ( c.type === "perspective" ) {
camera = new THREE.PerspectiveCamera( c.fov, c.aspect, c.near, c.far );
} else if ( c.type === "ortho" ) {
camera = new THREE.OrthographicCamera( c.left, c.right, c.top, c.bottom, c.near, c.far );
}
p = c.position;
t = c.target;
u = c.up;
camera.position.set( p[0], p[1], p[2] );
camera.target = new THREE.Vector3( t[0], t[1], t[2] );
if ( u ) camera.up.set( u[0], u[1], u[2] );
result.cameras[ dc ] = camera;
}
// lights
var hex, intensity;
for ( dl in data.lights ) {
l = data.lights[ dl ];
hex = ( l.color !== undefined ) ? l.color : 0xffffff;
intensity = ( l.intensity !== undefined ) ? l.intensity : 1;
if ( l.type === "directional" ) {
p = l.direction;
light = new THREE.DirectionalLight( hex, intensity );
light.position.set( p[0], p[1], p[2] );
light.position.normalize();
} else if ( l.type === "point" ) {
p = l.position;
d = l.distance;
light = new THREE.PointLight( hex, intensity, d );
light.position.set( p[0], p[1], p[2] );
} else if ( l.type === "ambient" ) {
light = new THREE.AmbientLight( hex );
}
result.scene.add( light );
result.lights[ dl ] = light;
}
// fogs
for( df in data.fogs ) {
...
...
@@ -9440,26 +9445,6 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
}
// defaults
if ( result.cameras && data.defaults.camera ) {
result.currentCamera = result.cameras[ data.defaults.camera ];
}
if ( result.fogs && data.defaults.fog ) {
result.scene.fog = result.fogs[ data.defaults.fog ];
}
c = data.defaults.bgcolor;
result.bgColor = new THREE.Color();
result.bgColor.setRGB( c[0], c[1], c[2] );
result.bgColorAlpha = data.defaults.bgalpha;
// now come potentially asynchronous elements
// geometries
...
...
@@ -9488,17 +9473,17 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
if ( g.type === "cube" ) {
geometry = new THREE.CubeGeometry( g.width, g.height, g.depth, g.
segmentsWidth, g.segmentsHeight, g.segmentsDepth
, null, g.flipped, g.sides );
geometry = new THREE.CubeGeometry( g.width, g.height, g.depth, g.
widthSegments, g.heightSegments, g.depthSegments
, null, g.flipped, g.sides );
result.geometries[ dg ] = geometry;
} else if ( g.type === "plane" ) {
geometry = new THREE.PlaneGeometry( g.width, g.height, g.
segmentsWidth, g.segmentsHeight
);
geometry = new THREE.PlaneGeometry( g.width, g.height, g.
widthSegments, g.heightSegments
);
result.geometries[ dg ] = geometry;
} else if ( g.type === "sphere" ) {
geometry = new THREE.SphereGeometry( g.radius, g.
segmentsWidth, g.segmentsHeight
);
geometry = new THREE.SphereGeometry( g.radius, g.
widthSegments, g.heightSegments
);
result.geometries[ dg ] = geometry;
} else if ( g.type === "cylinder" ) {
...
...
@@ -9830,6 +9815,26 @@ THREE.SceneLoader.prototype.parse = function ( json, callbackFinished, url ) {
handle_objects();
// defaults
if ( result.cameras && data.defaults.camera ) {
result.currentCamera = result.cameras[ data.defaults.camera ];
}
if ( result.fogs && data.defaults.fog ) {
result.scene.fog = result.fogs[ data.defaults.fog ];
}
c = data.defaults.bgcolor;
result.bgColor = new THREE.Color();
result.bgColor.setRGB( c[0], c[1], c[2] );
result.bgColorAlpha = data.defaults.bgalpha;
// synchronous callback
scope.callbackSync( result );
...
...
@@ -10765,6 +10770,8 @@ THREE.Texture = function ( image, mapping, wrapS, wrapT, magFilter, minFilter, f
this.id = THREE.TextureIdCount ++;
this.name = '';
this.image = image;
this.mapping = mapping !== undefined ? mapping : new THREE.UVMapping();
...
...
@@ -16036,6 +16043,7 @@ THREE.WebGLRenderer = function ( parameters ) {
geometry.__webglVertexBuffer = _gl.createBuffer();
geometry.__webglColorBuffer = _gl.createBuffer();
geometry.__webglNormalBuffer = _gl.createBuffer();
_this.info.memory.geometries ++;
...
...
@@ -16110,6 +16118,7 @@ THREE.WebGLRenderer = function ( parameters ) {
_gl.deleteBuffer( geometry.__webglVertexBuffer );
_gl.deleteBuffer( geometry.__webglColorBuffer );
_gl.deleteBuffer( geometry.__webglNormalBuffer );
_this.info.memory.geometries --;
...
...
@@ -16251,6 +16260,7 @@ THREE.WebGLRenderer = function ( parameters ) {
geometry.__vertexArray = new Float32Array( nvertices * 3 );
geometry.__colorArray = new Float32Array( nvertices * 3 );
geometry.__normalArray = new Float32Array( nvertices * 3 );
geometry.__webglVertexCount = nvertices;
...
...
@@ -16375,7 +16385,7 @@ THREE.WebGLRenderer = function ( parameters ) {
}
if( !attribute.__webglInitialized || attribute.createUniqueBuffers ) {
if
( !attribute.__webglInitialized || attribute.createUniqueBuffers ) {
attribute.__webglInitialized = true;
...
...
@@ -16985,18 +16995,23 @@ THREE.WebGLRenderer = function ( parameters ) {
function setRibbonBuffers ( geometry, hint ) {
var v, c,
vertex, offset, color
,
var v, c,
n, vertex, offset, color, normal
,
vertices = geometry.vertices,
colors = geometry.colors,
normals = geometry.normals,
vl = vertices.length,
cl = colors.length,
nl = normals.length,
vertexArray = geometry.__vertexArray,
colorArray = geometry.__colorArray,
normalArray = geometry.__normalArray,
dirtyVertices = geometry.verticesNeedUpdate,
dirtyColors = geometry.colorsNeedUpdate;
dirtyColors = geometry.colorsNeedUpdate,
dirtyNormals = geometry.normalsNeedUpdate;
if ( dirtyVertices ) {
...
...
@@ -17036,6 +17051,25 @@ THREE.WebGLRenderer = function ( parameters ) {
}
if ( dirtyNormals ) {
for ( n = 0; n < nl; n ++ ) {
normal = normals[ n ];
offset = n * 3;
normalArray[ offset ] = normal.x;
normalArray[ offset + 1 ] = normal.y;
normalArray[ offset + 2 ] = normal.z;
}
_gl.bindBuffer( _gl.ARRAY_BUFFER, geometry.__webglNormalBuffer );
_gl.bufferData( _gl.ARRAY_BUFFER, normalArray, hint );
}
};
function setMeshBuffers( geometryGroup, object, hint, dispose, material ) {
...
...
@@ -19742,6 +19776,7 @@ THREE.WebGLRenderer = function ( parameters ) {
geometry.verticesNeedUpdate = true;
geometry.colorsNeedUpdate = true;
geometry.normalsNeedUpdate = true;
}
...
...
@@ -19896,6 +19931,12 @@ THREE.WebGLRenderer = function ( parameters ) {
material = getBufferMaterial( object, geometryGroup );
if ( geometry.buffersNeedUpdate ) {
initMeshBuffers( geometryGroup, object );
}
customAttributesDirty = material.attributes && areCustomAttributesDirty( material );
if ( geometry.verticesNeedUpdate || geometry.morphTargetsNeedUpdate || geometry.elementsNeedUpdate ||
...
...
@@ -19916,13 +19957,15 @@ THREE.WebGLRenderer = function ( parameters ) {
geometry.colorsNeedUpdate = false;
geometry.tangentsNeedUpdate = false;
geometry.buffersNeedUpdate = false;
material.attributes && clearCustomAttributes( material );
}
} else if ( object instanceof THREE.Ribbon ) {
if ( geometry.verticesNeedUpdate || geometry.colorsNeedUpdate ) {
if ( geometry.verticesNeedUpdate || geometry.colorsNeedUpdate
|| geometry.normalsNeedUpdate
) {
setRibbonBuffers( geometry, _gl.DYNAMIC_DRAW );
...
...
@@ -19930,6 +19973,7 @@ THREE.WebGLRenderer = function ( parameters ) {
geometry.verticesNeedUpdate = false;
geometry.colorsNeedUpdate = false;
geometry.normalsNeedUpdate = false;
} else if ( object instanceof THREE.Line ) {
...
...
@@ -23834,6 +23878,8 @@ THREE.ImageUtils = {
loader.crossOrigin = this.crossOrigin;
loader.load( url, image );
texture.sourceFile = url;
return texture;
},
...
...
@@ -29247,14 +29293,23 @@ THREE.CircleGeometry.prototype = Object.create( THREE.Geometry.prototype );
* based on http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/papervision3d/objects/primitives/Cube.as
*/
THREE.CubeGeometry = function ( width, height, depth,
segmentsWidth, segmentsHeight, segmentsDepth
, materials, sides ) {
THREE.CubeGeometry = function ( width, height, depth,
widthSegments, heightSegments, depthSegments
, materials, sides ) {
THREE.Geometry.call( this );
var scope = this,
width_half = width / 2,
height_half = height / 2,
depth_half = depth / 2;
var scope = this;
this.width = width;
this.height = height;
this.depth = depth;
this.widthSegments = widthSegments || 1;
this.heightSegments = heightSegments || 1;
this.depthSegments = depthSegments || 1;
var width_half = this.width / 2;
var height_half = this.height / 2;
var depth_half = this.depth / 2;
var mpx, mpy, mpz, mnx, mny, mnz;
...
...
@@ -29300,18 +29355,18 @@ THREE.CubeGeometry = function ( width, height, depth, segmentsWidth, segmentsHei
}
this.sides.px && buildPlane( 'z', 'y', - 1, - 1,
depth,
height, width_half, mpx ); // px
this.sides.nx && buildPlane( 'z', 'y', 1, - 1,
depth,
height, - width_half, mnx ); // nx
this.sides.py && buildPlane( 'x', 'z', 1, 1,
width,
depth, height_half, mpy ); // py
this.sides.ny && buildPlane( 'x', 'z', 1, - 1,
width,
depth, - height_half, mny ); // ny
this.sides.pz && buildPlane( 'x', 'y', 1, - 1,
width,
height, depth_half, mpz ); // pz
this.sides.nz && buildPlane( 'x', 'y', - 1, - 1,
width,
height, - depth_half, mnz ); // nz
this.sides.px && buildPlane( 'z', 'y', - 1, - 1,
this.depth, this.
height, width_half, mpx ); // px
this.sides.nx && buildPlane( 'z', 'y', 1, - 1,
this.depth, this.
height, - width_half, mnx ); // nx
this.sides.py && buildPlane( 'x', 'z', 1, 1,
this.width, this.
depth, height_half, mpy ); // py
this.sides.ny && buildPlane( 'x', 'z', 1, - 1,
this.width, this.
depth, - height_half, mny ); // ny
this.sides.pz && buildPlane( 'x', 'y', 1, - 1,
this.width, this.
height, depth_half, mpz ); // pz
this.sides.nz && buildPlane( 'x', 'y', - 1, - 1,
this.width, this.
height, - depth_half, mnz ); // nz
function buildPlane( u, v, udir, vdir, width, height, depth, material ) {
var w, ix, iy,
gridX = s
egmentsWidth || 1
,
gridY = s
egmentsHeight || 1
,
gridX = s
cope.widthSegments
,
gridY = s
cope.heightSegments
,
width_half = width / 2,
height_half = height / 2,
offset = scope.vertices.length;
...
...
@@ -29323,12 +29378,12 @@ THREE.CubeGeometry = function ( width, height, depth, segmentsWidth, segmentsHei
} else if ( ( u === 'x' && v === 'z' ) || ( u === 'z' && v === 'x' ) ) {
w = 'y';
gridY = s
egmentsDepth || 1
;
gridY = s
cope.depthSegments
;
} else if ( ( u === 'z' && v === 'y' ) || ( u === 'y' && v === 'z' ) ) {
w = 'x';
gridX = s
egmentsDepth || 1
;
gridX = s
cope.depthSegments
;
}
...
...
@@ -30483,16 +30538,26 @@ THREE.PlaneGeometry = function ( width, height, widthSegments, heightSegments )
THREE.Geometry.call( this );
var ix, iz,
width_half = width / 2,
height_half = height / 2,
gridX = widthSegments || 1,
gridZ = heightSegments || 1,
gridX1 = gridX + 1,
gridZ1 = gridZ + 1,
segment_width = width / gridX,
segment_height = height / gridZ,
normal = new THREE.Vector3( 0, 0, 1 );
this.width = width;
this.height = height;
this.widthSegments = widthSegments || 1;
this.heightSegments = heightSegments || 1;
var ix, iz;
var width_half = width / 2;
var height_half = height / 2;
var gridX = this.widthSegments;
var gridZ = this.heightSegments;
var gridX1 = gridX + 1;
var gridZ1 = gridZ + 1;
var segment_width = this.width / gridX;
var segment_height = this.height / gridZ;
var normal = new THREE.Vector3( 0, 0, 1 );
for ( iz = 0; iz < gridZ1; iz ++ ) {
...
...
@@ -30545,7 +30610,10 @@ THREE.SphereGeometry = function ( radius, widthSegments, heightSegments, phiStar
THREE.Geometry.call( this );
radius = radius || 50;
this.radius = radius || 50;
this.widthSegments = Math.max( 3, Math.floor( widthSegments ) || 8 );
this.heightSegments = Math.max( 2, Math.floor( heightSegments ) || 6 );
phiStart = phiStart !== undefined ? phiStart : 0;
phiLength = phiLength !== undefined ? phiLength : Math.PI * 2;
...
...
@@ -30553,25 +30621,22 @@ THREE.SphereGeometry = function ( radius, widthSegments, heightSegments, phiStar
thetaStart = thetaStart !== undefined ? thetaStart : 0;
thetaLength = thetaLength !== undefined ? thetaLength : Math.PI;
var segmentsX = Math.max( 3, Math.floor( widthSegments ) || 8 );
var segmentsY = Math.max( 2, Math.floor( heightSegments ) || 6 );
var x, y, vertices = [], uvs = [];
for ( y = 0; y <=
segmentsY
; y ++ ) {
for ( y = 0; y <=
this.heightSegments
; y ++ ) {
var verticesRow = [];
var uvsRow = [];
for ( x = 0; x <=
segmentsX
; x ++ ) {
for ( x = 0; x <=
this.widthSegments
; x ++ ) {
var u = x /
segmentsX
;
var v = y /
segmentsY
;
var u = x /
this.widthSegments
;
var v = y /
this.heightSegments
;
var vertex = new THREE.Vector3();
vertex.x = - radius * Math.cos( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );
vertex.y = radius * Math.cos( thetaStart + v * thetaLength );
vertex.z = radius * Math.sin( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );
vertex.x = -
this.
radius * Math.cos( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );
vertex.y =
this.
radius * Math.cos( thetaStart + v * thetaLength );
vertex.z =
this.
radius * Math.sin( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );
this.vertices.push( vertex );
...
...
@@ -30585,9 +30650,9 @@ THREE.SphereGeometry = function ( radius, widthSegments, heightSegments, phiStar
}
for ( y = 0; y <
segmentsY
; y ++ ) {
for ( y = 0; y <
this.heightSegments
; y ++ ) {
for ( x = 0; x <
segmentsX
; x ++ ) {
for ( x = 0; x <
this.widthSegments
; x ++ ) {
var v1 = vertices[ y ][ x + 1 ];
var v2 = vertices[ y ][ x ];
...
...
@@ -30604,12 +30669,12 @@ THREE.SphereGeometry = function ( radius, widthSegments, heightSegments, phiStar
var uv3 = uvs[ y + 1 ][ x ].clone();
var uv4 = uvs[ y + 1 ][ x + 1 ].clone();
if ( Math.abs( this.vertices[ v1 ].y ) ==
radius ) {
if ( Math.abs( this.vertices[ v1 ].y ) ==
= this.
radius ) {
this.faces.push( new THREE.Face3( v1, v3, v4, [ n1, n3, n4 ] ) );
this.faceVertexUvs[ 0 ].push( [ uv1, uv3, uv4 ] );
} else if ( Math.abs( this.vertices[ v3 ].y ) ==
radius ) {
} else if ( Math.abs( this.vertices[ v3 ].y ) ==
= this.
radius ) {
this.faces.push( new THREE.Face3( v1, v2, v3, [ n1, n2, n3 ] ) );
this.faceVertexUvs[ 0 ].push( [ uv1, uv2, uv3 ] );
...
...
@@ -30628,7 +30693,7 @@ THREE.SphereGeometry = function ( radius, widthSegments, heightSegments, phiStar
this.computeCentroids();
this.computeFaceNormals();
this.boundingSphere = { radius: radius };
this.boundingSphere = { radius:
this.
radius };
};
...
...
@@ -33996,7 +34061,8 @@ THREE.SpritePlugin = function ( ) {
}
size = sprite.map.image.width / ( sprite.scaleByViewport ? viewportHeight : 1 );
//size = sprite.map.image.width / ( sprite.scaleByViewport ? viewportHeight : 1 );
size = 1 / ( sprite.scaleByViewport ? viewportHeight : 1 );
scale[ 0 ] = size * invAspect * sprite.scale.x;
scale[ 1 ] = size * sprite.scale.y;
...
...
build/three.min.js
浏览文件 @
92229405
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录