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
[muokkaa | muokkaa wikitekstiä]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
[muokkaa | muokkaa wikitekstiä]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
[muokkaa | muokkaa wikitekstiä]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
[muokkaa | muokkaa wikitekstiä]- ↑ a b Three.js/license github.com/mrdoob. Viitattu 20 May 2012.
- ↑ O3Dlähde?
- ↑ Unity (game engine)lähde?
- ↑ Crossley: Study: Average dev costs as high as $28m 11 January 2010. Intent Media Ltd. Arkistoitu 13 January 2010.
- ↑ NVScene: NVScene 2015 Session: Reinventing The Wheel - One Last Time (Ricardo Cabello) YouTube.
- ↑ a b c Three.js White Paper 21.5.2012. Github.com. Viitattu 9.5.2013.
- ↑ mrdoob: Features mrdoob/three.js Wiki GitHub 26.11.2012. Github.com. Viitattu 9.5.2013.
- ↑ Stats.js Github.com. Viitattu 9.5.2013.
- ↑ WebGL Inspector Benvanik.github.com. Arkistoitu 14.3.2023. Viitattu 9.5.2013.
- ↑ Three.js Inspector Labs Zz85.github.com. Arkistoitu 27.1.2023. Viitattu 9.5.2013.
- ↑ three.js examples threejs.org.
Kirjallisuutta
[muokkaa | muokkaa wikitekstiä]- 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