README.md 33.4 KB
Newer Older
M
testing  
Mr.doob 已提交
1 2 3
three.js
========

M
Mr.doob 已提交
4
#### Javascript 3D Engine ####
M
Mr.doob 已提交
5

6
The aim of the project is to create a lightweight 3D engine with a very low level of complexity — in other words, for dummies. The engine can render using <canvas>, <svg> and WebGL.
7

M
Mr.doob 已提交
8
[Contributors](http://github.com/mrdoob/three.js/contributors)[Getting Started](http://www.aerotwist.com/lab/getting-started-with-three-js/)[API Reference](http://github.com/mrdoob/three.js/wiki/API-Reference)
M
Mr.doob 已提交
9

M
Mr.doob 已提交
10
More? [#three.js on irc.freenode.net](http://webchat.freenode.net/?channels=three.js)
11

M
Mr.doob 已提交
12

M
Mr.doob 已提交
13
### Featured Examples ([View all](http://mrdoob.github.com/three.js/)) ###
M
Mr.doob 已提交
14

15

M
=_=  
Mr.doob 已提交
16
#### WebGL (Context 3D) ####
17

M
Mr.doob 已提交
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
<a href="http://mrdoob.github.com/three.js/examples/webgl_panorama_equirectangular.html"><img src="http://mrdoob.github.com/three.js/assets/examples/44_equirectangular.png" width="109" height="82" alt="equirectangular"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials_texture_filters.html"><img src="http://mrdoob.github.com/three.js/assets/examples/42_scissors.png" width="109" height="82" alt="scissors"></a>
<a href="http://mrdoob.github.com/three.js/examples/misc_lookat.html"><img src="http://mrdoob.github.com/three.js/assets/examples/41_lookat.png" width="109" height="82" alt="lookat"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials_video.html"><img src="http://mrdoob.github.com/three.js/assets/examples/40_video.png" width="109" height="82" alt="video"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_postprocessing_dof.html"><img src="http://mrdoob.github.com/three.js/assets/examples/39_dof.png" width="109" height="82" alt="dof"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_ribbons.html"><img src="http://mrdoob.github.com/three.js/assets/examples/38_ribbon.png" width="109" height="82" alt="ribbon"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_geometry_colors.html"><img src="http://mrdoob.github.com/three.js/assets/examples/37_vertexcolors.png" width="109" height="82" alt="vertexcolors"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_particles_billboards_colors.html"><img src="http://mrdoob.github.com/three.js/assets/examples/36_particles.png" width="109" height="82" alt="particles"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_lines_colors.html"><img src="http://mrdoob.github.com/three.js/assets/examples/35_lines.png" width="109" height="82" alt="lines"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_shader.html"><img src="http://mrdoob.github.com/three.js/assets/examples/34_shader.png" width="109" height="82" alt="shader"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials_normalmap2.html"><img src="http://mrdoob.github.com/three.js/assets/examples/33_materials_normalmap2.png" width="109" height="82" alt="materials_normalmap2"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials_grass.html"><img src="http://mrdoob.github.com/three.js/assets/examples/32_materials_grass.png" width="109" height="82" alt="materials_grass"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials_normalmap.html"><img src="http://mrdoob.github.com/three.js/assets/examples/31_materials_normalmap.png" width="109" height="82" alt="materials_normalmap"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_geometry_terrain.html"><img src="http://mrdoob.github.com/three.js/assets/examples/30_geometry_terrain_gl.png" width="109" height="82" alt="geometry_terrain_gl"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_geometry_minecraft_ao.html"><img src="http://mrdoob.github.com/three.js/assets/examples/29_geometry_minecraft.png" width="109" height="82" alt="geometry_minecraft"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials_shaders_fresnel.html"><img src="http://mrdoob.github.com/three.js/assets/examples/28_materials_shaders_fresnel.png" width="109" height="82" alt="materials_shader_fresnel"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials_cars.html"><img src="http://mrdoob.github.com/three.js/assets/examples/25_materials_cars.png" width="109" height="82" alt="materials_cars"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials_cubemap_refraction.html"><img src="http://mrdoob.github.com/three.js/assets/examples/18_materials_cubemap_refraction.png" width="109" height="82" alt="materials_cubemap_refraction"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials_cubemap_balls_reflection.html"><img src="http://mrdoob.github.com/three.js/assets/examples/15_materials_cubemap_balls_reflection.png" width="109" height="82" alt="materials_cubemap_balls_reflection"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials_cubemap_balls_refraction.html"><img src="http://mrdoob.github.com/three.js/assets/examples/16_materials_cubemap_balls_refraction.png" width="109" height="82" alt="materials_cubemap_balls_refraction"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials_cubemap_escher.html"><img src="http://mrdoob.github.com/three.js/assets/examples/17_materials_cubemap_escher.png" width="109" height="82" alt="materials_cubemap_escher"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials_cubemap.html"><img src="http://mrdoob.github.com/three.js/assets/examples/14_materials_cubemap.png" width="109" height="82" alt="materials_cubemap"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_materials.html"><img src="http://mrdoob.github.com/three.js/assets/examples/20_materials_gl.png" width="109" height="82" alt="materials_gl"></a>
<a href="http://mrdoob.github.com/three.js/examples/webgl_geometry_large_mesh.html"><img src="http://mrdoob.github.com/three.js/assets/examples/12_large_mesh.png" width="109" height="82" alt="large_mesh"></a>
42 43


M
=_=  
Mr.doob 已提交
44
#### Canvas (Context 2D) ####
M
Mr.doob 已提交
45

M
Mr.doob 已提交
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
<a href="http://mrdoob.github.com/three.js/examples/canvas_materials_reflection.html"><img src="http://mrdoob.github.com/three.js/assets/examples/27_materials_reflection.png" width="109" height="82" alt="materials_reflection"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_materials.html"><img src="http://mrdoob.github.com/three.js/assets/examples/13_materials.png" width="109" height="82" alt="materials"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_materials_depth.html"><img src="http://mrdoob.github.com/three.js/assets/examples/19_materials_depth.png" width="109" height="82" alt="materials_depth"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_materials_normal.html"><img src="http://mrdoob.github.com/three.js/assets/examples/22_materials_normal.png" width="109" height="82" alt="materials_normal"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_lights_pointlights.html"><img src="http://mrdoob.github.com/three.js/assets/examples/09_walthead.png" width="109" height="82" alt="lights_pointlights"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_interactive_cubes.html"><img src="http://mrdoob.github.com/three.js/assets/examples/11_interactive.png" width="109" height="82" alt="interactive_cubes"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_camera_orthographic.html"><img src="http://mrdoob.github.com/three.js/assets/examples/10_orthographic.png" width="109" height="82" alt="camera_ortographic"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_geometry_birds.html"><img src="http://mrdoob.github.com/three.js/assets/examples/08_birds.png" width="109" height="82" alt="geometry_birds"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_geometry_earth.html"><img src="http://mrdoob.github.com/three.js/assets/examples/07_earth.png" width="109" height="82" alt="geometry_earth"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_geometry_terrain.html"><img src="http://mrdoob.github.com/three.js/assets/examples/06_terrain.png" width="109" height="82" alt="geometry_terrain"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_materials_video.html"><img src="http://mrdoob.github.com/three.js/assets/examples/24_materials_video.png" width="109" height="82" alt="materials_video"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_geometry_panorama.html"><img src="http://mrdoob.github.com/three.js/assets/examples/04_vr.png" width="109" height="82" alt="geometry_panorama"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_geometry_cube.html"><img src="http://mrdoob.github.com/three.js/assets/examples/03_cube.png" width="109" height="82" alt="geometry_cube"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_particles_sprites.html"><img src="http://mrdoob.github.com/three.js/assets/examples/26_particles_sprites.png" width="109" height="82" alt="particles_sprites"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_particles_random.html"><img src="http://mrdoob.github.com/three.js/assets/examples/02_random.png" width="109" height="82" alt="particles_random"></a>
<a href="http://mrdoob.github.com/three.js/examples/canvas_particles_waves.html"><img src="http://mrdoob.github.com/three.js/assets/examples/01_waves.png" width="109" height="82" alt="particles_wave"></a>
M
Mr.doob 已提交
62 63


64 65
### Featured projects ###

M
Mr.doob 已提交
66 67 68 69 70 71 72 73 74 75 76 77
<a href="http://inear.se/beanstalk/"><img src="http://mrdoob.github.com/three.js/assets/projects/19_beanstalk.png" width="109" height="82" alt="Infinite beanstalk"></a>
<a href="http://superfad.com/missioncontrol/"><img src="http://mrdoob.github.com/three.js/assets/projects/18_missioncontrol.png" width="109" height="82" alt="Mission Control"></a>
<a href="http://ro.me/"><img src="http://mrdoob.github.com/three.js/assets/projects/17_rome.png" width="109" height="82" alt="ROME"></a>
<a href="http://data-arts.appspot.com/globe"><img src="http://mrdoob.github.com/three.js/assets/projects/16_globe.png" width="109" height="82" alt="Globe"></a>
<a href="http://lab.aerotwist.com/webgl/photoparticles/"><img src="http://mrdoob.github.com/three.js/assets/projects/15_photoparticles.png" width="109" height="82" alt="Photoparticles"></a>
<a href="http://plumegraph.org/"><img src="http://mrdoob.github.com/three.js/assets/projects/14_plumegraph.png" width="109" height="82" alt="Plumegraph"></a>
<a href="http://helloracer.com/webgl/"><img src="http://mrdoob.github.com/three.js/assets/projects/13_helloracer.png" width="109" height="82" alt="HelloRacer"></a>
<a href="http://www.omiod.com/games/fastkat.php"><img src="http://mrdoob.github.com/three.js/assets/projects/12_fastkat.png" width="109" height="82" alt="FastKat"></a>
<a href="http://antimatter15.com/wp/2010/11/digital-sculpting-with-three-js/"><img src="http://mrdoob.github.com/three.js/assets/projects/11_sculpt.png" width="109" height="82" alt="Sculpt"></a>
<a href="http://mrdoob.com/projects/voxels/"><img src="http://mrdoob.github.com/three.js/assets/projects/10_voxels.png" width="109" height="82" alt="Voxels"></a>
<a href="http://thewildernessdowntown.com/"><img src="http://mrdoob.github.com/three.js/assets/projects/09_arcadefire.png" width="109" height="82" alt="The Wilderness Downtown"></a>
<a href="http://xplsv.com/prods/demos/xplsv_orsotheysay/"><img src="http://mrdoob.github.com/three.js/assets/projects/07_orsotheysay.png" width="109" height="82" alt="Or so they say..."></a>
M
Mr.doob 已提交
78

M
Mr.doob 已提交
79

M
Mr.doob 已提交
80
### Usage ###
M
Mr.doob 已提交
81

M
Mr.doob 已提交
82
Download the [minified library](http://mrdoob.github.com/three.js/build/Three.js) and include it in your html.
M
Mr.doob 已提交
83

M
Mr.doob 已提交
84
	<script src="js/Three.js"></script>
M
Mr.doob 已提交
85

M
Mr.doob 已提交
86
This code creates a camera, then creates a scene, adds a cube on it, creates a &lt;canvas&gt; renderer and adds its viewport in the document.body element.
M
Mr.doob 已提交
87

M
Mr.doob 已提交
88
	<script>
M
Mr.doob 已提交
89

90 91
		var camera, scene, renderer,
		geometry, material, mesh;
92

M
Mr.doob 已提交
93
		init();
M
Mr.doob 已提交
94
		animate();
M
Mr.doob 已提交
95

M
Mr.doob 已提交
96
		function init() {
M
Mr.doob 已提交
97

M
Mr.doob 已提交
98
			camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 10000 );
99
			camera.position.z = 1000;
M
Mr.doob 已提交
100

M
Mr.doob 已提交
101
			scene = new THREE.Scene();
M
Mr.doob 已提交
102

103
			geometry = new THREE.CubeGeometry( 200, 200, 200 );
104 105 106
			material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );

			mesh = new THREE.Mesh( geometry, material );
M
Mr.doob 已提交
107
			scene.add( mesh );
M
Mr.doob 已提交
108

M
Mr.doob 已提交
109 110 111
			renderer = new THREE.CanvasRenderer();
			renderer.setSize( window.innerWidth, window.innerHeight );

112
			document.body.appendChild( renderer.domElement );
M
Mr.doob 已提交
113

114 115
		}

M
Mr.doob 已提交
116 117
		function animate() {

118 119
			// Include examples/js/RequestAnimationFrame.js for cross-browser compatibility.
			requestAnimationFrame( animate );
M
Mr.doob 已提交
120 121 122 123 124
			render();

		}

		function render() {
M
Mr.doob 已提交
125

M
Mr.doob 已提交
126 127 128
			mesh.rotation.x += 0.01;
			mesh.rotation.y += 0.02;

129
			renderer.render( scene, camera );
M
Mr.doob 已提交
130

M
Mr.doob 已提交
131
		}
M
Mr.doob 已提交
132

M
Mr.doob 已提交
133
	</script>
134 135


136
### Change Log ###
137

M
Mr.doob 已提交
138
2011 10 06 - **r45** (340.863 KB, gzip: 86.568 KB)
M
Mr.doob 已提交
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171

* `Object/Scene.add*()` and `Object/Scene.remove*()` are now `Object/Scene.add()` and `Object/Scene.remove()`. ([mrdoob](http://github.com/mrdoob))
* `LOD.add()` is now `LOD.addLevel()`. ([mrdoob](http://github.com/mrdoob))
* Reworked `CylinderGeometry`. ([mrdoob](http://github.com/mrdoob))
* Added `.depthWrite` and `.fog` to `Material`. ([alteredq](http://github.com/alteredq))
* Added `.applyMatrix` to `Geometry`. ([mrdoob](http://github.com/mrdoob))
* Improved postprocessing stack in `/examples/js/postprocessing`. ([alteredq](http://github.com/alteredq))
* Added a realistic sking shading example. ([alteredq](http://github.com/alteredq))
* Started of a GUI for composing scenes and autogenerate code. ([mrdoob](http://github.com/mrdoob))
* Added `.center()` to `GeometryUtils`. ([alteredq](http://github.com/alteredq))
* Fixed buggy scenegraph manipulation (adding/removing objects). ([jsermeno](http://github.com/jsermeno), [alteredq](http://github.com/alteredq) and [skython](http://github.com/skython))
* Renamed `MeshShaderMaterial` to `ShaderMaterial`. ([alteredq](http://github.com/alteredq))
* Fixed `CanvasRenderer` ignoring color of `SmoothShading`ed `MeshLambertMaterial`. ([mrdoob](http://github.com/mrdoob))
* Renamed `renderer.data` to `renderer.info`. ([mrdoob](http://github.com/mrdoob))
* Fixed ShadowMap aspect ratio. ([kig](http://github.com/kig) and [alteredq](http://github.com/alteredq))
* Fixed `Loader`'s `extractUrlbase()` incorrect output for short urls. ([rectalogic](http://github.com/rectalogic) and [alteredq](http://github.com/alteredq))
* Added `.color` and `.visible` support to `Sprite`. ([alteredq](http://github.com/alteredq))
* Added `Face4`, Vertex Colors and Maya support to `ColladaLoader`. ([mrdoob](http://github.com/mrdoob))
* Rewrite of lighting shader code. ([alteredq](http://github.com/alteredq))
* Improved internal array concatenation approach. ([pyrotechnick](http://github.com/pyrotechnick))
* `WebGLRenderer` performance improvements. ([alteredq](http://github.com/alteredq))
* Added lower level immediate rendering support to `WebGLRenderer`. ([NINE78](http://github.com/NINE78) and [alteredq](http://github.com/alteredq))
* Added `CubeCamera` for rendering cubemaps. ([alteredq](http://github.com/alteredq))
* Improved `GeometryUtils`'s `.mergeVertices()` performance. ([zz85](http://github.com/zz85))
* Removed `Camera`'s `.target`. ([mrdoob](http://github.com/mrdoob))
* `WebGLRenderer`'s `.clear()` is now `.clear( color, depth, stencil )`. ([mrdoob](http://github.com/mrdoob))
* Added `.autoClearColor`, `.autoClearDepth` and `.autoClearStencil` to `WebGLRenderer`. ([mrdoob](http://github.com/mrdoob) and [alteredq](http://github.com/alteredq))
* Added `OctahedronGeometry`. ([clockworkgeek](http://github.com/clockworkgeek))
* Splitted `Camera` into `PerspectiveCamera` and `OrthographicCamera`. ([mrdoob](http://github.com/mrdoob) and [alteredq](http://github.com/alteredq))
* Special cameras are now `*Controls`. ([alteredq](http://github.com/alteredq) and [mrdoob](http://github.com/mrdoob))
* Added `SubdivisionModifier`. ([zz85](http://github.com/zz85))
* `Projector`'s `unprojectVector()` now also works with `OrthographicCamera`. ([jsermeno](http://github.com/jsermeno))
* Added `.setLens()` method to `PerspectiveCamera`. ([zz85](http://github.com/zz85))
172
* Added Shadow Maps, `Texture`'s `.offset` and `.repeat` and reflections support to Normal Map shader. ([alteredq](http://github.com/alteredq))
M
Mr.doob 已提交
173

M
Mr.doob 已提交
174

M
Mr.doob 已提交
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
2011 09 04 - **r44** (330.356 KB, gzip: 84.039 KB)

* Added `ColladaLoader`. ([timknip2](https://github.com/timknip2))
* Improved `ExtrudeGeometry`. ([zz85](http://github.com/zz85))
* Fixed `CylinderGeometry` normals. ([alteredq](http://github.com/alteredq))
* Fixed issue with `WebGLRenderer.setTexture` ([rectalogic](https://github.com/rectalogic))
* Fixed `TorusGeometry` normals. ([mrdoob](http://github.com/mrdoob))
* Fixed `Ray` behind-ray intersects. ([mrdoob](http://github.com/mrdoob))
* Added `OrthoCamera`. ([alteredq](http://github.com/alteredq))
* Refactored postprocessing effects used in some examples. ([alteredq](http://github.com/alteredq))
* Added `.deallocateObject()` and `.deallocateTexture()` methods to `WebGLRenderer`. ([mrdoob](http://github.com/mrdoob))
* Fixed a glitch in normal and phong shader. ([evanw](http://github.com/evanw) and [alteredq](http://github.com/alteredq))
* Added `.frustumCulled` property to `Object3D`. ([alteredq](http://github.com/alteredq) and [mrdoob](http://github.com/mrdoob))


M
Mr.doob 已提交
190 191 192 193 194 195 196 197 198 199
2011 08 14 - **r43** (298.199 KB, gzip: 74.805 KB)

* Improved Blender exporter - 2.58 (and 2.59) support, normals maps, specular, ao maps... ([alteredq](http://github.com/alteredq))
* Added [CORS](http://www.w3.org/TR/cors/) to `ImageUtils`. ([mrdoob](http://github.com/mrdoob))
* Refactored `TextGeometry` and added `Shape`, `Curve`, `Path`, `ExtrudeGeometry`, `TextPath`. ([zz85](http://github.com/zz85) and [alteredq](http://github.com/alteredq))
* Added handling of custom attributes for `ParticleSystems`. ([alteredq](http://github.com/alteredq))
* Fixed `CanvasRenderer.setClearColor`. ([mrdoob](http://github.com/mrdoob), [StephenHopkins](http://github.com/StephenHopkins) and [sebleedelisle](http://github.com/sebleedelisle))
* Improved uniform handling in `WebGLRenderer`. ([alteredq](http://github.com/alteredq))
* Implemented Shadow Mapping in `WebGLRenderer`. ([alteredq](http://github.com/alteredq))
* Added `Spotlight` light type. ([alteredq](http://github.com/alteredq))
M
Mr.doob 已提交
200
* Fixed constructor-less prototypes. ([pushmatrix](http://github.com/pushmatrix))
M
Mr.doob 已提交
201 202 203 204 205 206 207 208
* Added `DataTexture`. ([alteredq](http://github.com/alteredq))
* `WebGLRenderer` opaque pass now renders from front to back. ([alteredq](http://github.com/alteredq))
* Simplified `Color`. ([mrdoob](http://github.com/mrdoob))
* Added `preserveDrawingBuffer` option to `WebGLRenderer`. ([jeromeetienne](http://github.com/jeromeetienne))
* Added `UTF8Loader` for loading the new, uber compressed, [UTF8 format](http://code.google.com/p/webgl-loader/). ([alteredq](http://github.com/alteredq))
* `CanvasRenderer` now supports `RepeatWrapping`, `texture.offset` and `texture.repeat`. ([mrdoob](http://github.com/mrdoob))
* Removed Stencil Shadows and Lensflare code. ([mrdoob](http://github.com/mrdoob))

M
Mr.doob 已提交
209

M
Mr.doob 已提交
210
2011 07 06 - **r42** (277.852 KB, gzip: 69.469 KB)
M
Mr.doob 已提交
211 212 213 214 215

* Added `AnaglypWebGLRenderer` and `CrosseyedWebGLRenderer`. ([mrdoob](http://github.com/mrdoob), [alteredq](http://github.com/alteredq) and [marklundin](http://github.com/marklundin))
* Added `TextGeometry`. ([zz85](http://github.com/zz85) and [alteredq](http://github.com/alteredq))
* Added `setViewOffset` method to `Camera`. ([greggman](http://github.com/greggman))
* Renamed geometries to `*Geometry`. ([mrdoob](http://github.com/mrdoob))
M
Mr.doob 已提交
216
* Improved Blender exporter. ([alteredq](http://github.com/alteredq), [sweetfish](http://github.com/sweetfish) and [Jhonnyg](http://github.com/Jhonnyg))
M
Mr.doob 已提交
217 218 219 220 221 222
* Added Blender 2.58 exporter. ([georgik](http://github.com/georgik))
* Fixed `Matrix4.multiply()`. (thanks [lukem1](http://github.com/lukem1)) 
* Added support for additional Euler rotation orders in `Matrix4`. ([rectalogic](http://github.com/rectalogic))
* Renamed `QuakeCamera` to `FirstPersonCamera`. ([chriskillpack](http://github.com/chriskillpack))
* Improved Normal Map Shader. ([alteredq](http://github.com/alteredq))
* `Collision` now supports `Object3D.flipSided` and `Object3D.doubleSided`. ([NINE78](http://github.com/NINE78))
M
Mr.doob 已提交
223
* Removed most of `SceneUtils` methods. ([mrdoob](http://github.com/mrdoob))
M
Mr.doob 已提交
224 225 226
* Removed `Sound` object and `SoundRenderer`. ([mrdoob](http://github.com/mrdoob))


227
2011 05 31 - **r41/ROME** (265.317 KB, gzip: 64.849 KB)
M
Mr.doob 已提交
228

229
(Up to this point, some [RO.ME](http://ro.me) specific features managed to get in the lib. The aim is to clean this up in next revisions.)
M
Mr.doob 已提交
230 231 232 233

* Improved Blender Object and Scene exporters. ([alteredq](http://github.com/alteredq))
* Fixes on WebGL attributes. ([alteredq](http://github.com/alteredq) and [empaempa](http://github.com/empaempa))
* Reduced overall memory footprint. ([mrdoob](http://github.com/mrdoob))
M
Mr.doob 已提交
234
* Added `Face4` support to `CollisionSystem`. ([NINE78](http://github.com/NINE78))
M
Mr.doob 已提交
235 236
* Added Blender 2.57 exporter. ([remoe](http://github.com/remoe))
* Added `Particle` support to `Ray`. ([mrdoob](http://github.com/mrdoob) and [jaycrossler](http://github.com/jaycrossler))
M
Mr.doob 已提交
237
* Improved `Ray.intersectObject` performance by checking boundingSphere first. ([mrdoob](http://github.com/mrdoob))
M
Mr.doob 已提交
238
* Added `TrackballCamera`. ([egraether](http://github.com/egraether))
M
Mr.doob 已提交
239
* Added `repeat` and `offset` properties to `Texture`. ([mrdoob](http://github.com/mrdoob) and [alteredq](http://github.com/alteredq))
M
Mr.doob 已提交
240
* Cleaned up `Vector2`, `Vector3` and `Vector4`. ([egraether](http://github.com/egraether))
M
Mr.doob 已提交
241 242


M
Mr.doob 已提交
243 244 245 246
2011 04 24 - **r40** (263.774 KB, gzip: 64.320 KB)

* Fixed `Object3D.lookAt`. ([mrdoob](http://github.com/mrdoob))
* More and more Blender exporter goodness. ([alteredq](http://github.com/alteredq) and [mrdoob](http://github.com/mrdoob))
M
Mr.doob 已提交
247
* Improved `CollisionSystem`. ([drojdjou](http://github.com/drojdjou) and [alteredq](http://github.com/alteredq))
M
Mr.doob 已提交
248 249 250 251 252 253
* Fixes on WebGLRenderer. ([empaempa](http://github.com/empaempa))
* Added `Trident` object. ([sroucheray](http://github.com/sroucheray))
* Added `data` object to Renderers for getting number of vertices/faces/callDraws from last render. ([mrdoob](http://github.com/mrdoob))
* Fixed `Projector` handling Particles with hierarchies. ([mrdoob](http://github.com/mrdoob))


M
Mr.doob 已提交
254 255 256 257 258
2011 04 09 - **r39** (249.048 KB, gzip: 61.020 KB)

* Improved WebGLRenderer program cache. ([alteredq](http://github.com/alteredq))
* Added support for pre-computed edges in loaders and exporters. ([alteredq](http://github.com/alteredq))
* Added `Collisions` classes. ([drojdjou](http://github.com/drojdjou))
M
Mr.doob 已提交
259 260
* Added `Sprite` object. ([empaempa](http://github.com/empaempa))
* Fixed `*Loader` issue where Workers were kept alive and next loads were delayed. ([alteredq](http://github.com/alteredq))
M
Mr.doob 已提交
261 262 263
* Added `THREE` namespace to all the classes that missed it. ([mrdoob](http://github.com/mrdoob))


264
2011 03 31 - **r38** (225.442 KB, gzip: 55.908 KB)
M
Mr.doob 已提交
265 266 267 268 269 270 271 272 273

* Added `LensFlare` light. ([empaempa](http://github.com/empaempa))
* Added `ShadowVolume` object (stencil shadows). ([empaempa](http://github.com/empaempa))
* Improved Blender Exporter plus added Scene support. ([alteredq](http://github.com/alteredq))
* Blender Importer for loading JSON files. ([alteredq](http://github.com/alteredq))
* Added load/complete callbacks to `Loader` ([mrdoob](http://github.com/mrdoob))
* Minor WebGL blend mode clean up. ([mrdoob](http://github.com/mrdoob))
* *Materials now extend Material ([mrdoob](http://github.com/mrdoob))
* `material.transparent` define whether material is transparent or not (before we were guessing). ([mrdoob](http://github.com/mrdoob))
274
* Added internal program cache to WebGLRenderer (reuse already available programs). ([mrdoob](http://github.com/mrdoob))
M
Mr.doob 已提交
275 276


M
Mr.doob 已提交
277 278 279 280 281 282 283 284 285 286
2011 03 22 - **r37** (208.495 KB, gzip: 51.376 KB)

* Changed JSON file format. (**Re-exporting of models required**) ([alteredq](http://github.com/alteredq) and [mrdoob](http://github.com/mrdoob))
* Updated Blender and 3DSMAX exporters for new format. ([alteredq](http://github.com/alteredq))
* Vertex colors are now per-face ([alteredq](http://github.com/alteredq))
* `Geometry.uvs` is now a multidimensional array (allowing infinite uv sets) ([alteredq](http://github.com/alteredq))
* `CanvasRenderer` renders `Face4` again (without spliting to 2 `Face3`) ([mrdoob](http://github.com/mrdoob))
* `ParticleCircleMaterial` > `ParticleCanvasMaterial`. Allowing injecting any `canvas.context` code! ([mrdoob](http://github.com/mrdoob))


M
Mr.doob 已提交
287
2011 03 14 - **r36** (194.547 KB, gzip: 48.608 KB)
M
Mr.doob 已提交
288

M
Mr.doob 已提交
289
* Added 3DSMAX exporter. ([alteredq](http://github.com/alteredq))
M
Mr.doob 已提交
290 291 292 293
* Fixed `WebGLRenderer` aspect ratio bug when scene had only one material. ([mrdoob](http://github.com/mrdoob))
* Added `sizeAttenuation` property to `ParticleBasicMaterial`. ([mrdoob](http://github.com/mrdoob))
* Added `PathCamera`. ([alteredq](http://github.com/alteredq))
* Fixed `WebGLRenderer` bug when Camera has a parent. Camera`Camera.updateMatrix` method. ([empaempa](http://github.com/empaempa))
M
Mr.doob 已提交
294
* Fixed `Camera.updateMatrix` method and `Object3D.updateMatrix`. ([mrdoob](http://github.com/mrdoob))
M
Mr.doob 已提交
295 296


297
2011 03 06 - **r35** (187.875 KB, gzip: 46.433 KB)
M
Mr.doob 已提交
298 299 300 301 302 303 304

* Added methods `translate`, `translateX`, `translateY`, `translateZ` and `lookAt` methods to `Object3D`. ([mrdoob](http://github.com/mrdoob))
* Added methods `setViewport` and `setScissor` to `WebGLRenderer`. ([alteredq](http://github.com/alteredq))
* Added support for non-po2 textures. ([mrdoob](http://github.com/mrdoob) and [alteredq](http://github.com/alteredq))
* Minor API clean up. ([mrdoob](http://github.com/mrdoob))


M
Mr.doob 已提交
305 306
2011 03 02 - **r34** (186.045 KB, gzip: 45.953 KB)

M
Mr.doob 已提交
307
* Now using camera.matrixWorldInverse instead of camera.matrixWorld for projecting. ([empaempa](http://github.com/empaempa) and [mrdoob](http://github.com/mrdoob))
M
Mr.doob 已提交
308 309 310 311
* Camel cased properties and object json format (**Re-exporting of models required**) ([alteredq](http://github.com/alteredq))
* Added `QuakeCamera` for easy fly-bys ([alteredq](http://github.com/alteredq))
* Added `LOD` example ([alteredq](http://github.com/alteredq))

M
Mr.doob 已提交
312 313

2011 02 26 - **r33** (184.483 KB, gzip: 45.580 KB)
M
Mr.doob 已提交
314

M
Mr.doob 已提交
315
* Changed build setup (**build/Three.js now also include extras**) ([mrdoob](http://github.com/mrdoob))
M
Mr.doob 已提交
316 317 318 319 320 321 322
* Added `ParticleSystem` object to `WebGLRenderer` ([alteredq](http://github.com/alteredq))
* Added `Line` support to `WebGLRenderer` ([alteredq](http://github.com/alteredq))
* Added vertex colors support to `WebGLRenderer` ([alteredq](http://github.com/alteredq))
* Added `Ribbon` object. ([alteredq](http://github.com/alteredq))
* Added updateable textures support to `WebGLRenderer` ([alteredq](http://github.com/alteredq))
* Added `Sound` object and `SoundRenderer`. ([empaempa](http://github.com/empaempa))
* `LOD`, `Bone`, `SkinnedMesh` objects and hierarchy being developed. ([empaempa](http://github.com/empaempa))
M
Mr.doob 已提交
323
* Added hierarchies examples ([mrdoob](http://github.com/mrdoob))
M
Mr.doob 已提交
324 325


M
Mr.doob 已提交
326 327 328 329 330
2010 12 31 - **r32** (89.301 KB, gzip: 21.351 KB)

* `Scene` now supports `Fog` and `FogExp2`. `WebGLRenderer` only right now. ([alteredq](http://github.com/alteredq))
* Added `setClearColor( hex, opacity )` to `WebGLRenderer` and `CanvasRenderer` ([alteredq](http://github.com/alteredq) & [mrdoob](http://github.com/mrdoob))
* `WebGLRenderer` shader system refactored improving performance. ([alteredq](http://github.com/alteredq))
M
Mr.doob 已提交
331
* `Projector` now does frustum culling of all the objects using their sphereBoundingBox. (thx [errynp](http://github.com/errynp))
M
Mr.doob 已提交
332 333 334
* `material` property changed to `materials` globaly.


M
Mr.doob 已提交
335
2010 12 06 - **r31** (79.479 KB, gzip: 18.788 KB)
M
Mr.doob 已提交
336 337 338 339 340 341

* Minor Materials API change (mappings). ([alteredq](http://github.com/alteredq) & [mrdoob](http://github.com/mrdoob))
* Added Filters to `WebGLRenderer`
* `python build.py --includes` generates includes string


M
Mr.doob 已提交
342
2010 11 30 - **r30** (77.809 KB, gzip: 18.336 KB)
M
Mr.doob 已提交
343

M
Mr.doob 已提交
344
* Reflection and Refraction materials support in `WebGLRenderer` ([alteredq](http://github.com/alteredq))
M
Mr.doob 已提交
345
* `SmoothShading` support on `CanvasRenderer`/`MeshLambertMaterial`
M
Mr.doob 已提交
346
* `MeshShaderMaterial` for `WebGLRenderer` ([alteredq](http://github.com/alteredq))
M
Mr.doob 已提交
347 348 349
* Removed `RenderableFace4` from `Projector`/`CanvasRenderer` (maybe just temporary).
* Added extras folder with `GeometryUtils`, `ImageUtils`, `SceneUtils` and `ShaderUtils` ([alteredq](http://github.com/alteredq) & [mrdoob](http://github.com/mrdoob))
* Blender 2.5x Slim now the default exporter (old exporter removed).
M
Mr.doob 已提交
350 351 352


2010 11 17 - **r29** (69.563 KB)
M
Mr.doob 已提交
353 354

* **New materials API** Still work in progress, but mostly there. ([alteredq](http://github.com/alteredq) & [mrdoob](http://github.com/mrdoob))
355
* Line clipping in `CanvasRenderer` ([julianwa](http://github.com/julianwa))
M
Mr.doob 已提交
356 357 358 359
* Refactored `CanvasRenderer` and `SVGRenderer`. ([mrdoob](http://github.com/mrdoob))
* Switched to Closure compiler.


M
Mr.doob 已提交
360
2010 11 04 - **r28** (62.802 KB)
361

362
* `Loader` class allows load geometry asynchronously at runtime. ([alteredq](http://github.com/alteredq))
M
Mr.doob 已提交
363
* `MeshPhongMaterial` working with `WebGLRenderer`. ([alteredq](http://github.com/alteredq))
364
* Support for *huge* objects. Max 500k polys and counting. ([alteredq](http://github.com/alteredq))
M
Mr.doob 已提交
365
* `Projector.unprojectVector` and `Ray` class to check intersections with faces (based on [mindlapse](http://github.com/mindlapse) work)
366
* Fixed `Projector` z-sorting (not as jumpy anymore).
367 368
* Fixed Orthographic projection (was y-inverted).
* Hmmm.. lib file size starting to get too big...
369

M
Mr.doob 已提交
370

M
Mr.doob 已提交
371
2010 10 28 - **r25** (54.480 KB)
372 373 374 375 376 377 378 379

* `WebGLRenderer` now up to date with other renderers! ([alteredq](http://github.com/alteredq))
* .obj to .js python converter ([alteredq](http://github.com/alteredq))
* Blender 2.54 exporter
* Added `MeshFaceMaterial` (multipass per face)
* Reworked `CanvasRenderer` and `SVGRenderer` material handling


M
Mr.doob 已提交
380
2010 10 06 - **r18** (44.420 KB)
M
Mr.doob 已提交
381 382 383 384 385 386 387

* Added `PointLight`
* `CanvasRenderer` and `SVGRenderer` basic lighting support (ColorStroke/ColorFill only)
* `Renderer` > `Projector`. `CanvasRenderer`, `SVGRenderer` and `DOMRenderer` do not extend anymore
* Added `computeCentroids` method to `Geometry`


M
Mr.doob 已提交
388
2010 09 17 - **r17** (39.487 KB)
M
Mr.doob 已提交
389 390 391

* Added `Light`, `AmbientLight` and `DirectionalLight` ([philogb](http://github.com/philogb))
* `WebGLRenderer` basic lighting support ([philogb](http://github.com/philogb))
M
Mr.doob 已提交
392
* Memory optimisations
M
Mr.doob 已提交
393 394


M
Mr.doob 已提交
395
2010 08 21 - **r16** (35.592 KB)
396 397 398 399 400

* Workaround for Opera bug (clearRect not working with context with negative scale)
* Additional `Matrix4` and `Vector3` methods


M
Mr.doob 已提交
401
2010 07 23 - **r15** (32.440 KB)
402 403 404 405 406 407 408 409

* Using new object `UV` instead of `Vector2` where it should be used
* Added `Mesh.flipSided` boolean (false by default)
* `CanvasRenderer` was handling UVs at 1,1 as bitmapWidth, bitmapHeight (instead of bitmapWidth - 1, bitmapHeight - 1)
* `ParticleBitmapMaterial.offset` added
* Fixed gap when rendering `Face4` with `MeshBitmapUVMappingMaterial`


M
Mr.doob 已提交
410
2010 07 17 - **r14** (32.144 KB)
411 412 413 414 415 416 417 418 419 420 421 422 423

* Refactored `CanvasRenderer` (more duplicated code, but easier to handle)
* `Face4` now supports `MeshBitmapUVMappingMaterial`
* Changed order of `*StrokeMaterial` parameters. Now it's `color`, `opacity`, `lineWidth`.
* `BitmapUVMappingMaterial` > `MeshBitmapUVMappingMaterial`
* `ColorFillMaterial` > `MeshColorFillMaterial`
* `ColorStrokeMaterial` > `MeshColorStrokeMaterial`
* `FaceColorFillMaterial` > `MeshFaceColorFillMaterial`
* `FaceColorStrokeMaterial` > `MeshFaceColorStrokeMaterial`
* `ColorStrokeMaterial` > `LineColorMaterial`
* `Rectangle.instersects` returned false with rectangles with 0px witdh or height


M
Mr.doob 已提交
424
2010 07 12 - **r13** (29.492 KB)
425 426 427 428

* Added `ParticleCircleMaterial` and `ParticleBitmapMaterial`
* `Particle` now use `ParticleCircleMaterial` instead of `ColorFillMaterial`
* `Particle.size` > `Particle.scale.x` and `Particle.scale.y`
429
* `Particle.rotation.z` for rotating the particle
430 431 432
* `SVGRenderer` currently out of sync


M
Mr.doob 已提交
433
2010 07 07 - **r12** (28.494 KB)
434

435 436 437
* First version of the `WebGLRenderer` (`ColorFillMaterial` and `FaceColorFillMaterial` by now)
* `Matrix4.lookAt` fix (`CanvasRenderer` and `SVGRenderer` now handle the -Y)
* `Color` now using 0-1 floats instead of 0-255 integers
438 439


M
Mr.doob 已提交
440
2010 07 03 - **r11** (23.541 KB)
M
Mr.doob 已提交
441 442

* Blender 2.5 exporter (utils/export_threejs.py) now exports UV and normals (Thx [kikko](http://github.com/kikko))
443 444
* `Scene.add` > `Scene.addObject`
* Enabled `Scene.removeObject`
M
Mr.doob 已提交
445 446


M
Mr.doob 已提交
447
2010 06 22 - **r10** (23.959 KB)
448 449

* Changed Camera system. (Thx [Paul Brunt](http://github.com/supereggbert))
450
* `Object3D.overdraw = true` to enable CanvasRenderer screen space point expansion hack.
451 452


M
Mr.doob 已提交
453
2010 06 20 - **r9** (23.753 KB)
M
Mr.doob 已提交
454

455
* JSLinted.
456
* `autoClear` property for renderers.
M
Mr.doob 已提交
457
* Removed SVG rgba() workaround for WebKit. (WebKit now supports it)
458
* Fixed matrix bug. (transformed objects outside the x axis would get infinitely tall :S)
M
Mr.doob 已提交
459 460


M
Mr.doob 已提交
461
2010 06 06 - **r8** (23.496 KB)
462

463 464 465
* Moved UVs to `Geometry`.
* `CanvasRenderer` expands screen space points (workaround for antialias gaps).
* `CanvasRenderer` supports `BitmapUVMappingMaterial`.
466 467


M
Mr.doob 已提交
468
2010 06 05 - **r7** (22.387 KB)
M
Mr.doob 已提交
469

470 471
* Added Line Object.
* Workaround for WebKit not supporting rgba() in SVG yet.
472
* No need to call updateMatrix(). Use .autoUpdateMatrix = false if needed. (Thx [Gregory Athons](http://github.com/gregmax17)).
M
Mr.doob 已提交
473 474


M
Mr.doob 已提交
475
2010 05 17 - **r6** (21.003 KB)
476

477 478
* 2d clipping on `CanvasRenderer` and `SVGRenderer`
* `clearRect` optimisations on `CanvasRenderer`
479 480


M
Mr.doob 已提交
481
2010 05 16 - **r5** (19.026 KB)
M
Mr.doob 已提交
482 483

* Removed Class.js dependency
484 485 486 487 488
* Added `THREE` namespace
* `Camera.x` -> `Camera.position.x`
* `Camera.target.x` > `Camera.target.position.x`
* `ColorMaterial` > `ColorFillMaterial`
* `FaceColorMaterial` > `FaceColorFillMaterial`
M
Mr.doob 已提交
489
* Materials are now multipass (use array)
490 491
* Added `ColorStrokeMaterial` and `FaceColorStrokeMaterial`
* `geometry.faces.a` are now indexes instead of references
M
Mr.doob 已提交
492 493


M
Mr.doob 已提交
494
2010 04 26 - **r4** (16.274 KB)
495

496 497
* `SVGRenderer` Particle rendering
* `CanvasRenderer` uses `context.setTransform` to avoid extra calculations
498 499


M
Mr.doob 已提交
500
2010 04 24 - **r3** (16.392 KB)
M
Mr.doob 已提交
501 502

* Fixed incorrect rotation matrix transforms
503
* Added `Plane` and `Cube` primitives
M
Mr.doob 已提交
504 505


M
Mr.doob 已提交
506
2010 04 24 - **r2** (15.724 KB)
M
Mr.doob 已提交
507

508
* Improved `Color` handling
M
Mr.doob 已提交
509

M
Mr.doob 已提交
510

M
Mr.doob 已提交
511
2010 04 24 - **r1** (15.25 KB)
M
Mr.doob 已提交
512

M
Mr.doob 已提交
513
* First alpha release