Insertar objetos reales en Unity con Meshroom

imagen


Este artículo le mostrará cómo usar la fotogrametría para tomar fotografías e insertar objetos del mundo real en proyectos de Unity usando Meshroom.



En el contexto de los modelos 3D, la fotogrametría es el proceso de creación de modelos 3D a partir de objetos escaneados.



¿Necesita modelos 3D realistas para la idea de su juego, pero tiene un presupuesto limitado? ¿Busca crear un entorno de juego ultrarrealista? Si es así, ¡sigue leyendo!



Usando fotogrametría, tomamos datos de entrada, es decir, fotografías, y los pasamos a través de una tubería o un conjunto de métodos que los procesan. Los datos de estos procesos o la información de salida se utilizan para crear el modelo 3D terminado.





En este tutorial, usaremos algunas fotos de la estatua del dragón para crear un modelo 3D detallado, limpiarlo en Blender e importar el resultado a una escena oscura y lúgubre de una aldea vikinga.



También aprenderá a:



  • Elija un buen sujeto para fotografiar.
  • Toma fotografías adecuadas.
  • Decide cuándo y dónde tomar fotos.
  • Elimina las malas fotos.
  • Utilice Meshroom para crear escaneos 3D.
  • Importa modelos a Blender para limpiarlos y retocarlos.
  • Reducir el número de polígonos.
  • Prepare e importe modelos 3D en Unity.






Empezando



Nota : Se requiere una computadora bastante potente para realizar un escaneo de fotos en Meshroom en un período de tiempo razonable.


Descargue los materiales del proyecto . A continuación, descomprima el archivo zip en una ubicación conveniente para usted.



El archivo contiene los archivos del proyecto inicial y final , a los que llegaremos más adelante.



Nota : necesitará descargar otro archivo, pero más sobre eso a continuación.


Para crear un buen escaneo fotográfico, debe fotografiar el modelo desde muchos ángulos. En este tutorial, ya tendremos todas las fotos necesarias.



Antes de tomar estas fotografías, es importante aprender información útil sobre cómo tomar fotografías usted mismo.



Encontrar buenos sujetos para fotografiar



Por supuesto, desea disparar objetos que coincidan con el entorno o la idea del juego. Además, existen algunas condiciones que simplifican el escaneo de fotografías de objetos:



  • Bases planas.
  • Contraste suficiente en colores o matices.
  • No demasiado oscuro, de lo contrario será difícil ver los detalles.
  • No es demasiado grande, de lo contrario, será difícil caminar alrededor de los objetos y dispararlos desde diferentes ángulos.


También vale la pena considerar la posibilidad de crear fotografías escaneadas de objetos difíciles de modelar. Por ejemplo, los objetos naturales son difíciles de modelar porque es difícil crear materiales orgánicos.



Las piedras de The Tales Factory en la Unity Asset Store son un buen ejemplo de esto .





Cuando tomar fotos



En cuanto a las fotografías, existen determinadas condiciones y momentos del día que te permiten crear escaneos fotográficos de alta calidad.



Si tiene un estudio e iluminación interior, puede simular estas condiciones usted mismo. Si no, entonces tienes que trabajar al aire libre.



Cuando trabaje al aire libre, recuerde lo siguiente:



  • Toma fotos a la luz del día.
  • Los cielos nublados son los mejores. Las nubes dispersan la iluminación, lo que da como resultado una distribución más uniforme de la luz en todo el modelo.
  • ¡La sequedad es buena, la humedad es mala! En condiciones de humedad, probablemente obtendrá más reflejos en su producto terminado. En algunos casos, el modelo 3D incluso tendrá reflejos brillantes que destruyen el realismo.


Elija un modelo de aspecto neutral que se adapte a una amplia gama de condiciones potenciales. Esto te permitirá aplicar efectos dependiendo de las condiciones ambientales del juego.



¿Está lloviendo en el juego? Dibujemos un sombreador que agregará un efecto húmedo brillante. ¿El juego se desarrolla en un mundo post-apocalíptico donde todo es viejo y en mal estado? Agreguemos el efecto del envejecimiento o la corrosión.



Tomando fotos



Descargue la colección de fotos que utilizará en este tutorial. Debido a su gran tamaño, no se incluye en las descargas vinculadas anteriormente. Para descargar la colección, haga clic en este enlace:



Descargue fotos de la escultura del dragón (archivo zip, 695 MB)



Luego, extraiga el archivo zip en una ubicación conveniente para usted y abra la carpeta. Verá aproximadamente 100 fotografías de la escultura del dragón tomadas desde diferentes ángulos y alturas.





Esto es por lo que debe esforzarse al tomar fotografías. La cobertura de 360 ​​grados de fotos desde diferentes ángulos y alturas garantiza que se capturen todos los detalles que necesita.



Al disparar, muévase alrededor del sujeto para obtener una vista desde diferentes ángulos. Trate de dar un paso lo más pequeño posible y tome fotos tanto de cerca como un poco más lejos. Apunta a los detalles de primer plano y fotografías que muestren el modelo completo.



No mueva ni gire el modelo mientras dispara, ya que esto puede confundir algunos paquetes de software. Muévete alrededor del objeto sin moverlo.



Ajustes de la cámara



Para obtener un conjunto de fotos de apariencia uniforme, cambie la cámara al modo manual o profesional . La mayoría de las cámaras de teléfonos inteligentes permitirá cambiar a este modo, las cámaras DSLR y siempre tienen manual o M modo .



  • Primero, establezca ISO en Fijo . Esta configuración cambia la sensibilidad del sensor de la cámara digital a la luz. Cuanto más altos sean los valores, más fácil será tomar fotografías en la oscuridad, pero más ruidosas serán. Con buena iluminación exterior, el valor se puede establecer normalmente en 100 o 200. Seleccione siempre un valor fijo para las fotografías escaneadas.
  • Si es nuevo en la fotografía, use el modo Obturador fijo o Apertura fija. A veces se les denomina modos de prioridad . Esto ayuda a fijar uno de los parámetros, permitiendo que la cámara controle otros parámetros para mantener una exposición uniforme. Esto también se hace para obtener fotos bien iluminadas.
  • Al tomar fotos, siempre deben estar enfocadas. Evite las imágenes borrosas.
  • Tome fotografías siempre con la misma orientación, paisaje o retrato.




Para la iluminación del mediodía y nublado en esta situación, apareció un ISO fijo de 200 .



Creación de escaneos de fotos con Meshroom



Meshroom es una aplicación de fotogrametría de código abierto que se puede utilizar para crear modelos 3D a partir de fotografías. Lo usaremos para crear un escaneo de fotos de la escultura del dragón.



Descargue la última versión desde aquí e instálela. Se requiere Windows o Linux para ejecutar el software.



Después de iniciar Meshroom, verá la interfaz principal. En este modo, puede hacer todo lo necesario para crear fotografías escaneadas.



A continuación, se muestra una breve descripción de cada parte de la interfaz principal:





  1. Las fotos que deben recrearse en 3D se arrastran aquí.
  2. El Visor de imágenes es simplemente una ventana de vista previa de fotos individuales.
  3. 3D Viewer . , , , .
  4. Graph Editor , 3D. (, Node). . , .
  5. Node Graph Editor. , .


Importar fotos a Meshroom



Ve a las fotos descargadas de esculturas de dragones. Luego, arrástrelos a la ventana Meshroom Images .



Las fotos se muestran en el orden de los nombres de archivo en la ventana Imágenes .





A continuación, haga clic en Archivo ► Guardar como… , seleccione una nueva ubicación de carpeta en el disco y guarde el proyecto como Dragon.mg .





A continuación, cierre todas las aplicaciones innecesarias para prepararse para el proceso de recreación de Meshroom. El escaneo no comenzará si la computadora tiene pocos recursos.



Inicio del proceso de recreación de Meshroom



En este punto, está listo para comenzar a recrear. Haga clic en el botón Inicio para iniciar el proceso.





Mientras se ejecuta el proceso, puede seguir su progreso en la ventana del Editor de gráficos . Observe las pequeñas barras de progreso de colores en cada nodo. Lo más probable es que el procesador de su computadora se complete en 15-30 minutos, dependiendo de su velocidad.





Una vez completado, el escaneo resultante se mostrará en la ventana del Visor 3D .





Ahora mantenga presionado el botón izquierdo del mouse y arrastre el cursor para rotar el modelo o el botón central del mouse y arrastre el cursor para mover la cámara en la vista 3D. ¡Disfrute del modelo 3D que su procesador ayudó a crear!





A continuación, abra la carpeta donde guardó el archivo del proyecto Meshroom. En él encontrará la carpeta MeshroomCache . Aquí es donde salieron los archivos del objeto escaneado.





Importando a Blender



A continuación, usaremos la popular aplicación de gráficos 3D para importar un escaneo de un modelo de dragón 3D y limpiarlo para prepararlo para importarlo a Unity.



Si no tiene Blender 2.80 o superior, descárguelo e instálelo. Puedes descargarlo aquí .



Una vez que se complete la instalación, inicie Blender.



Si eres nuevo en Blender, ¡no temas y relájate! Si bien su interfaz y controles pueden resultar confusos, aquí encontrará muchos atajos de teclado y capturas de pantalla que nos son útiles.



Una vez que se abra la pantalla de inicio de Blender, haga clic en General en Nuevo archivo . De forma predeterminada, el nuevo archivo contiene un objeto de cubo. Haga clic en un cubo para seleccionarlo, luego presione Eliminardeshacerse de eso. Ahora tenemos un espacio libre para trabajar:





A continuación, haga clic en Archivo ► Importar ► Wavefront (.obj) . Navegue a la carpeta MeshroomCache donde Meshroom guardó los archivos del modelo de objetos escaneados. En esta carpeta, busque el modelo en la subcarpeta MeshroomCache / Texturing / GUID . GUID es el nombre de una carpeta con un identificador aleatorio asignado después de que se completa el escaneo.



Luego, haga doble clic en TextureMesh.obj para importar el escaneo a Blender.





La importación puede llevar mucho tiempo porque el modelo de la foto escaneada es bastante grande.





Comencemos por tener una idea de cómo se ve un dragón escaneado con fotografías por defecto. Haga clic en el botón Sombreado de la ventana gráfica en la ventana principal de Blender para habilitar el sombreado y texturizado completos para esa ventana.





Luego, presione y mantenga presionado Shift + botón central del mouse para arrastrar la ventana de modo que el modelo principal del dragón esté en el medio de la pantalla. Mantenga presionado el botón central del mouse y arrastre el cursor para rotar la ventana. Puede acercar y alejar con la rueda del mouse.



Vea lo bien que se ve el escaneo predeterminado. ¡Gran trabajo!





Correcciones de Blender



El modelo es complejo y tiene muchos vértices y detalles. Ahora reduciremos el número de polígonos con el rápido y eficiente modificador Decimate de Blender .



Si está creando un juego distribuido comercialmente que requiere más optimización, entonces puede llevar más tiempo reducir cualitativamente la cantidad de polígonos. Pero hasta ahora estamos bastante contentos con Decimate.



En el panel Colección de escenas del editor de Blender, haga clic en Malla texturizada ► Modificadores ► Agregar modificador .





Seleccione Diezmar de la lista .





Aparece un pequeño campo de personalización con las opciones de Diezmar.



Seleccione Colapsar con una proporción de 0,1 y un factor de 2,0 . Luego haga clic en Aplicar .



¡Esto reducirá el detalle de todo el modelo y reducirá el número de vértices en aproximadamente 10 veces! No notarás mucha pérdida de detalles, ¡pero el generador de perfiles de Unity y la velocidad del juego te lo agradecerán!



Deshacerse de la hierba



Ahora tenemos que abordar lo más obvio.



Si está planeando crear una escena en la que el dragón esté en medio de un patio de recreo o un césped inmaculado con césped, entonces está listo. Pero vamos a poner este dragón en los alrededores de la aldea vikinga, por lo que esta hierba no nos conviene.



Ahora centrémonos en quitar el césped de la malla.



En Blender, cambia del modo de objeto al modo de edición . Para hacer esto, puede usar la interfaz de usuario o presionar Tab en su teclado.





Preste atención a los cambios en la ventana: ahora los vértices del dragón se muestran allí y todos están resaltados.





Seleccionar los vértices



A continuación, seleccionaremos solo aquellos vértices que pertenecen a la hierba alrededor de la base del dragón y luego los eliminaremos.



Tenga en cuenta que el siguiente paso requerirá mucha paciencia.



En primer lugar, seleccione la herramienta Seleccionar el lazo , presionando las teclas Shift + Espacio, de L . ( Mayús y Espacio al mismo tiempo, seguidos de L ).



O use el panel de IU para seleccionar la herramienta Seleccionar lazo .





A continuación, use una combinación de presionar el botón central del mouse y arrastrar para girar y el botón central del mouse + Mayús y arrastrar para un movimiento panorámico para inspeccionar el modelo desde todos los lados.



Desde cada ángulo, el lazo selecciona cuidadosamente las copas de la hierba alrededor de la base del dragón. Presione Mayús entre cada selección para agregar nuevas regiones seleccionables a los vértices ya seleccionados.



Aquí hay un GIF que ilustra este proceso:





De vez en cuando, deberá rotar la ventana gráfica para seleccionar los vértices que están detrás de los bordes de la malla de césped.



Si ha seleccionado algunos vértices que no desea eliminar, haga clic en ellos por separado con Mayús + botón izquierdo del mouse para eliminarlos de los vértices seleccionados.



Con todo el césped y los vértices circundantes seleccionados, presione Eliminar ► Vértices para eliminarlos.







Mire de cerca la malla restante a medida que acerca, aleja y gira la ventana gráfica. Repite el proceso de selección y eliminación para todos los vértices que te perdiste.



Al finalizar, verá una imagen aterradora similar:





Cerrar la base de la malla



Ahora vaya al modo de edición si aún no lo está. El cambio de modos se realiza presionando la tecla Tab . Luego seleccione todo el borde inferior de los vértices de la malla del dragón usando la herramienta Seleccionar y manteniendo presionada la tecla Mayús . Esto requerirá paciencia.





O puede usar la herramienta Seleccionar Lasoo para esto .





Con los vértices seleccionados, haga clic en Vértices suaves vértices .





Esto suavizará un poco nuestro anillo de vértice seleccionado.



Ahora seleccione la herramienta Cursor 3D presionando Mayús + Espacio, Espacio y colóquela en el nivel del vértice más bajo en el borde inferior seleccionado presionando el botón izquierdo del mouse . Para determinar el pico más bajo, puede desplazarse y girar la ventana para ver al dragón desde un lado.



Luego presione la tecla . ("Punto") para seleccionar el punto de pivote , luego seleccione el cursor 3D para usar la posición del cursor 3D como punto de referencia.



Luego presione S, Z, 0, Enter(eso es cero, no O). Esta serie de comandos escalará todos los vértices seleccionados a la misma altura que el punto de ancla que creamos con el cursor 3D.



Ahora tenemos algo como esto:





Finalmente, haga clic en Vertex ► New Edge / Face from Vertices .



Esto creará una nueva base para el dragón cerrando todos los vértices seleccionados y creando una nueva cara.







Moviendo el dragón



Luego regrese al Modo Objeto presionando Tab y seleccione el objeto Texturizado Malla . Mover a las coordenadas del punto de inicio de la escena del dragón con una herramienta Mover , presionando el Shift + Espacio, G . Aplique la herramienta Rotar presionando Mayús + Barra espaciadora, R , y gírela a la posición deseada.



Ahora seleccione la herramienta Cursor 3D y haga clic en la mitad de la espalda del dragón. Presione F3 , ingrese Establecer origen y presione Entrar . A continuación, seleccione Origin to 3D Cursor de la lista de comandos que aparece .



Aparece un punto amarillo en el medio del cursor 3D, que indica el nuevo origen del modelo.





¡Estamos listos para exportar el modelo!



A continuación, haga clic en Archivo ► Exportar ► Wavefront (.obj) .



Seleccione Modo de ruta ► Copiar y asegúrese de que Solo selección esté seleccionado en Configuración de exportación . Guarde el archivo como Dragon.obj en una ubicación conveniente para usted.





El valor de Copiar para el modo de ruta de exportación asegura que las texturas se copien y referencian desde la misma carpeta que el modelo .obj. Esto evita problemas con las texturas perdidas cuando se importan a Unity.



Moviendo todo a Unity



Ahora abramos el proyecto Starter en Unity y luego abramos la escena Assets / RW / Scenes / PhotoscanDragon . Encuentra un pedestal vacío entre piedras en el pueblo. Aquí es donde instalaremos el modelo de dragón fotoescanado.





Ahora arrastremos el modelo exportado y sus archivos exportados asociados a la carpeta del proyecto Assets / RW / Models / Dragon .





Luego usaremos la ventana Unity Hierarchy para encontrar GameObject FocalPoint . Arrastre el modelo Assets / RW / Models / Dragon / Dragon.obj a la escena y conviértalo en un elemento secundario del GameObject FocalPoint .





Ahora cambiemos la posición y la rotación del componente Transformar del objeto Dragón de la siguiente manera:



  • Posición: (X: -33.32, Y: 0.53, Z: 5.08)

  • Rotación: (X: -2,229, Y: 90, Z: -0,6)




Nota : su posición y rotación pueden ser ligeramente diferentes dependiendo de dónde hizo clic al establecer el punto de anclaje en Blender.


Ahora presiona Reproducir y admira nuestro propio dragón escaneado con fotografías, tomado del mundo real y recreado en 3D.





¿A dónde ir después?



El proyecto terminado se puede descargar desde el enlace al principio del artículo.



Pasamos por muchos pasos para llegar allí, aprendiendo sobre fotogrametría, editando mallas 3D en Blender, manipulación de vértices y transfiriendo todo el modelo a Unity.



Me gustaría agradecer a The Tales Factory de Unity Asset Store por permitirme usar el recurso PBR de MountainsRocks de Photoscanned en la escena de Dragon Viking Village.



Recomiendo revisar sus excelentes recursos escaneados con fotografías .



Los siguientes pasos dependen de usted. ¿Qué le gustaría recrear e integrar en sus proyectos de Unity? A continuación, encontrará recursos y lecturas adicionales que pueden ayudarlo a avanzar en su trabajo:






All Articles