Three.js es una biblioteca de JavaScript y una interfaz de programación de aplicaciones (API) que se puede usar en varios navegadores y que se utiliza para crear y mostrar gráficos de computadora animados en 3D en un navegador web mediante WebGL . El código fuente está alojado en un repositorio en GitHub . [3]
Descripción general
Three.js permite la creación de animaciones 3D aceleradas por unidad de procesamiento gráfico (GPU) utilizando el lenguaje JavaScript como parte de un sitio web sin depender de complementos de navegador propietarios . [4] [5] Esto es posible gracias a la llegada de WebGL , [6] una API de gráficos de bajo nivel creada específicamente para la web. [7]
Las bibliotecas de alto nivel como Three.js o GLGE , Scene.js, PhiloGL y muchas más permiten crear animaciones 3D complejas para visualizar en el navegador sin el esfuerzo que requiere una aplicación independiente tradicional o un complemento. [8]
Historia
Three.js fue lanzado por primera vez por Ricardo Cabello en GitHub en abril de 2010. [2] Los orígenes de la biblioteca se remontan a su participación en la demoscene a principios de la década de 2000. [9] El código se desarrolló originalmente en el lenguaje ActionScript utilizado por Adobe Flash , y luego se adaptó a JavaScript en 2009. En la mente de Cabello, había dos puntos fuertes que justificaban el cambio de ActionScript: en primer lugar, JavaScript proporcionaba una mayor independencia de la plataforma. En segundo lugar, las aplicaciones escritas en JavaScript no necesitarían ser compiladas por el desarrollador de antemano, a diferencia de las aplicaciones Flash.
Las contribuciones adicionales de Cabello incluyen el diseño de API, CanvasRenderer, SVGRenderer y ser responsable de fusionar las confirmaciones de los distintos contribuyentes en el proyecto.
Con la llegada de WebGL , Paul Brunt pudo implementar la nueva tecnología de renderizado con bastante facilidad, ya que Three.js fue diseñado con el código de renderizado como un módulo en lugar de en el núcleo mismo. [10] Branislav Uličný, uno de los primeros colaboradores, comenzó con Three.js en 2010 después de haber publicado varias demostraciones de WebGL en su propio sitio. Quería que las capacidades de renderizado de WebGL en Three.js superaran las de CanvasRenderer o SVGRenderer. [10] Sus principales contribuciones generalmente involucran materiales, sombreadores y posprocesamiento.
Poco después de la introducción de WebGL 1.0 en Firefox 4 en marzo de 2011, Joshua Koo se unió al equipo. En septiembre de 2011, creó su primera demostración de Three.js para texto 3D . [10] Sus contribuciones se relacionan frecuentemente con la generación de geometría.
A partir de la versión 118, Three.js utiliza WebGL 2.0 de forma predeterminada. La versión anterior del estándar aún está disponible a través de la clase WebGL1Renderer. [11]
Three.js tiene más de 1700 colaboradores en GitHub. [12]
Características
Three.js incluye las siguientes características: [13]
- Efectos: Anaglifo, bizco y barrera de paralaje.
- Escenas: agregar y eliminar objetos en tiempo de ejecución; niebla
- Cámaras: perspectiva y ortográfica; controladores: trackball, FPS , trayectoria y más
- Animación: armaduras, cinemática directa , cinemática inversa , transformación y fotograma clave
- Luces: ambientales, direccionales, puntuales y focales; sombras: proyectadas y recibidas
- Materiales: Lambert , Phong , sombreado suave, texturas y más.
- Shaders: acceso a todas las capacidades del lenguaje de sombreado OpenGL ( GLSL ): destello de lente , paso de profundidad y una amplia biblioteca de posprocesamiento
- Objetos: mallas, partículas, sprites, líneas, cintas, huesos y más, todo con nivel de detalle.
- Geometría: plano, cubo, esfera, toro, texto 3D y más; modificadores: torno, extrusión y tubo
- Importación/exportación: serialización/deserialización nativa a través de JSON , glTF , OBJ , USDZ y más.
- Utilidades: conjunto completo de funciones matemáticas de tiempo y 3D que incluyen visualización de frustum , matriz , cuaternión , UV y más
- Soporte: La documentación de la API está en construcción. Un foro público y una wiki están en pleno funcionamiento.
- Ejemplos: Más de 150 archivos de ejemplos de codificación, además de fuentes, modelos, texturas, sonidos y otros archivos de soporte.
- Depuración: Stats.js, [14] Inspector WebGL, [15] Inspector Three.js [16]
- Realidad virtual y aumentada a través de WebXR [17]
Three.js se ejecuta en todos los navegadores compatibles con WebGL 1.0.
Three.js está disponible bajo la licencia MIT . [1]
Véase también
- Experimentos de Google Chrome
- Lista de frameworks WebGL
- Marco de JavaScript
- Biblioteca de JavaScript
Referencias
- ^ abc "Three.js/license". github.com/mrdoob . Consultado el 20 de mayo de 2012 .
- ^ ab "Primera confirmación". github.com/mrdoob . Consultado el 20 de mayo de 2012 .
- ^ Mr.doob (4 de marzo de 2021), mrdoob/three.js , consultado el 4 de marzo de 2021
- ^ O3D
- ^ Unity (motor de juego)
- ^ "Khronos lanza la especificación final de WebGL 1.0". Khronos Group . 3 de marzo de 2011 . Consultado el 2 de junio de 2012 .
- ^ "WebGL". The Khronos Group . 19 de julio de 2011 . Consultado el 22 de enero de 2022 .
- ^ Crossley, Rob (11 de enero de 2010). «Estudio: los costes de desarrollo medios son de hasta 28 millones de dólares». Intent Media Ltd. Archivado desde el original el 13 de enero de 2010. Consultado el 2 de junio de 2012 .
- ^ NVScene. "Sesión NVScene 2015: Reinventando la rueda - Una última vez (Ricardo Cabello)". YouTube.
- ^ abc "Libro blanco de Three.js". Github.com. 21 de mayo de 2012. Consultado el 9 de mayo de 2013 .
- ^ "Release r118 · mrdoob/three.js" (Nota de prensa) . Consultado el 24 de mayo de 2023 .
- ^ Mr.doob (3 de agosto de 2020), mrdoob/three.js , consultado el 24 de mayo de 2023
- ^ mrdoob (26 de noviembre de 2012). "Características de mrdoob/three.js Wiki GitHub". Github.com . Consultado el 9 de mayo de 2013 .
- ^ "Stats.js". Github.com . Consultado el 9 de mayo de 2013 .
- ^ "WebGL Inspector". Benvanik.github.com . Consultado el 9 de mayo de 2013 .
- ^ "Three.js Inspector Labs". Zz85.github.com . Consultado el 9 de mayo de 2013 .
- ^ "ejemplos de three.js". threejs.org .
Lectura adicional
- Dirksen, Jos (2013). Learning Three.js: La biblioteca 3D de JavaScript para WebGL. Reino Unido: Packt Publishing. ISBN 9781782166283.
- Parisi, Tony (2012). Webgl en funcionamiento . Sebastopol: Oreilly & Associates Inc. ISBN 9781449323578.
- Seidelin, Jacob (2012). Juegos HTML5: cómo crear diversión con HTML5, CSS3 y WebGL . Chichester, West Sussex, Reino Unido: John Wiley & Sons. pp. 412–414. ISBN 978-1119975083.- "Three.js puede facilitar el desarrollo de juegos al ocuparse de los detalles de bajo nivel"
- Williams, James (2012). Aprendizaje de la programación de juegos en HTML5: una guía práctica para crear juegos en línea con Canvas, SVG y WebGL . Upper Saddle River, NJ: Addison-Wesley. págs. 117–120, 123–131, 136, 140–142. ISBN 978-0321767363.
- Raasch, Jon (2011). Smashing WebKit . Chichester: Wiley. Págs. 181, 182, 216. ISBN. 978-1119999133.
Enlaces externos
- Sitio web oficial