GithubHelp home page GithubHelp logo

three.js's Introduction

three.js

JavaScript 3D library

The aim of the project is to create a lightweight 3D library with a very low level of complexity — in other words, for dummies. The library provides <canvas>, <svg> and WebGL renderers.

ExamplesDocumentationMigratingHelp

Usage

Download the minified library and include it in your html. Alternatively see how to build the library yourself.

<script src="js/three.min.js"></script>

This code creates a scene, then creates a camera, adds the camera and cube to the scene, creates a <canvas> renderer and adds its viewport in the document.body element.

<script>

	var camera, scene, renderer;
	var geometry, material, mesh;

	init();
	animate();

	function init() {

		camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 10000 );
		camera.position.z = 1000;

		scene = new THREE.Scene();

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

		mesh = new THREE.Mesh( geometry, material );
		scene.add( mesh );

		renderer = new THREE.CanvasRenderer();
		renderer.setSize( window.innerWidth, window.innerHeight );

		document.body.appendChild( renderer.domElement );

	}

	function animate() {

		// note: three.js includes requestAnimationFrame shim
		requestAnimationFrame( animate );

		mesh.rotation.x += 0.01;
		mesh.rotation.y += 0.02;

		renderer.render( scene, camera );

	}

</script>

Change log

2012 12 25 - r54 (411,352 KB, gzip: 98,639 KB)

  • Added nodejs, perl, python and ruby based localhost server. (zz85)
  • Added support for alphaTest to Sprite. (alteredq)
  • Added WebGLDeferredRenderer with all sorts of goodness. (mpanknin and alteredq)
  • Changed Sprite to use SpriteMaterial instead of custom object. (alteredq)
  • Added sourcemap option to python and nodejs build systems. (zz85 and gero3)
  • Non-indexed BufferGeometry. (benaadams)
  • Added support for loading cubemap DDS textures. (MiiBond)
  • Added manual mipmapping support to Texture and DataTexture. (benaadams and alteredq)
  • Added style strings support Color. (mrdoob)
  • Added new fbx converter. (zfedoran)
  • Improvements to SceneLoader. (RommelVR and alteredq)
  • Added Plane class and implemented in Frustum. (bhouston)
  • Added Box3, Sphere math classes and implemented in Geometry. (bhouston)
  • Added bilinear filtered shadow map. (MiiBond)
  • Added test framework. (bhouston)
  • Replaced UV with Vector2. (mrdoob)
  • Renamed Ray to Raycaster and added new Ray math class. (bhouston)
  • Improvements to CSS3DRenderer. (mrdoob, benaadams and zz85)
  • Implemented .dispose() to Geometry, BufferGeometry, Texture, Material and WebGLRenderTarget for deallocating from GPU. (mrdoob and alteredq)
  • Moved SubdivisionModifier out of the build to examples/js/modifiers. (mrdoob)
  • Improvements to ColladaLoader. (dgossow)
  • Added Blender 2.65 exporter. (tapio)
  • Added .setMaterialIndex() to GeometryUtils. (gero3)
  • Added benchmark framework. (bhouston)
  • Fixed Blender scene exporter rotations. (alteredq and WestLangley)
  • Added devicePixelRatio support to CanvasRenderer and WebGLRenderer. (mrdoob)

2012 11 15 - r53 (392,799 KB, gzip: 96,044 KB)

  • Lots of improvements to editor. Including possibility to export geometry and scene. (alteredq and mrdoob)
  • Sprite no longer gets its size from the texture. (alteredq and mrdoob)
  • Improved CSS3DRenderer. (mrdoob and alteredq)
  • Added support for vertex normals in Ribbon. (alteredq)
  • Object3D's .clone() is now recursive. (mrdoob)
  • Added support for fog in Sprite. (alteredq)
  • Scene format now supports nested lights, cameras and SkinnedMesh, OBJ, VTK, STL, UTF8 and Collada files. (alteredq)
  • Object3D's .lookAt() now working when using quaternions. (motin)
  • Added touch support to TrackballControls. (mrdoob)
  • Object sorting in WebGLRenderer is now stable, regardless of browser implementation. (alteredq)
  • MeshPhongMaterial's perPixel is not true by default. (alteredq)
  • Added LineDashedMaterial. (alteredq)
  • Added .setContextStyle to Color. (greyscales)
  • Corrected normal matrix calculations. (WestLangley)
  • Added KaleidoShader, MirrorShader and RGBShiftShader. (felixturner)
  • Added area weighted vertex normals computation to Geometry. (alteredq)
  • Moved geometry.materials to MeshFaceMaterial. (gero3, alteredq and mrdoob)
  • Removed materials and sides from CubeGeometry. (mrdoob)
  • Move GeometryUtils's .clone() to Geometry. (mrdoob)

2012 10 15 - r52 (379,442 KB, gzip: 94,126 KB)

  • New node.js build system. (gero3)
  • Proper edge handling in SubdivisionModifier. (zz85)
  • Added defines parameter for adding preprocessor definitions to ShaderMaterial. (alteredq)
  • Split ShaderExtras into single files (BasicShader, BlendShader, ConvolutionShader, ... ). (mrdoob)
  • Added HueSaturationShader and BrightnessContrastShader. (tapio)
  • Fixed ColladaLoader not loading sometimes. (tapio)
  • Added material.vertexColors = THREE.FaceColor support to CanvasRenderer and SVGRenderer. (mrdoob)
  • Added Object3D.defaultEulerOrder. (mrdoob)
  • Replaced SceneUtils.traverseHierarchy and SceneUtils.showHierarchy with object.traverse. (mrdoob)
  • Added PointerLockControls. (mrdoob)
  • Completed more documentation pages. (sole)
  • Split SceneUtils.cloneObject into *.clone(). (mrdoob)
  • Simplified AxisHelper. (mrdoob)
  • Added GeometryExporter. (mrdoob)
  • Improved OrbitControls. (WestLangley)
  • Added GeometryLibrary, MaterialLibrary, TextureLibrary and ObjectLibrary (bear in mind that you can't rely on the GC now. Call *.deallocate() for removing). (mrdoob)
  • Moved *Controls out of the lib. (mrdoob)
  • Fixed shadows getting animated when skinning / morphing was disabled. (alteredq)
  • Added Manual section to the documentation pages. (oal)
  • Added .angleTo() to Vector3. (Wilt)
  • Many improvements to the editor. (mrdoob and alteredq)

2012 09 15 - r51 (405,491 KB, gzip: 99,389 KB)

  • Added STLLoader. (aleeper and mrdoob)
  • Optimised Ray (2x faster). (gero3)
  • Added .getDescendants method to Object3D. (gero3 and mrdoob)
  • SkinnedMesh can now work with MorphAnimMesh. (apendua)
  • Changed CameraHelper. Now it matches the camera independently of where it's in the scene graph. (mrdoob)
  • Removed the need for manually setting texture units with ShaderMaterial. (alteredq)
  • Added HemisphereLight. (alteredq)
  • Fixed WebGLRenderer handling of flip sided materials. (WestLangley and alteredq)
  • Added support to normals maps in MeshPhongMaterial. (crobi and alteredq)
  • Added handling of BufferGeometry for ParticleSystems. (alteredq)
  • Added support for compressed textures and cube maps to WebGLRenderer. (alteredq)
  • Outliner and Material panel improvements to the editor. (mrdoob)
  • Added material.emissive support to CanvasRenderer and SVGRenderer. (mrdoob)
  • Added handling of multiple UV layers and anisotropy to Blender exporter. (alteredq)
  • Handling bump and anisotropy in Loader and SceneLoader. (alteredq)
  • Added mousewheel support to TrackballControls. (jherrm)
  • Added MTLLoader and OBJMTLLoader. (angelxuanchang)
  • Updated UTF8Loader to latest version. (angelxuanchang and alteredq)
  • Pluginized SceneLoader. (alteredq)
  • Added support of object.renderDepth in Projector. (mrdoob)
  • Made build system more flexible. (mrdoob)
  • Many enhancements to SceneLoader. (alteredq)
  • Experimenting with CSS3DRenderer. (mrdoob)
  • Added ShapeGeometry. (jonobr1)
  • Fixes to Vector3's .setEulerFromRotationMatrix method.(WestLangley)

2012 08 15 - r50 (391,250 KB, gzip: 96,143 KB)

  • Experimenting with SoftwareRenderer. (mrdoob and rygorous)
  • Improved rotation conversion routines. (WestLangley)
  • Moved DOMRenderer and SVGRenderer out of common build. (mrdoob)
  • Improvements to Morph targets. (alteredq and gero3)
  • Added .deallocateMaterial method to WebGLRenderer. (alteredq)
  • Added .worldToLocal and .localToWorld methods to Object3D. (zz85 and WestLangley)
  • Added ConvexGeometry. (qiao)
  • Added node.js build system. (gero3)
  • Improvements to Blender exporter. (timbot and alteredq)
  • Added uvs and vertex colors support to ImmediateRenderObjects. (alteredq)
  • Started implementing LoadingMonitor and EventTarget in loaders. (mrdoob)
  • Added Path.ellipse. (linzhp)
  • Added near and far properties to Ray. (niklassa)
  • Added OrbitControls. (qiao, mrdoob and alteredq)
  • Completed some more documentation pages. (mrdoob, phenomnomnominal, FuzzYspo0N, poeschko, wwwtyro, maximeq and alteredq)
  • Completed lots more documentation pages. (sole)
  • Started reworking GUI. (mrdoob)
  • Improved python build system. (gero3)
  • Made VTKLoader parsing more robust. (mrdoob)
  • Added recursive flag to Ray. (mrdoob)
  • Handling resizes properly in controls and examples. (alteredq)
  • Improvements to ColladaLoader. (spacecookies)
  • Unflipped V coordinate across the whole library. (mrdoob and alteredq)
  • Refactored BufferGeometry. (alteredq)
  • Improved GL extensions initialisation in WebGLRenderer. (alteredq)
  • Rescued SkinnedMesh. (n3tfr34k and alteredq)
  • Made OBJLoader parsing more robust. (Dahie)
  • Implemented skinning via floating point textures. (alteredq)
  • Improved documentation system. (mrdoob and alteredq)
  • Added support for anisotropic texture filtering and standard derivatives in WebGLRenderer. (alteredq)
  • Added support for ParticleBasicMaterial without map in CanvasRenderer. (mrdoob)
  • SceneLoader now supports nested scene graphs and per object custom properties. (skfcz)
  • Camera doesn't need to be added to the scene anymore. (mrdoob)
  • Object3D's flipSided and doubleSided properties are now Material's side property. (alteredq and mrdoob)
  • Added .clone method to *Material. (gero3, mrdoob and alteredq)
  • IEWEBGL support. (iewebgl and mrdoob)
  • Added CircleGeometry. (hughes)
  • Added bumpMap to MeshPhongMaterial. (alteredq)
  • Added specularMap to MeshBasicMaterial, MeshLambertMaterial and MeshPhongMaterial. (alteredq)
  • Reworked python build system. (mrdoob)

2012 04 22 - r49 (364,242 KB, gzip: 89,057 KB)

  • Yet more ColladaLoader improvements. (ekitson, AddictArts and pblasco)
  • Created documentation system. (mrdoob)
  • Added some documentation. (mrdoob and sole)
  • Added MorphBlendMesh. (alteredq)
  • Added emissive component to WebGL Materials. (alteredq)
  • Added DepthPassPlugin. (alteredq)
  • Improvements to Path. (asutherland)
  • Improvements to Curve. (zz85)
  • Added ArrowHelper. (zz85 and WestLangley)
  • Changed depth sorting in WebGLRenderer to use world positions. (alteredq)
  • Improved physically based shading in WebGLRenderer. (WestLangley)
  • Changed depth sorting in Projector to use world positions. (mrdoob)
  • Added physical specular term also to normal map shader. (alteredq)
  • Added TubeGeometry. (zz85 and WestLangley)
  • Added needsUpdate flag to Material. (alteredq)
  • Fixed GeometryUtils.triangulateQuads. (alteredq)
  • Improvements to GeometryUtils.tessellate. (alteredq)
  • Change PlaneGeometry from XY to XZ. (mrdoob)
  • WebGLRenderer back to highp shader precision. (mrdoob)
  • Added deallocateRenderTarget to `WebGLRenderer. (kovleouf)
  • Support zIndex and scale into DOMRenderer. (ajorkowski)
  • Improvements to CameraHelper. (zz85)
  • Added 3D spline path extrusion support to ExtrudeGeometry. (zz85)
  • MarchingCubes moved out of the lib into /examples/js folder. (alteredq)
  • Added ImmediateRenderObject. (alteredq)
  • Renamed __dirty* to *NeedUpdate. (valette and mrdoob)
  • Added CustomBlending to Material and premultiplyAlpha to Texture. (alteredq)
  • Improvements to CubeCamera. (alteredq and mrdoob)
  • CanvasRenderer.setClearColor() and .setClearColorHex() now sets opacity to 1 when null. (mrdoob)
  • Fixed broken UVs in SubdivisionModifier. (zz85)
  • Renamed Matrix4's setTranslation, setRotationX, setRotationY, setRotationZ, setRotationAxis and setScale to makeTranslation, makeRotationX, makeRotationY, makeRotationZ, makeRotationAxis and makeScale. (mrdoob)
  • Matrix4 static methods makeFrustum, makePerspective, makeOrtho to non-static methods. (mrdoob)
  • Refactore handling of Matrix4 to Matrix3 inversion. (alteredq)
  • Added GodRays postprocessing. (huwb)
  • Added LinePieces support to Projector. (mrdoob)
  • Fixed UVs handling bug in GeometryUtils.tessellate. (alteredq)
  • Serious performance improvements to Matrix4, Matrix3 and Frustum. (gero3)
  • Fixes to LatheGeometry. (zz85)
  • Removed Vertex. Use Vector3 instead. (mrdoob)
  • Implemented real Spotlights. (alteredq)
  • Added ParametricGeometry. (zz85)
  • Added basic OBJLoader in /examples/js/loaders folder. (mrdoob)
  • Moved ColladaLoader and UTF8Loader to /examples/js/loaders folder. (mrdoob)
  • Added VTKLoader to /examples/js/loaders folder. (valette and mrdoob)
  • Blender exporter now supports linked groups. (Druidhawk)
  • Added visible property to Material. (mrdoob)
  • Removed Lamber+Texture support in CanvasRenderer. (mrdoob)
  • Fixed normals in CylinderGeometry. (qiao)
  • Added floating point textures support to WebGLRenderer. (mrdoob)
  • Renamed AnaglyphWebGLRenderer and co. to AnaglyphEffect & co. and moved to /examples/js/effects. (mrdoob)
  • Improvements to documentation system. (mrdoob and codler)
  • Added AsciiEffect. (zz85)

2012 03 04 - r48 (393,626 KB, gzip: 99,395 KB)

  • Added camera support to ColladaLoader. (jbaicoianu)
  • More ColladaLoader improvements. (mrdoob, AddictArts, kduong)
  • Updated IcosahedronGeometry and OctahedronGeometry with timothypratley's PolyhedronGeometry code which also brings TetrahedronGeometry. (mrdoob)
  • LOD should now behave as expected from anywhere in the scene graph. (mrdoob)
  • Added THREE.REVISION. (mrdoob)
  • Fixed cancelRequestAnimationFrame polyfill. (also)
  • Improvements to convert_obj_three.py. (alteredq)
  • Fixes to Geometry's .computeBoundingBox and .computeBoundingSphere. (alteredq)
  • Refactored ShadowMap shader. (alteredq)
  • Fixed handling of meshes with multiple materials in SceneLoader. (alteredq)
  • Changed Material's default ambient color to 0xffffff. (alteredq)
  • Added normals support to MorphTarget. (alteredq)
  • Added .setFrameRange and .setAnimationLabel to MorphAnimMesh. (alteredq)
  • Added handling of named animation sequences to MorphAnimMesh. (alteredq)
  • Extended MorphAnimMesh to be able to play animations backwards. (alteredq)
  • Added .generateDataTexture to ImageUtils. (alteredq)
  • Removed hierarchy support and .intersectScene() from Ray. (mrdoob)
  • Added .triangulateQuads to GeometryUtils. (alteredq)
  • Projector and WebGLRenderer now handles doubleSided lighting properly. (mrdoob and alteredq)
  • Fixed MorphAnimMesh playback bug where the last frame didn't display. (alteredq)
  • TrackballControls implements EventTarget. (mrdoob)
  • Added .clone to Vertex, Face3 and Face4. (alteredq)
  • Added .explode and .tessellate to GeometryUtils. (alteredq)
  • Added .lerpSelf to Vector2, Vector3 and UV. (alteredq)
  • Fixed DOMRenderer by using single-materials. (ajorkowski )
  • Added .setPrecision to Ray. (mrdoob)
  • Blender exporter now honors the "Flip YZ" option. (rectalogic)
  • Added NoBlending to Material and WebGLRenderer. (kovleouf)
  • Added .applyMatrix to Object3D. (mrdoob and alteredq)
  • Added .attach and .detach to SceneUtils to retain position in space. (alteredq)
  • Added .sign to Math. (alteredq)
  • Implemented sphinx based documentation. (ivankuzev)
  • Documented part of the API. (ivankuzev and alteredq)
  • Replaced sphinx based documentation with compilation-less sytem. (mrdoob)
  • Added default material to Mesh, Line and ParticleSystem. (mrdoob)

2012 01 14 - r47 (378,169 KB, gzip: 96,015 KB)

  • Resurrected lens flares as custom WebGLRenderer plugin. (alteredq)
  • Fixed typos in Matrix4's transpose() and getInverse(). (ekitson)
  • "Pluginized" Sprites and ShadowMaps. (alteredq)
  • Added Frustum class. (alteredq)
  • ColladaLoader improvements. (ekitson, jterrace, mrdoob and alteredq)
  • Lights in a hierarchy are now supported when using WebGLRenderer. (alteredq)
  • Included requestAnimationFrame shim in the lib. (mrdoob)
  • Started documentation effort in /doc (using sphinx). (jterrace)
  • Changed default shader precission to mediump. (mrdoob)
  • Added support for the format OpenCTM. (alteredq)
  • Added BufferGeometry for direct rendering from typed arrays. (alteredq)
  • Extended Texture class with format and type parameters. (alteredq)
  • Automatically reducing texture to max size of WebGL hardware. (greggman and alteredq)
  • Improved WebGLRenderer's Shadow Map code. (alteredq)
  • Checking for xhr.overrideMimeType before using it (fixing IE support). (mrdoob and alteredq)
  • Improved ATI and ANGLE support in across WebGLRenderer shaders. (alteredq)
  • Added generateMipmaps property to Texture and RenderTarget. (alteredq)
  • Frustum properly handling children with scaled parents. (avinoamr)
  • Fixed Ray when dealing with big polygons. (WestLangley)
  • Fixed WebGLRenderer bug where depth buffer was not cleared. (ekitson)
  • Added CameraHelper objects for visualising both Perspective and Orthographic cameras. (alteredq)
  • Improvements to Path. (zz85)
  • Improvements to Postprocessing stack. (alteredq)
  • Added shadows for DirectionalLights. (alteredq)
  • Added Gyroscope object. (alteredq)
  • Added alpha and premultipliedAlpha parameters to WebGLRenderer. (mrdoob)
  • Ray properly handling children with scaled parents. (mrdoob)
  • Renamed Axes object to AxisHelper. (mrdoob)

2011 11 17 - r46 (343.383 KB, gzip: 87.468 KB)

  • Added reflections to Normal Mapping. (alteredq)
  • Ray now checks also object children. (mrdoob)
  • *Loader.load( parameters ) to *Loader( url, callback, texturePath ). (mrdoob and alteredq)
  • Reworked scene graph setup. (mrdoob and alteredq)
  • Fixed CanvasRenderer's SphericalReflectionMapping rendering. (mrdoob)
  • Improved SubdivisionModifier. (zz85)
  • Refactored *Controls to use externally supplied time delta. (alteredq)
  • Improvements to CombinedCamera. (zz85)
  • ColladaLoader doesn't create extra Object3D. (mrdoob)
  • Improvements to Lambert and Phong materials. (alteredq)
  • Removed multi-materials for simplicity reasons. (Multi-materials will come back with MeshLayerMaterial hopefully soon) (alteredq)
  • Fixed Ray not considering edges. (mrdoob)
  • Massive cleanup to WebGLRenderer. (alteredq)
  • Ray optimisations. (mrdoob and alteredq)
  • JSON file format is now worker-less (this was crashing Chrome/Firefox with dealing with many assets). (alteredq)
  • Improved CubeGeometry, PlaneGeometry, IcosahedronGeometry and SphereGeometry. (mrdoob)
  • Improvements to Curve. (zz85)
  • Removed Collisions code and focusing on Ray. (mrdoob)
  • Added cloneObject() method to SceneUtils. (alteredq)

2011 10 06 - r45 (340.863 KB, gzip: 86.568 KB)

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

2011 09 04 - r44 (330.356 KB, gzip: 84.039 KB)

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

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)
  • Added CORS to ImageUtils. (mrdoob)
  • Refactored TextGeometry and added Shape, Curve, Path, ExtrudeGeometry, TextPath. (zz85 and alteredq)
  • Added handling of custom attributes for ParticleSystems. (alteredq)
  • Fixed CanvasRenderer.setClearColor. (mrdoob, StephenHopkins and sebleedelisle)
  • Improved uniform handling in WebGLRenderer. (alteredq)
  • Implemented Shadow Mapping in WebGLRenderer. (alteredq)
  • Added Spotlight light type. (alteredq)
  • Fixed constructor-less prototypes. (pushmatrix)
  • Added DataTexture. (alteredq)
  • WebGLRenderer opaque pass now renders from front to back. (alteredq)
  • Simplified Color. (mrdoob)
  • Added preserveDrawingBuffer option to WebGLRenderer. (jeromeetienne)
  • Added UTF8Loader for loading the new, uber compressed, UTF8 format. (alteredq)
  • CanvasRenderer now supports RepeatWrapping, texture.offset and texture.repeat. (mrdoob)
  • Removed Stencil Shadows and Lensflare code. (mrdoob)

2011 07 06 - r42 (277.852 KB, gzip: 69.469 KB)

  • Added AnaglypWebGLRenderer and CrosseyedWebGLRenderer. (mrdoob, alteredq and marklundin)
  • Added TextGeometry. (zz85 and alteredq)
  • Added setViewOffset method to Camera. (greggman)
  • Renamed geometries to *Geometry. (mrdoob)
  • Improved Blender exporter. (alteredq, sweetfish and Jhonnyg)
  • Added Blender 2.58 exporter. (georgik)
  • Fixed Matrix4.multiply(). (thanks lukem1)
  • Added support for additional Euler rotation orders in Matrix4. (rectalogic)
  • Renamed QuakeCamera to FirstPersonCamera. (chriskillpack)
  • Improved Normal Map Shader. (alteredq)
  • Collision now supports Object3D.flipSided and Object3D.doubleSided. (NINE78)
  • Removed most of SceneUtils methods. (mrdoob)
  • Removed Sound object and SoundRenderer. (mrdoob)

2011 05 31 - r41/ROME (265.317 KB, gzip: 64.849 KB)

(Up to this point, some RO.ME specific features managed to get in the lib. The aim is to clean this up in next revisions.)

  • Improved Blender Object and Scene exporters. (alteredq)
  • Fixes on WebGL attributes. (alteredq and empaempa)
  • Reduced overall memory footprint. (mrdoob)
  • Added Face4 support to CollisionSystem. (NINE78)
  • Added Blender 2.57 exporter. (remoe)
  • Added Particle support to Ray. (mrdoob and jaycrossler)
  • Improved Ray.intersectObject performance by checking boundingSphere first. (mrdoob)
  • Added TrackballCamera. (egraether)
  • Added repeat and offset properties to Texture. (mrdoob and alteredq)
  • Cleaned up Vector2, Vector3 and Vector4. (egraether)

2011 04 24 - r40 (263.774 KB, gzip: 64.320 KB)

  • Fixed Object3D.lookAt. (mrdoob)
  • More and more Blender exporter goodness. (alteredq and mrdoob)
  • Improved CollisionSystem. (drojdjou and alteredq)
  • Fixes on WebGLRenderer. (empaempa)
  • Added Trident object. (sroucheray)
  • Added data object to Renderers for getting number of vertices/faces/callDraws from last render. (mrdoob)
  • Fixed Projector handling Particles with hierarchies. (mrdoob)

2011 04 09 - r39 (249.048 KB, gzip: 61.020 KB)

  • Improved WebGLRenderer program cache. (alteredq)
  • Added support for pre-computed edges in loaders and exporters. (alteredq)
  • Added Collisions classes. (drojdjou)
  • Added Sprite object. (empaempa)
  • Fixed *Loader issue where Workers were kept alive and next loads were delayed. (alteredq)
  • Added THREE namespace to all the classes that missed it. (mrdoob)

2011 03 31 - r38 (225.442 KB, gzip: 55.908 KB)

  • Added LensFlare light. (empaempa)
  • Added ShadowVolume object (stencil shadows). (empaempa)
  • Improved Blender Exporter plus added Scene support. (alteredq)
  • Blender Importer for loading JSON files. (alteredq)
  • Added load/complete callbacks to Loader (mrdoob)
  • Minor WebGL blend mode clean up. (mrdoob)
  • *Materials now extend Material (mrdoob)
  • material.transparent define whether material is transparent or not (before we were guessing). (mrdoob)
  • Added internal program cache to WebGLRenderer (reuse already available programs). (mrdoob)

2011 03 22 - r37 (208.495 KB, gzip: 51.376 KB)

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

2011 03 14 - r36 (194.547 KB, gzip: 48.608 KB)

  • Added 3DSMAX exporter. (alteredq)
  • Fixed WebGLRenderer aspect ratio bug when scene had only one material. (mrdoob)
  • Added sizeAttenuation property to ParticleBasicMaterial. (mrdoob)
  • Added PathCamera. (alteredq)
  • Fixed WebGLRenderer bug when Camera has a parent. CameraCamera.updateMatrix method. (empaempa)
  • Fixed Camera.updateMatrix method and Object3D.updateMatrix. (mrdoob)

2011 03 06 - r35 (187.875 KB, gzip: 46.433 KB)

  • Added methods translate, translateX, translateY, translateZ and lookAt methods to Object3D. (mrdoob)
  • Added methods setViewport and setScissor to WebGLRenderer. (alteredq)
  • Added support for non-po2 textures. (mrdoob and alteredq)
  • Minor API clean up. (mrdoob)

2011 03 02 - r34 (186.045 KB, gzip: 45.953 KB)

  • Now using camera.matrixWorldInverse instead of camera.matrixWorld for projecting. (empaempa and mrdoob)
  • Camel cased properties and object json format (Re-exporting of models required) (alteredq)
  • Added QuakeCamera for easy fly-bys (alteredq)
  • Added LOD example (alteredq)

2011 02 26 - r33 (184.483 KB, gzip: 45.580 KB)

  • Changed build setup (build/Three.js now also include extras) (mrdoob)
  • Added ParticleSystem object to WebGLRenderer (alteredq)
  • Added Line support to WebGLRenderer (alteredq)
  • Added vertex colors support to WebGLRenderer (alteredq)
  • Added Ribbon object. (alteredq)
  • Added updateable textures support to WebGLRenderer (alteredq)
  • Added Sound object and SoundRenderer. (empaempa)
  • LOD, Bone, SkinnedMesh objects and hierarchy being developed. (empaempa)
  • Added hierarchies examples (mrdoob)

2010 12 31 - r32 (89.301 KB, gzip: 21.351 KB)

  • Scene now supports Fog and FogExp2. WebGLRenderer only right now. (alteredq)
  • Added setClearColor( hex, opacity ) to WebGLRenderer and CanvasRenderer (alteredq & mrdoob)
  • WebGLRenderer shader system refactored improving performance. (alteredq)
  • Projector now does frustum culling of all the objects using their sphereBoundingBox. (thx errynp)
  • material property changed to materials globaly.

2010 12 06 - r31 (79.479 KB, gzip: 18.788 KB)

  • Minor Materials API change (mappings). (alteredq & mrdoob)
  • Added Filters to WebGLRenderer
  • python build.py --includes generates includes string

2010 11 30 - r30 (77.809 KB, gzip: 18.336 KB)

  • Reflection and Refraction materials support in WebGLRenderer (alteredq)
  • SmoothShading support on CanvasRenderer/MeshLambertMaterial
  • MeshShaderMaterial for WebGLRenderer (alteredq)
  • Removed RenderableFace4 from Projector/CanvasRenderer (maybe just temporary).
  • Added extras folder with GeometryUtils, ImageUtils, SceneUtils and ShaderUtils (alteredq & mrdoob)
  • Blender 2.5x Slim now the default exporter (old exporter removed).

2010 11 17 - r29 (69.563 KB)

  • New materials API Still work in progress, but mostly there. (alteredq & mrdoob)
  • Line clipping in CanvasRenderer (julianwa)
  • Refactored CanvasRenderer and SVGRenderer. (mrdoob)
  • Switched to Closure compiler.

2010 11 04 - r28 (62.802 KB)

  • Loader class allows load geometry asynchronously at runtime. (alteredq)
  • MeshPhongMaterial working with WebGLRenderer. (alteredq)
  • Support for huge objects. Max 500k polys and counting. (alteredq)
  • Projector.unprojectVector and Ray class to check intersections with faces (based on mindlapse work)
  • Fixed Projector z-sorting (not as jumpy anymore).
  • Fixed Orthographic projection (was y-inverted).
  • Hmmm.. lib file size starting to get too big...

2010 10 28 - r25 (54.480 KB)

  • WebGLRenderer now up to date with other renderers! (alteredq)
  • .obj to .js python converter (alteredq)
  • Blender 2.54 exporter
  • Added MeshFaceMaterial (multipass per face)
  • Reworked CanvasRenderer and SVGRenderer material handling

2010 10 06 - r18 (44.420 KB)

  • 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

2010 09 17 - r17 (39.487 KB)

  • Added Light, AmbientLight and DirectionalLight (philogb)
  • WebGLRenderer basic lighting support (philogb)
  • Memory optimisations

2010 08 21 - r16 (35.592 KB)

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

2010 07 23 - r15 (32.440 KB)

  • 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

2010 07 17 - r14 (32.144 KB)

  • 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

2010 07 12 - r13 (29.492 KB)

  • Added ParticleCircleMaterial and ParticleBitmapMaterial
  • Particle now use ParticleCircleMaterial instead of ColorFillMaterial
  • Particle.size > Particle.scale.x and Particle.scale.y
  • Particle.rotation.z for rotating the particle
  • SVGRenderer currently out of sync

2010 07 07 - r12 (28.494 KB)

  • 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

2010 07 03 - r11 (23.541 KB)

  • Blender 2.5 exporter (utils/export_threejs.py) now exports UV and normals (Thx kikko)
  • Scene.add > Scene.addObject
  • Enabled Scene.removeObject

2010 06 22 - r10 (23.959 KB)

  • Changed Camera system. (Thx Paul Brunt)
  • Object3D.overdraw = true to enable CanvasRenderer screen space point expansion hack.

2010 06 20 - r9 (23.753 KB)

  • JSLinted.
  • autoClear property for renderers.
  • Removed SVG rgba() workaround for WebKit. (WebKit now supports it)
  • Fixed matrix bug. (transformed objects outside the x axis would get infinitely tall :S)

2010 06 06 - r8 (23.496 KB)

  • Moved UVs to Geometry.
  • CanvasRenderer expands screen space points (workaround for antialias gaps).
  • CanvasRenderer supports BitmapUVMappingMaterial.

2010 06 05 - r7 (22.387 KB)

  • Added Line Object.
  • Workaround for WebKit not supporting rgba() in SVG yet.
  • No need to call updateMatrix(). Use .autoUpdateMatrix = false if needed. (Thx Gregory Athons).

2010 05 17 - r6 (21.003 KB)

  • 2d clipping on CanvasRenderer and SVGRenderer
  • clearRect optimisations on CanvasRenderer

2010 05 16 - r5 (19.026 KB)

  • Removed Class.js dependency
  • Added THREE namespace
  • Camera.x -> Camera.position.x
  • Camera.target.x > Camera.target.position.x
  • ColorMaterial > ColorFillMaterial
  • FaceColorMaterial > FaceColorFillMaterial
  • Materials are now multipass (use array)
  • Added ColorStrokeMaterial and FaceColorStrokeMaterial
  • geometry.faces.a are now indexes instead of references

2010 04 26 - r4 (16.274 KB)

  • SVGRenderer Particle rendering
  • CanvasRenderer uses context.setTransform to avoid extra calculations

2010 04 24 - r3 (16.392 KB)

  • Fixed incorrect rotation matrix transforms
  • Added Plane and Cube primitives

2010 04 24 - r2 (15.724 KB)

  • Improved Color handling

2010 04 24 - r1 (15.25 KB)

  • First alpha release

three.js's People

Contributors

addictarts avatar alteredq avatar andsve avatar angelxuanchang avatar apendua avatar benaadams avatar bhouston avatar egraether avatar ekitson avatar empaempa avatar gero3 avatar greggman avatar ivankuzev avatar jhonnyg avatar jonobr1 avatar jsermeno avatar jterrace avatar julianwa avatar mrdoob avatar mrienstra avatar nine78 avatar orgicus avatar philogb avatar qiao avatar sole avatar tapio avatar timknip2 avatar westlangley avatar zfedoran avatar zz85 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.