Three.js

Three.js
Kehittäjä Three.js Authors[1]
Tiedot
Ohjelmointikielet JavaScript, GLSL
Lisenssi MIT[1]
Aiheesta muualla
Verkkosivusto

Three.js on usealle selaimelle yhteensopiva JavaScript-kirjasto ja sovellusrajapinta (API), jota käytetään animoidun 3D-tietokonegrafiikan luomiseen ja näyttämiseen verkkoselaimessa WebGL:n avulla. Lähdekoodia isännöidään GitHubin arkistossa.

Yleiskatsaus

Three.js mahdollistaa graafisten prosessointiyksiköiden (GPU) kiihdytettyjen 3D-animaatioiden luomisen käyttämällä JavaScript- kieltä osana verkkosivustoa ilman selainlaajennuksiin turvautumista. [2] [3] Tämä on mahdollista WebGL:n avulla.

Korkean tason kirjastot, kuten Three.js tai GLGE, SceneJS, PhiloGL ja monet muut, mahdollistavat monimutkaisten 3D-tietokoneanimaatioiden tekemisen selaimessa näytettäväksi ilman perinteisen itsenäisen sovelluksen tai selainlaajennuksen vaatimaa vaivaa. [4]

Historia

Three.js:n ensimmäisen version julkaisi kerran Ricardo Cabello GitHubissa huhtikuussa 2010. Three.js:n inspiraatio voidaan jäljittää hänen osallistumiseensa demoskeneen 2000-luvun alussa. [5] Koodi kehitettiin alun perin ActionScript- kielellä, ja se siirrettiin myöhemmin JavaScriptiin vuonna 2009. Cabellon mielestä oli kaksi vahvaa syytä, jotka perustelivat siirtymisen pois ActionScriptistä: JavaScript tarjosi alustariippumattomuuden ja toiseksi JavaScriptillä kirjoitettuja sovelluksia ei tarvitse kääntää kehittäjän toimesta, toisin kuin Flash-sovelluksia. Muita Cabellon panostuksia ovat API-suunnittelu, CanvasRenderer, SVGRenderer sekä ensisijainen vastuu eri osallistujien kontribuutioiden yhdistämisestä projektiin.

WebGL:n myötä Paul Brunt pystyi toteuttamaan uuden renderöintiteknologian, koska Three.js suunniteltiin niin, että renderöintikoodi oli suunniteltu moduuliksi. [6] Branislav Uličný aloitti Three.js:n kanssa vuonna 2010 julkaistuaan useita WebGL- demoja omalle sivustolleen. Hän halusi, että Three.js:n WebGL- renderöintiominaisuudet ylittävät CanvasRendererin tai SVGRendererin ominaisuudet. [6] Hänen tärkeimmät panostuksensa ovat materiaalit, varjostimet ja jälkikäsittely.

Kun WebGL 1.0 esiteltiin Firefox 4:ssä maaliskuussa 2011, Joshua Koo liittyi mukaan projektiin. Hän rakensi ensimmäisen Three.js-demonsa 3D-tekstiä varten syyskuussa 2011. [6] Hänen kontribuutionsa liittyvät usein geometrian luomiseen.

Ominaisuudet

Three.js sisältää seuraavat ominaisuudet: [7]

  • Vaikutukset: Anaglyfi, ristisilmäinen ja parallaksieste.
  • Kohtaukset: lisää ja poista objekteja ajon aikana; sumu
  • Kamerat: perspektiivi ja ortografia; ohjaimet: ohjauspallo, FPS, polku ja paljon muuta
  • Animaatio: ankkurit, eteenpäin suuntautuva kinematiikka, käänteinen kinematiikka, morfi ja avainkehys
  • Valot: ympäristö-, suunta-, piste- ja kohdevalot; varjot: heittää ja ottaa vastaan
  • Materiaalit: Lambert, Phong, sileä varjostus, tekstuurit ja paljon muuta
  • Shaders: pääsy kaikkiin OpenGL Shading Language ( GLSL ) -ominaisuuksiin: linssin heijastus, syvyyspäästö ja laaja jälkikäsittelykirjasto
  • Objektit: verkot, hiukkaset, spriitit, viivat, nauhat, luut ja paljon muuta - kaikki yksityiskohtaisesti
  • Geometria: taso, kuutio, pallo, torus, 3D-teksti ja paljon muuta; modifiointiaineet: sorvi, suulakepuristus ja putki
  • Tuonti/vienti: alkuperäinen serialisointi/deserialisointi JSON-, glTF-, OBJ-, USDZ- ja muiden kautta.
  • Apuohjelmat: täysi sarja aika- ja 3D-matemaattisia toimintoja, mukaan lukien frustum, matriisi, quaternion, UVs ja paljon muuta
  • Tuki: API-dokumentaatio on rakenteilla. Julkinen foorumi ja wiki ovat täydessä toiminnassa.
  • Esimerkkejä: yli 150 tiedostoa koodausesimerkkejä sekä kirjasimia, malleja, tekstuuria, ääniä ja muita tukitiedostoja
  • Vianetsintä: Stats.js, [8] WebGL Inspector, [9] Three.js Inspector [10]
  • Virtuaalinen ja lisätty todellisuus WebXR:n kautta [11]

Three.js toimii kaikissa WebGL 1.0:n tukemissa selaimissa. Three.js on saatavilla MIT-lisenssillä.

Lähteet

  1. a b Three.js/license github.com/mrdoob. Viitattu 20 May 2012.
  2. O3Dlähde?
  3. Unity (game engine)lähde?
  4. Crossley: Study: Average dev costs as high as $28m 11 January 2010. Intent Media Ltd. Arkistoitu 13 January 2010.
  5. NVScene: NVScene 2015 Session: Reinventing The Wheel - One Last Time (Ricardo Cabello) YouTube.
  6. a b c Three.js White Paper 21.5.2012. Github.com. Viitattu 9.5.2013.
  7. mrdoob: Features mrdoob/three.js Wiki GitHub 26.11.2012. Github.com. Viitattu 9.5.2013.
  8. Stats.js Github.com. Viitattu 9.5.2013.
  9. WebGL Inspector Benvanik.github.com. Arkistoitu 14.3.2023. Viitattu 9.5.2013.
  10. Three.js Inspector Labs Zz85.github.com. Arkistoitu 27.1.2023. Viitattu 9.5.2013.
  11. three.js examples threejs.org.

Kirjallisuutta

  • Dirksen: Learning Three.js: The JavaScript 3D Library for WebGL. UK: Packt Publishing, 2013. ISBN 9781782166283 Teoksen verkkoversio.
  • Parisi: Webgl Up and Running. Sebastopol: Oreilly & Associates Inc, 2012. ISBN 9781449323578
  • Seidelin: HTML5 games : creating fun with HTML5, CSS3, and WebGL, s. 412–414. Chichester, West Sussex, U.K: John Wiley & Sons, 2012. ISBN 978-1119975083 - "Three.js can make game development easier by taking care of low-level details"
  • Williams: Learning HTML5 game programming : a hands-on guide to building online games using Canvas, SVG, and WebGL, s. 117–120, 123–131, 136, 140–142. Upper Saddle River, NJ: Addison-Wesley, 2012. ISBN 978-0321767363 Teoksen verkkoversio.
  • Raasch: Smashing WebKit, s. 181, 182, 216. Chichester: Wiley, 2011. ISBN 978-1119999133

Aiheesta muualla