La realtà aumentata è stata in giro per un po 'di tempo, ma con il supporto di WebrTC (comunicazione in tempo reale), è possibile per gli utenti su Android e Desktop Devices per accedere alla fotocamera del telefono.
Allo stato attuale, iOS non può supportarlo in quanto non è stato implementato nel browser WebKit che alimenta safari, ma è in fase di sviluppo e puoi controllare lo stato Qui . Se hai un dispositivo iOS, non devi perdere, come puoi ancora utilizzare la webcam sul tuo computer desktop.
Nota: Per ottenere questo lavoro sul browser Chrome mobile, il contenuto deve essere servito da uno strato di socket sicuro (cioè sopra https anziché standard http). Desktop attualmente lavora con http regolare però.
In questo tutorial ti mostrerò come posizionare un indicatore di realtà aumentato davanti a una fotocamera del telefono. Questo sarà raccolto dal browser e Ar.js. , e il contenuto sarà mappato sopra la parte superiore in 3D, attaccando al marker AR.
Ci sono molti usi possibili per questa tecnica. Ad esempio, potresti voler creare un semplice 3D
curriculum creativo
, e poi il marker AR potrebbe essere stampato sul tuo biglietto da visita. Poiché puoi passeggiare per il pennarello, questo è ottimo per i contenuti che potresti voler vedere da diversi angoli - Pensa a un certo produttore di mobili svedesi dandoti passi animati che possono essere visualizzati da qualsiasi angolazione! Ci sono così tante possibilità che questo possa essere utile per.
Una volta che hai scaricato i file tutorial Vai alla cartella del progetto, apri la cartella Start nell'editor di codice e quindi apri il index.html. file per la modifica. In questa fase le biblioteche devono essere collegate - e ce ne sono parecchio per questo progetto! Le biblioteche sono in tre sezioni: tre.js, jsartoolkit e l'estensione tre.js per Artoolkit e Marker.
& lt; script src = 'js / tre.js' & gt; & lt; / script & gt;
& lt; script src = "js / colladaloader.js" & gt; & lt; / script & gt;
& lt; script src = "fornitore / jsartoolkit5 / build / artoolkit.min.js" & gt; & lt; / script & gt;
& lt; script src = "fornitore / jsartoolkit5 / js / artoolkit.api.js" & gt; & lt; / script & gt;
& lt; script src = "trex-troolkitsource.js" & gt; & lt; / script & gt;
& lt; script src = "Threx-articoloolkitcontext.js" & gt; & lt; / script & gt;
& lt; script src = "trex-ararkercontrols.js" & gt; & lt; / script & gt;
& lt; script & gt; trex.artoolkitcontext.baseurl = '/' & lt; / script & gt;
Nel capo Sezione della pagina, aggiungi alcuni script. tag e calo delle regole di stile per il corpo e il tela elemento. Ciò garantisce che siano posizionati correttamente sulla pagina senza i margini predefiniti aggiunti dal browser.
Body {
Margine: 0px;
Overflow: nascosto;
}
tela {
Posizione: assoluto;
Top: 0;
a sinistra: 0;
}
Nel corpo Sezione della pagina, aggiungi alcuni script. Tag dove il codice JavaScript rimanente per questo tutorial andrà. Ci sono un certo numero di variabili necessarie: la prima riga è per tre.js, il secondo per AR.JS, il terzo per il modello e quindi una variabile per caricare il modello.
Var Renderer, scena, fotocamera;
Var ArtoolkitContext, onRenderFCCT, ArtoolkiTource, Markerroot, Artoolkitmarker, LastTimemsec;
Var Model, Tube1, Tube2, Mid, Dettagli, Pulse;
var loader = nuovo tre.colladaloader ();
Prima che la scena venga impostata il modello verrà caricato in modo che possa essere visualizzata quando vengono rilevati marcatori. Questo è ridimensionato da 10 per adattarsi esattamente al marker AR. Il modello è di 10 cm per la larghezza e l'altezza, quindi il marker è 1 cm che si traduce in 1 incremento in tre.js.
caricatore.load ('modello / scena.dae', funzione (Collada) {
modello = collada.scene;
modello.scale.x = modello.scale.y = model.scale.z = 0.1;
Dettagli = modello.GetObjectbyname ("Dettagli", true);
Ancora all'interno del codice di caricamento della Collada, una volta caricato il modello ci sarà un paio di tubi che girano in modo che si trovino nella scena della Collada. Il primo tubo è stato trovato e il suo materiale è afferrato. Qui il materiale è impostato per rendere appena all'interno del modello, non all'esterno.
Tube1 = modello.GetObjectbyName ("Tube1", TRUE);
var a = tube1.children .materiale;
A.Transparent = True;
a.side = tre ["backside"];
A. Bredendo = tre ["additiviblende"];
a.opacity = 0.9;
Come nell'ultimo passaggio, questo stesso principio viene ripetuto per il secondo tubo e la modalità di fusione, simile a quelli trovati in After Effects e Photoshop, è impostato per essere una miscela additiva. Ciò consente all'esterno dei pixel di avere una transizione più morbida all'immagine della telecamera.
tube2 = modello.GetObjectbyname ("tube2", true);
c = tube2.children .materiale;
c.Transparent = true;
c.side = tre ["backside"];
c.venditore = tre ["additivo percendio"];
c.opacity = 0.9;
L'ultimo modello è un cerchio di filatura proprio al centro del design. Questo segue le stesse regole di prima ma non rendono il retro dell'oggetto, solo la parte anteriore. L'opacità di ciascuno di questi materiali è stata impostata sul 90% solo per renderla leggermente più morbida. Una volta che il modello è caricato viene chiamato la funzione Init.
MID = modello.GetObjectbyName ("MID", TRUE);
b = metà.children .materiale;
b.transparent = true;
B. Breding = tre ["additivibending"];
b.opacity = 0.9;
dentro();
});
La funzione Init è impostata e all'interno qui vengono create le impostazioni del rendering. Il renderer utilizza WebGL per dare la velocità di rendering più veloce al contenuto e il valore alfa background è impostato su Trasparente in modo che l'immagine della telecamera possa essere vista dietro di questo.
Funzione init () {
rendering = nuovo tre.webglrendar ({
ALPHA: TRUE.
}););
rendering.setClearColor (New Tre.Color ('Lightgrey'), 0);
renderer.sesize (window.innerwidth, window.innerheight);
document.body.appendchild (rendering.domelement);
Il renderer è fatto per avere le stesse dimensioni della finestra del browser e aggiunta al modello oggetto documento della pagina. Ora viene creata un array vuoto che memorizzerà gli oggetti che devono essere resi. Viene creata una nuova scena in modo che il contenuto possa essere visualizzato all'interno di questo.
onRenderFCTS = [];
scena = nuovo tre.scene ();
Per essere in grado di vedere il contenuto nella scena, proprio come nel mondo reale, sono necessarie luci. Uno è una luce grigia ambientale mentre la luce direzionale è un colore blu mutante solo per dare una leggera tinta al contenuto 3D in mostra nella scena.
VAR Ambient = New Tre.AmbientLight (0x666666);
scena.add (ambiente);
var direzionetallight = nuovo tre.Directionallight (0x4e5ba0);
direzionallight.position.set (-1, 1, 1) .normiralize ();
scena.add (direzionallight);
Successivo: Finisci il tuo marker AR
Pagina corrente: Pagina 1
Pagina successiva Pagina 2(Immagine di immagine: Design Blackmagic) In questo articolo, prevederemo l'arte del compositing per 3D. Esplorando c..
L'ecosistema JavaScript è cambiato per oltre un decennio, il che significa che gli sviluppatori front-end hanno dovuto tenere tr..
Le conversioni giorno per notte sono state in giro per tutto il tempo che Photoshop ha avuto strati di aggiustamento, ma padroneg..
La luce è qualcosa che ispira sempre i pittori - se è il sole che splende sulle pietre di un edificio o di un fiore in un vaso ..
Il concetto di questo progetto, il goblin di funghi, viene da un disegno del mio amico Adrian Smith. Ho lavorato per rendere ques..
Lavorazione digitale ti libera per fare tanti errori che ti piace, in uno spazio di lavoro in cui viene portato l'elemento del ri..
Prima di iniziare a lavorare su un'immagine personale di solito inizio a pensare a quello che voglio vedere nel lavoro finito. Ne..
Designer e creativi da tutti i campi sono come mazze nel loro appetito per raccogliere cose luminose e brillanti. Probabilmente a..