La realidad aumentada ha existido por un tiempo, pero con el apoyo de WEBRTC (comunicación en tiempo real), es posible que los usuarios en Android y los dispositivos de escritorio accedan a la cámara del teléfono.
En la actualidad, iOS no puede apoyar esto, ya que no se ha implementado en el navegador de Webkit que alimenta Safari, pero está en desarrollo y puede verificar el estado aquí . Si tiene un dispositivo iOS, no tiene que perderse, ya que aún puede usar la webcam en su computadora de escritorio.
Nota: Para obtener este trabajo en el navegador móvil de Chrome, el contenido debe ser atendido por una capa de socket segura (es decir, a través de HTTPS en lugar de HTTP estándar). El escritorio actualmente trabaja con HTTP regular.
En este tutorial, le mostraré cómo colocar un marcador de realidad aumentada frente a una cámara telefónica. Esto será recogido por el navegador y Ar.js , y el contenido se asignará sobre la parte superior en 3D, pegado al marcador AR.
Hay muchos usos posibles para esta técnica. Por ejemplo, es posible que desee crear un 3D simple.
currículum creativo
, y luego el marcador AR podría imprimirse en su tarjeta de presentación. Debido a que puede caminar alrededor del marcador, esto es ideal para el contenido que quizás desee ver desde diferentes ángulos, ¡piense en un determinado fabricante de muebles suecos que le brinda pasos animados que se pueden ver desde cualquier ángulo! Hay tantas posibilidades para que esto pueda ser útil.
Una vez que hayas descargados los archivos tutoriales Vaya a la carpeta del proyecto, abra la carpeta de inicio en su editor de código y luego abra la index.html Archivo para editar. En esta etapa, las bibliotecas deben estar vinculadas, ¡y hay bastantes para este proyecto! Las bibliotecas se encuentran en tres secciones: Three.js, Jsartoolkit y la extensión Three.js para ArtOolkit y Marker.
& lt; script src = 'js / three.js' & gt; & lt; / script & gt;
& lt; script src = "js / colladaloader.js" & gt; & lt; / script & gt;
& lt; script src = "vendor / jsartoolkit5 / build / artoolkit.min.js" & gt; / lt; / script & gt;
& lt; script src = "vendor / jsartoolkit5 / js / artoolkit.api.js & gt; / lt; / script & gt;
& lt; script src = "threitx-artoolkitsource.js" & gt; / lt; / script & gt;
& lt; script src = "threitx-artoolkitcontext.js" & gt; / lt; / script & gt;
& lt; script src = "threitx-armarcomercontrols.js" & gt; / lt; / script & gt;
& lt; script & gt; threitx.artoolkitcontext.baseurl = '/' & lt; / script & gt;
En el cabeza sección de la página, agregue algunos texto Etiquetas y caídas en las reglas de estilo para el cuerpo y el lienzo elemento. Esto asegura que se colocan correctamente en la página sin los márgenes predeterminados agregados por el navegador.
Cuerpo {
Margen: 0px;
Desbordamiento: oculto;
}
lienzo {
Posición: Absoluto;
TOP: 0;
izquierda: 0;
}
En el cuerpo sección de la página, agregue algunos texto Etiquetas donde se irá el código JavaScript restante para este tutorial. Hay una serie de variables necesarias: la primera línea es para tres.js, la segunda para el AR.JS, el tercero para el modelo y luego una variable para cargar el modelo.
Var Render, escena, cámara;
var artoolkitcontext, onrenderfcts, arteolkitsource, markerroot, arteoolkitmarker, lasttimemsec;
var modelo, tube1, tube2, medio, detalles, pulso;
var cargador = nuevo tres.colladaloader ();
Antes de configurar la escena, se cargará el modelo para que se pueda mostrar cuando se detecten marcadores. Esto se reduce por 10 para que se ajuste exactamente al marcador AR. El modelo es de 10 cm para el ancho y la altura, por lo que el marcador es 1 cm que se traduce en 1 incremento en tres.js.
cargador.load ('model / scene.dae', función (colada) {
modelo = colada.scene;
model.scale.x = model.scale.y = model.scale.z = 0.1;
Detalles = modelo.getObjectbyName ("Detalles", VERDADERO);
Aún dentro del código de carga de la colada, una vez que se carga el modelo, habrá un par de tubos que giran para que se encuentren en la escena de la colada. Se encuentra el primer tubo y su material se agarra. Aquí, el material está configurado para simplemente rendirlo en el interior del modelo, no el exterior.
TUBE1 = Model.GetObjectbyName ("Tube1", VERDADERO);
var a = tube1.children .material;
A.Transparent = verdadero;
a.side = tres ["trasero"];
a.Blending = Tres ["" aditivo "];
A.OPACION = 0.9;
Como en el último paso, este mismo principio se repite para el segundo tubo y el modo de mezcla, similar a las que se encuentran en After Effects y Photoshop, se establece para ser una mezcla aditiva. Esto permite que el exterior de los píxeles tenga una transición más suave a la imagen de la cámara.
Tube2 = Model.getObjectbyName ("Tube2", VERDADERO);
c = tube2.children .material;
C.Transparent = verdadero;
C.Side = Tres ["trasero"];
C.Blending = Three ["" aditivo "];
c.opacidad = 0.9;
El último modelo es un círculo giratorio justo en el centro del diseño. Esto sigue las mismas reglas que antes, pero no representa la parte posterior del objeto, solo el frente. La opacidad de cada uno de estos materiales se ha establecido en un 90% solo para que sea un poco más suave. Una vez que se carga el modelo, se llama la función init.
Mid = Model.getObjectbyName ("MID", VERDADERO);
b = Mid.children .material;
B.Transparent = verdadero;
b.Blending = Tres ["" aditivo "];
b.opacidad = 0.9;
en eso();
});
La función INIT está configurada y dentro de aquí se crean la configuración del renderizador. El Renderer está utilizando WebGL para dar la velocidad de render más rápida al contenido, y el valor alfa de fondo se establece en transparente para que la imagen de la cámara se pueda ver detrás de esto.
FUNCIÓN INIT () {
Renderer = NUEVO TRES.WEBGLRENDERER ({
alfa: cierto
});
render.setClearColor (nuevo tres.color ('lightgrey'), 0);
render.setsize (Window.Innerwidth, Window.InnerHeight);
document.body.appendchild (Render.Melement);
El Renderer está hecho para ser del mismo tamaño que la ventana del navegador y se agrega al modelo de objeto de documento de la página. Ahora se crea una matriz vacía que almacenará los objetos que deben ser representados. Se crea una nueva escena para que el contenido se pueda mostrar dentro de esto.
ONRENDERFCTS = [];
escena = nuevo tres.scene ();
Para poder ver el contenido en la escena, al igual que en el mundo real, se necesitan luces. Una es una luz gris ambiente, mientras que la luz direccional es un color azul silenciado, solo para dar un ligero tinte al contenido 3D en la escena.
VAR ambient = NUEVO TRES.AMBIETRIGHT (0x666666);
escena.add (ambiente);
var dirioallight = nuevo tres.directionallight (0x4e5ba0);
direccionaltight.position.set (-1, 1, 1) .normalizar ();
escena.add (Directionallight);
Siguiente: Termina tu marcador AR
Página actual: Página 1
Siguiente página Página 2[dieciséis] El ecosistema JavaScript ha estado cambiando durante más de una década, lo que significa que los desarrolladores delante..
[dieciséis] SALTA A: La herramienta de reemplazo de color. El comando de rango de color..
El concepto, modelo, textura y configuración de material para esta feroz imagen de un hombre lobo, que se creó para Kunoichi, un juego orientado al sigilo en un mundo de fantasía, se compl..
[dieciséis] SALTA A: Recursos webvr WebVR es una API de JavaScript par..
[dieciséis] No puedo empezar a decirte cuántos Ilustrador Adobe Los archivos me han pasado para animación que claramente ..
[dieciséis] Aquellos que buscan crear diseños de criatura realistas utilizando una mezcla de software. ZBrush, Marvelous Designe..
Nuestro retrato de gato terminado [dieciséis] Pintura mascotas y dibujando animales Puede ..
[dieciséis] ¿Te apetece aprender más sobre los sistemas de diseño? Entonces no te pierdas el ingeniero de UI Senior ..