Three.js
Page Module:Infobox/styles.css has no content.
| Three.js | |
|---|---|
| Lua error in package.lua at line 80: module 'Module:InfoboxImage/data' not found. | |
| [[Programmer|Original authorTemplate:Pluralize from text]] | Ricardo Cabello (Mr.doob) |
| [[Programmer|DeveloperTemplate:Pluralize from text]] | Three.js Authors[1] |
| Initial release | April 24, 2010[2] |
| Written in | JavaScript, GLSL |
| Type | JavaScript library |
| License | MIT[1] |
| Website | threejs |
Script error: No such module "Check for conflicting parameters".
Three.js is a cross-browser JavaScript library and application programming interface (API) used to create and display animated 3D computer graphics in a web browser using WebGL. The source code is hosted in a repository on GitHub.[3]
Overview
Three.js allows the creation of graphical processing unit (GPU)-accelerated 3D animations using the JavaScript language as part of a website without relying on proprietary browser plugins.[4][5] This is possible due to the advent of WebGL,[6] a low-level graphics API created specifically for the web.[7]
High-level libraries such as Three.js, Babylon.js, Verge3D and many more make it possible to author complex 3D computer animations for display in the browser without the effort required for a traditional standalone application or a plugin.[8]
History
Three.js was first released by Ricardo Cabello on GitHub in April 2010.[2] The origins of the library can be traced back to his involvement with the demoscene in the early 2000s.[9] The code was originally developed in the ActionScript language used by Adobe Flash, later being ported to JavaScript in 2009. In Cabello's mind, there were two strong points that justified the shift away from ActionScript: Firstly, JavaScript provided greater platform independence. Secondly, applications written in JavaScript would not need to be compiled by the developer beforehand, unlike Flash applications.
Additional contributions by Cabello include API design, CanvasRenderer, SVGRenderer, and being responsible for merging the commits by the various contributors into the project.
With the advent of WebGL, Paul Brunt was able to implement the new rendering technology quite easily as Three.js was designed with the rendering code as a module rather than in the core itself.[10] Branislav Uličný, an early contributor, started with Three.js in 2010 after having posted a number of WebGL demos on his own site. He wanted WebGL renderer capabilities in Three.js to exceed those of CanvasRenderer or SVGRenderer.[10] His major contributions generally involve materials, shaders, and post-processing.
Soon after the introduction of WebGL 1.0 on Firefox 4 in March 2011, Joshua Koo came on board. He built his first Three.js demo for 3D text in September 2011.[10] His contributions frequently relate to geometry generation.
Starting from version 118, Three.js uses WebGL 2.0 by default.[11]
Three.js has over 2000 contributors on GitHub.[12]
Features
Three.js includes the following features:[13]
- Effects: Anaglyph, cross-eyed, and parallax barrier.
- Scenes: add and remove objects at run-time; fog
- Cameras: perspective and orthographic; controllers: trackball, FPS, path and more
- Animation: armatures, forward kinematics, inverse kinematics, morph, and keyframe
- Lights: ambient, direction, point, and spot lights; shadows: cast and receive
- Materials: Lambert, Phong, smooth shading, textures, and more
- Shaders: access to full OpenGL Shading Language (GLSL) capabilities: lens flare, depth pass, and extensive post-processing library
- Objects: meshes, particles, sprites, lines, ribbons, bones, and more - all with Level of detail
- Geometry: plane, cube, sphere, torus, 3D text, and more; modifiers: lathe, extrude, and tube
- Import/export: native serialization/deserialization via JSON, glTF, OBJ, USDZ, and more.
- Utilities: full set of time and 3D math functions including Viewing frustum, matrix, quaternion, UVs, and more
- Support: API documentation is under construction. A public forum and wiki is in full operation.
- Examples: Over 150 files of coding examples plus fonts, models, textures, sounds, and other support files
- Debugging: Stats.js,[14] WebGL Inspector,[15] Three.js Inspector[16]
- Virtual and Augmented Reality via WebXR[17]
- Physically based rendering (PBR): support for physically accurate materials like MeshStandardMaterial and MeshPhysicalMaterial[18][19]
- Instancing: use of InstancedMesh for efficient rendering of thousands of repeated objects[20]
- Post-processing: built-in post-processing pipeline with effects such as bloom, depth of field, outline, motion blur, SSAO, and FXAA[21][22]
- Built-in editor: graphical scene editor available online for building and exporting 3D scenes[23]
- Interactive controls: built-in controls such as OrbitControls, DragControls, TransformControls, and PointerLockControls for user interaction and navigation[24][25]
- Alternative renderers: in addition to WebGLRenderer,[26] Three.js also provides SVGRenderer[27] and CSS3DRenderer,[28] as well as experimental support for WebGPURenderer.
Three.js runs in all browsers with support for WebGL 2.0.
Three.js is made available under the MIT License.[1]
See also
Lua error in mw.title.lua at line 404: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').
References
Page Template:Reflist/styles.css has no content.
- ^ a b c Page Module:Citation/CS1/styles.css has no content."Three.js/license". github.com/mrdoob. Retrieved 20 May 2012.
- ^ a b Page Module:Citation/CS1/styles.css has no content."First commit". github.com/mrdoob. Retrieved 20 May 2012.
- ^ Page Module:Citation/CS1/styles.css has no content.Mr.doob (2021-03-04), mrdoob/three.js, retrieved 2021-03-04
- ^ O3D
- ^ Unity (game engine)
- ^ Page Module:Citation/CS1/styles.css has no content."Khronos Releases Final WebGL 1.0 Specification". Khronos Group. March 3, 2011. Retrieved 2 June 2012.
- ^ Page Module:Citation/CS1/styles.css has no content."WebGL". The Khronos Group. 2011-07-19. Retrieved 2022-01-22.
- ^ Page Module:Citation/CS1/styles.css has no content.Crossley, Rob (11 January 2010). "Study: Average dev costs as high as $28m". Intent Media Ltd. Archived from the original on 13 January 2010. Retrieved 2 June 2012.
- ^ Page Module:Citation/CS1/styles.css has no content.NVScene (24 March 2015). "NVScene 2015 Session: Reinventing The Wheel - One Last Time (Ricardo Cabello)". YouTube.
- ^ a b c Page Module:Citation/CS1/styles.css has no content."Three.js White Paper". Github.com. 2012-05-21. Retrieved 2013-05-09.
- ^ Page Module:Citation/CS1/styles.css has no content."Release r118 · mrdoob/three.js" (Press release). Retrieved 2023-05-24.
- ^ Page Module:Citation/CS1/styles.css has no content.mrdoob (2026-02-17), mrdoob/three.js, retrieved 2026-02-17
- ^ Page Module:Citation/CS1/styles.css has no content.mrdoob (2012-11-26). "Features mrdoob/three.js Wiki GitHub". Github.com. Retrieved 2013-05-09.
- ^ Page Module:Citation/CS1/styles.css has no content."Stats.js". Github.com. Retrieved 2013-05-09.
- ^ Page Module:Citation/CS1/styles.css has no content."WebGL Inspector". Benvanik.github.com. Archived from the original on 2023-03-14. Retrieved 2013-05-09.
- ^ Page Module:Citation/CS1/styles.css has no content."Three.js Inspector Labs". Zz85.github.com. Archived from the original on 2023-01-27. Retrieved 2013-05-09.
- ^ Page Module:Citation/CS1/styles.css has no content."three.js examples". threejs.org.
- ^ Page Module:Citation/CS1/styles.css has no content."MeshStandardMaterial – three.js docs". threejs.org.
- ^ Page Module:Citation/CS1/styles.css has no content."MeshPhysicalMaterial – three.js docs". threejs.org.
- ^ Page Module:Citation/CS1/styles.css has no content."InstancedMesh – three.js docs". threejs.org.
- ^ Page Module:Citation/CS1/styles.css has no content."EffectComposer – three.js docs". threejs.org.
- ^ Page Module:Citation/CS1/styles.css has no content."Post-processing examples – three.js". threejs.org.
- ^ Page Module:Citation/CS1/styles.css has no content."three.js editor". threejs.org.
- ^ Page Module:Citation/CS1/styles.css has no content."OrbitControls – three.js docs". threejs.org.
- ^ Page Module:Citation/CS1/styles.css has no content."TransformControls – three.js docs". threejs.org.
- ^ Page Module:Citation/CS1/styles.css has no content."WebGLRenderer – three.js docs". threejs.org.
- ^ Page Module:Citation/CS1/styles.css has no content."SVGRenderer – three.js docs". threejs.org.
- ^ Page Module:Citation/CS1/styles.css has no content."CSS3DRenderer – three.js docs". threejs.org.
Further reading
- Page Module:Citation/CS1/styles.css has no content.Dirksen, Jos (2013). Learning Three.js: The JavaScript 3D Library for WebGL. UK: Packt Publishing. ISBN 9781782166283. Archived from the original on 2014-07-08. Retrieved 2013-10-22.
- Page Module:Citation/CS1/styles.css has no content.Parisi, Tony (2012). Webgl Up and Running. Sebastopol: Oreilly & Associates Inc. ISBN 9781449323578.
- Page Module:Citation/CS1/styles.css has no content.Seidelin, Jacob (2012). HTML5 games : creating fun with HTML5, CSS3, and WebGL. Chichester, West Sussex, U.K: John Wiley & Sons. pp. 412–414. ISBN 978-1119975083. - "Three.js can make game development easier by taking care of low-level details"
- Page Module:Citation/CS1/styles.css has no content.Williams, James (2012). Learning HTML5 game programming : a hands-on guide to building online games using Canvas, SVG, and WebGL. Upper Saddle River, NJ: Addison-Wesley. pp. 117–120, 123–131, 136, 140–142. ISBN 978-0321767363.
- Page Module:Citation/CS1/styles.css has no content.Raasch, Jon (2011). Smashing WebKit. Chichester: Wiley. pp. 181, 182, 216. ISBN 978-1119999133.
External links
Page Module:Side box/styles.css has no content.Page Template:Sister project/styles.css has no content.
Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found.