Az internet, mint tudjuk, folyamatosan változik és fejlődik. Amit még mindig emlékezhetünk, mint egy egyszerű és egyszerű médium, néhány évvel ezelőtt egy másik dimenziót szerzett, és nem úgy tűnik, hogy ott fog megállni. A weboldal építője , Mi volt a tudomány-fikciós film vizuális effektusának egy része a kanapén fekvő táblagépen, és vannak olyan épületek, amelyek nagyméretű interaktív telepítésekben vannak olyan, amelyek valójában csak teljes képernyős Google Chrome Windows.
Kövesse az alábbi lépéseket, hogy megtudja, hogyan lehet reális olvadáspontot létrehozni a három.js-szel.
Menjen előre, és megragadja a három.js könyvtárat, és foglalja bele a webhelyén. A webgloderer, a jelenet és a perspectivecamera be kell lépnie. Ezután ezeket az instantiáltuk, meg kell adnia a jelenetet Kérdőíves .
Ezután a fényeket hozzá kell adni a 3D-s jelenethez. Ebben a példában két fényt használnak: környezeti fény és pontfény. A környezeti fény a jelenet általános globális színe, míg a pontfény olyan fényt bocsát ki, amely csökkenti a távolságot. Ez bizonyos kontrasztot ad.
VAR Ambientlight = új három.ambientlight (0xccccccc);
jelenet.add (ambientlight);
var pointight = új három.pointlight (0xffffff, 1);
pointight.position.set (10, 5, 0);
Most, hogy a jelenetet beállították, a 3D-s modellt be kell tölteni. A modell betölthető bármely támogatott formátummal (JSON, OBJ, DAE, stb.). Az alábbiakban egy példa a DAE modell betöltésére. Ebben a példában nagyon fontos, hogy a modell elegendő sokszögekkel rendelkezik a csúcs módosításainak végrehajtásához.
Az ebben a példában használt szarvas koponya 3500 policsommal rendelkezik. Ha a poli szám túl alacsony, akkor a csúcs animációi túlságosan kifejezettek és torzulnak.
betöltő = új három.Colladaloader ();
loader.load ("dae / deer_skull / deer_skull.dae", onloadCompleteHandler);
A bump térképek tökéletesek a mélység hozzáadásához a textúrákhoz alacsony költséggel. Miután létrehozta a Bump Map Image-t, akkor egyszerűen alkalmazhatja azt az alábbi anyaggal, mint az alábbi anyaghoz. Továbbá be kell állítania a bump térkép méretét a modell méretének megfelelően.
anyag.bumpmap = 'img / deer_skull / deer-bump.jpg';
anyag.bumpscale = .008;
A honlapján Johnny a Jerome Etienne játék kiterjesztését használja a Three.js számára, amelyek megkönnyítik a csúcs animációit. Ez a kiterjesztés lehetővé teszi a modell mindegyik csúcsához a képkocka esetében, így egyszerűvé teszi a csúcsok manipulálását a hullámformák használatával.
A Vertex animációs kiterjesztés az Etienne Github segítségével érhető el. Tovább megyünk, hogyan használják a következő lépésekben.
A geometria elolvadása néhány általános lépést tartalmaz. Először minden pontot folyamatosan lefelé nyomja. Amikor egy pont eléri a földet, kifelé nyomja, hogy mit fogunk felhívni a "push vektort".
Ezután megadjuk a pontokat, amelyek összegyűlnek az alsó vastagság mentén, így az olvadt geometria nem teljesen lapos. Ennek elérése érdekében Johnny a Skeel Lee VFX Shader-től Houdini-ből származott, és módosította.
Az alábbiakban egy példa a csúcs animátor használatára, hogy folyamatosan nyomja a modell geometriáját a föld felé.
VAR Vertexanimation = új háromx.vertexanimáció (geometria, funkció (származás, pozíció, delta, most) {pozíció.y - = Meltamount * Modelheight;}
Ez a pontokat a meltamount . Ne feledje, hogy a csúcsciklusban is nevezzen "frissítést".
Ha egy pont elérte a földet, ki kell húzni az olvadékhatást. Az alábbi kód meghatározza, hogy melyik irányba mutatja az X és Z tengelyeket, hogy nyomja a csúcsot úgy, hogy egy egyenletes elmozdulást kapjon. A feltételes biztosítja, hogy csak a modell (a talaj) legalacsonyabb határainak elért pontjai kifelé vannak nyomva.
ha (pozíció.y & lt; bbox.min.y) {
var centroid = bbox.max.clone (). add (bbox.min.clone ()). DivideScalar (2.0);
Pushvector = pozíció.clone (). Sub (centroid);
Pushvector.y = 0; }
Az alábbi kód zajt használ, hogy véletlenszerűséget hozzon létre a mozgásban, így az olvadék szervesnek érzi magát. A zajváltozókat a kívánt hatás eléréséhez lehet csípni. A zajt ezután a push vektorra kell alkalmazni meltamount és szórólap az olvasztott medence sebességének és méretének szabályozására. Ezt a külső vektort végül kiszámítják, majd a csúcsra alkalmazzák.
var n = noisamplitude * generator.getval ((pozíció.x) * zajtalanság + zajoffset);
var outwardvector = pushvector.multiplyscalar (((Meltamount * Spreadamount) + N) * outwardspeed);
pozíció.add (OutwardVector);
Az eddig elmagyarázott kód eléri az olvadékhatást, de két dolog baj van vele. Először is, a medence meglehetősen laposnak érzi magát, mert az összes pont megolvadt ugyanolyan Y pozícióba. Másodszor, mivel mindannyian megosztják ugyanazokat az Y-t, túl sok pontot fognak halmozni ugyanabba a magasságban, ami villogást okozhat. Ennek elkerülése érdekében vastagságot alkalmaznak az olvadék arányában:
pozíció.y + = Meltamount * PoTthickness;
A fenti kóddal minden olyan modell, amely elegendő sokszögű, olvasztható. Töltse le a zip fájlt a kódra itt és cserélje ki a modellt bármit, amit szeretne. Érezd jól magad!
Ez a cikk eredetileg megjelent Web designer 265. kiadás itt .
Kapcsolódó cikkek:
(Kép hitel: meghívás) A legjobb UI design eszközök kiválasztása szinte minden tervezési folyamatban segít, �..
A Pentagram létrehozott egy Bespoke betűtípust a nyilvános színház számára (Kép hitel: Pentagram a nyilvánosság..
Mozi 4d oktatóanyagok: Gyors linkek Köröm az alapokat Tovább megy Ezek a mozi 4d oktatóanyagok segítenek n�..
(Kép hitel: Patrick J Jones) Tanuld meg, hogyan kell rajzolni egy olyan karot, amely reálisnak tűnik, az életrajz..
Bungie vezető környezet művész Daniel Thiger fut át minket az előállítási technológiáját reális, állományjav..
Szabadúszó 3D művész és Vertex Paneltagok Maya Jermy megmutatja, hogyan kell mester VDM. Ő fog megjelenni ..
A Vecteezy szerkesztő egy szabad vektorszerkesztő csomag, amely közvetlenül a böngészőben fut. Ez a bemutat..
Az idő volt egy weboldal háttér volt egy apró csempe kép - és gyakran rémült, támadta minden látogató szemgolyóját. ..