Augmenterad verklighet har funnits ett tag nu, men med stöd av WEBRTC (realtidskommunikation) är det möjligt för användare på Android och stationära enheter att komma åt en telefons kamera.
För närvarande kan IOS inte stödja detta eftersom det inte har implementerats i WebKit-webbläsaren som driver safari, men det är i utveckling och du kan kontrollera statusen här . Om du har en iOS-enhet behöver du inte missa, eftersom du fortfarande kan använda webbkamera på din stationära dator.
Notera: För att få det här arbetet med mobilen Chrome-webbläsaren måste innehållet serveras med ett säkert socketskikt (dvs över https istället för standard http). Skrivbordet arbetar för närvarande med vanlig http men.
I den här handledningen ska jag visa dig hur man placerar en förstärkt verklighetsmarkör framför en telefonkamera. Detta kommer att hämtas av webbläsaren och Ar.js , och innehållet kommer att kartläggas över toppen i 3D, som håller fast vid AR-markören.
Det finns många möjliga användningsområden för denna teknik. Du kanske till exempel vill skapa en enkel 3D
Creative CV
, och då kan Ar-markören skrivas ut på ditt visitkort. Eftersom du kan gå runt markören, är det här bra för innehåll som du kanske vill se från olika vinklar - tänk på en viss svensk möbeltillverkare som ger dig animerade steg som kan ses från vilken vinkel som helst! Det finns så många möjligheter att detta kan vara användbart för.
När du har hämtade de handledningsfilerna Gå till projektmappen, öppna startmappen i din kodredigerare och öppna sedan upp index.html Fil för redigering. I detta skede måste biblioteken kopplas upp - och det finns en hel del för det här projektet! Biblioteken är i tre avsnitt: Three.js, JSartoolkit och Three.JS-förlängningen för ArtoolKit och Marker.
& lt; script src = 'js / tre.js' & gt; & lt; / script & gt;
& lt; script src = "js / colladaloader.js" & gt; & lt; / script & gt;
& lt; script src = "leverantör / jsartoolkit5 / build / artoolkit.min.js" & gt; & lt; / script & gt;
& lt; script src = "leverantör / jsartoolkit5 / js / artoolkit.api.js" & gt; & lt; / script & gt;
& lt; script src = "trex-artoolkitsource.js" & gt; & lt; / script & gt;
& lt; script src = "trex-artoolkitcontext.js" & gt; & lt; / script & gt;
& lt; script src = "trex-arkarcontrols.js" & gt; & lt; / script & gt;
& lt; script & gt; trex.artoolkitcontext.baseurl = '/' & lt; / script & gt;
I huvud Sektion på sidan, lägg till några manus Taggar och släpp i stilreglerna för kropp och den duk element. Detta säkerställer att de placeras korrekt på sidan utan standard marginaler som adderas av webbläsaren.
kropp {
Marginal: 0px;
Överflöde: Dold;
}
canvas {
position: absolut;
Topp: 0;
Vänster: 0;
}
I kropp Sektion på sidan, lägg till några manus Taggar där den återstående JavaScript-koden för den här handledningen kommer att gå. Det finns ett antal variabler som behövs: den första raden är för tre.js, den andra för ar.js, den tredje för modellen och sedan en variabel för att ladda modellen.
Var renderer, scen, kamera;
Var Artoolkitcontext, Onrenderfcts, Artoolkitsource, Markerroot, Artoolkitmarker, LastTimemsec;
VAR-modell, Tube1, Tube2, Mid, Detaljer, Puls;
var lastare = ny tre.colladaloader ();
Innan scenen är inställd kommer modellen att laddas så att den kan visas när markörer detekteras. Detta är nedskalat med 10 för att passa exakt på AR-markören. Modellen är 10 cm för bredden och höjden, så markören är 1 cm som översätter till 1 ökning i tre.js.
lastare. ('modell / scen.dae', funktion (Collada) {
Modell = Collada.Scene;
model.scale.x = modell.scale.y = model.scale.z = 0,1;
Detaljer = modell.getObjectByname ("Detaljer", sant);
Fortfarande inuti Collada-laddningskoden, när modellen är laddad kommer det att finnas ett par rör som snurrar runt så de finns i Collada-scenen. Det första röret finns och dess material grepps. Här är materialet inställt på att bara göra på insidan av modellen, inte utsidan.
Tube1 = Model.getObjectByname ("Tube1", sant);
VAR A = Tube1.Children .material;
a.Transparent = sant;
A.Side = Tre ["baksida"];
a.blending = tre ["additiveblending"];
A.Opacity = 0,9;
Liksom i det sista steget upprepas samma princip för det andra röret och blandningsläget, som liknar de som finns i After Effects och Photoshop, är inställd på att vara en tillsatsblandning. Detta gör det möjligt för utsidan av pixlarna att ha en mjukare övergång till kamerabilden.
TUBE2 = MODELL.GETOBjectByname ("Tube2", sant);
C = Tube2.Children .material;
c.transparent = sant;
c.side = tre ["baksida"];
c.blending = tre ["additiveblending"];
C.Opacity = 0,9;
Den sista modellen är en spinncirkel precis i mitten av designen. Detta följer samma regler som tidigare men gör inte baksidan av objektet, bara framsidan. Opaciteten hos var och en av dessa material har ställts till 90% för att göra det lite mjukare. När modellen är laddad kallas INIT-funktionen.
Mid = Model.GetObjectByname ("MID", sant);
b = mid.children .material;
b.transparent = sant;
B. Blending = Tre ["Additiveblending"];
b.Opacity = 0,9;
i det();
});
Init-funktionen är inställd och inuti här skapas Renderer-inställningarna. Renderer använder WebGL för att ge den snabbaste renderhastigheten till innehållet, och bakgrundsvärdet är inställt på transparent så att kamerabilden kan ses bakom detta.
Funktion init () {
renderer = ny tre.webglrenderer ({
Alpha: sant
});
renderer.setClearcolor (New Three.Color ('LightGrey'), 0);
renderer.setsize (window.innerwidth, window.innerheight);
document.body.appendchild (renderer.domeLement);
Renderer är gjord för att vara lika stor som webbläsarfönstret och läggas till i dokumentets objektobjektmodell. Nu skapas en tom array som lagrar objekt som måste göras. En ny scen skapas så att innehållet kan visas inuti detta.
Onrenderfcts = [];
scen = ny tre.scene ();
För att kunna se innehåll i scenen, precis som i den verkliga världen, behövs ljus. En är ett omgivande grått ljus medan riktljuset är en dämpad blå färg bara för att ge en liten nyans till 3D-innehållet på displayen i scenen.
Var Ambient = Ny tre.ambientlight (0x666666);
scen.add (omgivande);
var riktning = ny tre.directionallight (0x4e5ba0);
DirectionAllight.Position.Set (-1, 1, 1) .Normalisera ();
scene.add (riktning);
Nästa: Avsluta din AR-markör
Nuvarande sida: Sida 1
Nästa sida Sida 2(Bildkredit: Naomi Vandoren) Som en oberoende konstnär tycker jag om den kreativa processen så mycket som tillfreds..
Du kan göra mycket med CSS - kanske mer än du kanske tror - men det ärable stilarket har sina begränsningar. I ett modernt we..
Sida 1 av 2: Sida 1 Sida 1 Sida 2 3D Specialist Glen Southern ..
I den här handledningen kommer vi att ta dig igenom processen att göra din app tillgänglig och användarvänlig för människo..
Jag började använda Cinema 4D några månader efter att ha fått mitt VR-headset för ett år sedan. Fram till dess hade jag an..
Ett av de enklaste sätten att få lite extra liv till någon bit av 3d konst är att lägga till färg och textur till den. Det finns en mängd olika namn som ges till denna p..
Jag gillar verkligen att arbeta i färg, oavsett om det är i Photoshop cc eller måla traditionellt med akvarelle..
I den här handledningen tar vi den mekaniska ritningen Toy Etch en skiss som en inspiration och försök att genomföra dessa fu..