Content deleted Content added
Rescuing 2 sources and tagging 0 as dead.) #IABot (v2.0.9.5) (Whoop whoop pull up - 21816 |
Reverted 2 edits by 2A02:810D:7289:800:6DAE:8D5C:3817:F971 (talk): Spam |
||
(13 intermediate revisions by 11 users not shown) | |||
Line 17:
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 plugin]]s.<ref>[[O3D]]</ref><ref>[[Unity (game engine)]]</ref> This is possible due to the advent of [[WebGL]],<ref>{{cite news|title=Khronos Releases Final WebGL 1.0 Specification|url=http://www.khronos.org/news/press/khronos-releases-final-webgl-1.0-specification|accessdate=2 June 2012|newspaper=Khronos Group|date=March 3, 2011}}</ref> a low-level graphics API created specifically for the web.<ref>{{Cite web|date=2011-07-19|title=WebGL|url=https://www.khronos.org//|access-date=2022-01-22|website=The Khronos Group|language=en}}</ref>
High-level libraries such as Three.js
== History ==
Three.js was first released by Ricardo Cabello on GitHub in April 2010.<ref name="firstcommit" /> The origins of the library can be traced back to his involvement with the [[demoscene]] in the early 2000s.<ref>{{cite web|url=https://www.youtube.com/watch?v=LXWYOF4VibE|author=NVScene|publisher=YouTube|title=NVScene 2015 Session: Reinventing The Wheel - One Last Time (Ricardo Cabello)|date=24 March 2015 }}</ref> 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.
Line 30:
Starting from version 118, Three.js uses WebGL 2.0 by default. Older version of the standard is still available via WebGL1Renderer class.<ref>{{cite press release |url=https://github.com/mrdoob/three.js/releases/tag/r118 |title=Release r118 · mrdoob/three.js |accessdate=2023-05-24}}</ref>
Three.js has over
== Features ==
Line 51:
* Debugging: Stats.js,<ref>{{cite web|url=https://github.com/mrdoob/stats.js |title=Stats.js |publisher=Github.com |date= |accessdate=2013-05-09}}</ref> WebGL Inspector,<ref>{{cite web |url=https://benvanik.github.com/WebGL-Inspector/ |title=WebGL Inspector |publisher=Benvanik.github.com |date= |accessdate=2013-05-09 |archive-date=2023-03-14 |archive-url=https://web.archive.org/web/20230314161016/http://benvanik.github.com/WebGL-Inspector/ |url-status=dead }}</ref> Three.js Inspector<ref>{{cite web |url=https://zz85.github.com/zz85-bookmarklets/threelabs.html |title=Three.js Inspector Labs |publisher=Zz85.github.com |date= |accessdate=2013-05-09 |archive-date=2023-01-27 |archive-url=https://web.archive.org/web/20230127155952/https://zz85.github.com/zz85-bookmarklets/threelabs.html |url-status=dead }}</ref>
* Virtual and Augmented Reality via [[WebXR]]<ref>{{Cite web|url=https://threejs.org/examples/?q=webxr|title=three.js examples|website=threejs.org}}</ref>
* Physically based rendering (PBR): support for physically accurate materials like MeshStandardMaterial and MeshPhysicalMaterial<ref>{{cite web |url=https://threejs.org/docs/#api/en/materials/MeshStandardMaterial |title=MeshStandardMaterial – three.js docs |website=threejs.org}}</ref><ref>{{cite web |url=https://threejs.org/docs/#api/en/materials/MeshPhysicalMaterial |title=MeshPhysicalMaterial – three.js docs |website=threejs.org}}</ref>
Three.js runs in all browsers supported by WebGL 1.0.▼
* Instancing: use of InstancedMesh for efficient rendering of thousands of repeated objects<ref>{{cite web |url=https://threejs.org/docs/#api/en/objects/InstancedMesh |title=InstancedMesh – three.js docs |website=threejs.org}}</ref>
* Post-processing: built-in post-processing pipeline with effects such as bloom, depth of field, outline, motion blur, SSAO, and FXAA<ref>{{cite web |url=https://threejs.org/docs/#examples/en/postprocessing/EffectComposer |title=EffectComposer – three.js docs |website=threejs.org}}</ref><ref>{{cite web |url=https://threejs.org/examples/?q=post#webgl_postprocessing |title=Post-processing examples – three.js |website=threejs.org}}</ref>
* Built-in editor: graphical scene editor available online for building and exporting 3D scenes<ref>{{cite web |url=https://threejs.org/editor/ |title=three.js editor |website=threejs.org}}</ref>
* Interactive controls: built-in controls such as OrbitControls, DragControls, TransformControls, and PointerLockControls for user interaction and navigation<ref>{{cite web |url=https://threejs.org/docs/#examples/en/controls/OrbitControls |title=OrbitControls – three.js docs |website=threejs.org}}</ref><ref>{{cite web |url=https://threejs.org/docs/#examples/en/controls/TransformControls |title=TransformControls – three.js docs |website=threejs.org}}</ref>
* Alternative renderers: in addition to WebGLRenderer,<ref>{{cite web |url=https://threejs.org/docs/#api/en/renderers/WebGLRenderer |title=WebGLRenderer – three.js docs |website=threejs.org}}</ref> Three.js also provides SVGRenderer<ref>{{cite web |url=https://threejs.org/docs/#examples/en/renderers/SVGRenderer |title=SVGRenderer – three.js docs |website=threejs.org}}</ref> and CSS3DRenderer,<ref>{{cite web |url=https://threejs.org/docs/#examples/en/renderers/CSS3DRenderer |title=CSS3DRenderer – three.js docs |website=threejs.org}}</ref> as well as experimental support for WebGPURenderer.
Three.js is made available under the [[MIT License]].<ref name="license" />
Line 87 ⟶ 99:
[[Category:Software using the MIT license]]
[[Category:WebGL]]
|