Il web come lo conosciamo, cambia e in evoluzione costantemente. Ciò che possiamo ancora ricordare come un mezzo semplice e diretto, ha guadagnato un'altra dimensione alcuni anni fa, e non sembra che ci fermerà nemmeno lì. Per un Builder del sito web , Quello che una volta era parte degli effetti visivi del film di fantascienza è ora possibile su un tablet sdraiato sul tuo divano, e ci sono edifici coperti da installazioni interattive su larga scala che sono in realtà solo finestre di Google cromato a schermo intero.
Seguire i passaggi seguenti per scoprire come creare un effetto di fusione realistico con tre.js.
Vai avanti e prendi la biblioteca dei tre.js e includilo nel tuo sito. Dovrai istanziare il webglrendarer, la scena e la prospectivecamera. Dopo che questi sono istanziati, dovrai rendering della scena RichiestaNiMationFrame. .
Successivamente, le luci devono essere aggiunte alla scena 3D. In questo esempio, verranno utilizzate due luci: una luce ambientale e una luce del punto. La luce ambientale serve come un colore globale generale per la scena, mentre la luce del punto emetterà luce che diminuisce con la distanza. Questo darà alla scena un certo contrasto.
VAR AMBIENTLICK = NUOVO TRE THRE.AmbENTHLIGHT (0XCCCCCCC);
scena.add (ambientlight);
Var Pointlight = nuovo tre.Pozzo (0xFFFFFFF, 1);
Pointlight.position.set (10, 5, 0);
Ora che la scena è stata impostata, il modello 3D deve essere caricato. Il modello può essere caricato utilizzando qualsiasi formato supportato (JSON, OBJ, DAE, ecc.). Di seguito è riportato un esempio di caricamento di un modello DAE. In questo esempio, è molto importante che il modello abbia abbastanza poligoni per eseguire modifiche vertice.
Il cranio dei cervi che viene utilizzato in questo esempio ha 3.500 Polys. Se il conteggio poli è troppo basso, le animazioni Vertex saranno troppo esplicite e distorte.
caricatore = nuovo tre.colladaloader ();
caricatore.load ('daae / deer_skull / deer_skull.dae', onloadcompletehandler);
Bump Maps sono perfetti per aggiungere profondità alle tue trame a basso costo. Una volta creata l'immagine della mappa Bump, puoi implementarlo semplicemente applicandolo al materiale come di seguito. Inoltre, dovrai regolare la scala della tua bump map per adattarsi alla scala del tuo modello.
materiale.bumpmap = 'img / deer_skull / deer-bump.jpg';
materiale.bumpscale = .008;
Durante il suo sito, Johnny utilizza un'estensione di gioco di Jerometienne per tre.js che rende più facile fare animazioni di vertice. Questa estensione consente un facile accesso a ciascun vertice di un modello al frame rate, rendendolo semplice per manipolare i vertici usando forme d'onda.
Il Estensione dell'animazione vertice. è disponibile tramite GitHub di Etienne. Andremo più di come è usato nei prossimi passi.
Sciogliere un pezzo di geometria coinvolge alcuni passaggi generali. Innanzitutto, ogni punto viene continuamente spinto verso il basso. Quando un punto raggiunge il terreno, viene spinto verso l'esterno usando ciò che chiameremo un "vettore di spinta".
Successivamente, daremo i punti che si riuniscono lungo il fondo uno spessore in modo che la geometria fusa non sia completamente piatta. Per raggiungere questo obiettivo, Johnny ha portato il codice da Skeel Lee's VFX Shader a Houdini e lo ha modificato.
Di seguito è riportato un esempio di utilizzo dell'uso del vertice animatore per spingere continuamente la geometria di un modello verso il terreno.
VertExanimation = nuovo Threex.vertexanimation (geometria, funzione (origine, posizione, delta, ora) {posizione.y - = meltamount * modelheight;}
Questo spingerà punti verso il basso alla tariffa definita dal meltamount. . Ricordati di chiamare anche "Aggiorna" sull'animazione del vertice nel ciclo di rendering.
Quando un punto ha raggiunto il terreno, deve essere spinto verso l'esterno per raggiungere un effetto fuso. Il codice qui sotto sta determinando quale direzione negli assi X e Z per spingere il vertice in modo da ottenere uno spostamento uniforme. Lo Conditional garantisce che solo i punti che hanno raggiunto i limiti più bassi del modello (il terreno) siano spinti verso l'esterno.
if (posizione.y & lt; bbox.min.y) {
VAR Centroid = bbox.max.clone (). ADD (BBOX.MIN.Clone ()). DividesCalar (2.0);
PushVector = Posizione.Clone (). Sub (Centroid);
pushvector.y = 0; }
Il codice seguente utilizza il rumore per creare casualità nel movimento in modo che il fuso si sente organico. Le variabili del rumore possono essere modificate per ottenere l'effetto desiderato. Il rumore viene quindi applicato al vettore push insieme a meltamount. e Spreadamount. per controllare la velocità e la dimensione del pool fuso. Questo vettore esteriore viene finalmente calcolato e poi applicato al vertice stesso.
VAR N = NOISEAMPLITUDE * Generator.Getval ((posizione.x) * NoiseFrequenza + rumoreoffset);
VAR EXTWWWWWREWRECTOR = Pushvector.multiplyscaLar ((((Meltamount * SpreadAmount) + N) * OutwardsPeed);
posizione.Aggiungere (EmwardVector);
Il codice spiegato finora raggiungerà l'effetto fuso, ma due cose sono sbagliate in questo. Innanzitutto, la piscina si sentirà abbastanza piatta, perché tutti i punti si sono sciolti nella stessa posizione Y. In secondo luogo, dal momento che tutti condividono gli stessi y, troppi punti saranno impilati alla stessa altezza, che possono causare tremolare. Per evitare questo, uno spessore viene applicato al tasso di fusione:
Posizione.Y + = Meltamount * POOLTHICKNESS;
Con il codice sopra, qualsiasi modello con abbastanza poligoni può essere fuso. Scarica un file ZIP fuori il codice Qui e scambia il modello con tutto ciò che vorresti. Divertiti!
Questo articolo è originariamente apparso in Web designer Numero 265. Compralo Qui .
Articoli Correlati:
(Credito immagine: Mark Evan Lim) Storyboarding in Photoshop può essere un ottimo modo per far uscire le tue idee. I..
(Immagine di immagine: Adobe) Caratteri in Photoshop: collegamenti rapidi - Aggiun..
Imparare a disegnare correttamente la prospettiva potrebbe cambiare il tuo intero processo di disegno. Sia che si disegna tradizionalmente con la matita e la carta, o utilizzando digitalmente..
Se ti sei sentito bloccato in una solia creativa, potrebbe valere la pena di avere un momento per fare il punto della tua carrier..
CSS deve passare attraverso una pipeline relativamente complessa, proprio come HTML e JavaScript. Il browser deve scaricare i fil..
In questo tutorial, ti guiderò attraverso il mio processo per creare un accattivante ritratto fantastico di una fanciulla Elven...
Avendo studiato zoologia, animali e fauna selvatica sono sempre stata una grande passione per me e non mi stanco mai di diparlarli. Siamo abbastanza fortunati da vivere nella campagna del Lin..
Ecommerce è diventato così popolare negli ultimi anni è ora difficile immaginare un futuro senza di esso. Il potere di Interne..