Tras superar las numerosas dificultades de realizar los primeros modelos 3D por fotogrametría, o más bien por SfM, con herramientas Open Source, es quizás el momento para comenzar a preocuparnos de como distribuir o publicar documentos 3D, ya que las posibilidades en cuanto accesibilidad a dichos documentos no son demasiadas, ya que por lo general la visualización de dichos documentos se encuentran intimamente ligada a visores propietarios de los formatos que usemos para el intercambio de datos 3D.
A lo largo de varios artículos voy a explorar alguna de las posibilidades de publicación 3D más comunes, o cuanto menos accesibles, siendo la primera de ella la posibilidad de publicar objetos o películas 3D a través de documentos PDF que aunque fue un formato propietario de Adobe durante muchos años, en 2008 este fue liberado como estándar abierto según la ISO 3200-1, por lo que puede no ser una demasiada mala opción para publicar modelos 3D.
Desde 2007 y la versión 7 de Acrobat este ha dado soporte a objetos 3D, sin embargo no será hasta que recientemente en 2012 se crea la 3D PDF Consortium para el desarrollo y estandarización del soporte 3D en dichos documentos, ya que hasta el momento, la capacidad de reproducir objetos 3D incrustados en PDFs es una posibilidad casi exclusiva del visor oficial Adobe Acrobat, no siendo por ejemplo, soportados por herramientas como Vista Previa de Mac Os X, lo cual la publicación bajo PDF, supone un cierto problema de accesibilidad, y preservación a largo plazo, ya que desconocemos el rumbo que puede tomar dicha estandarización.
En la actualidad sólo es posible utilizar objetos 3D en formato U3D (Universal 3D), un formato muy habitual que podemos generar fácilmente con Meshlab, o el formato PRC (Product Representation Compact) un formato de intercambio de datos íntimamente ligado a Adobe desde el 2006, y no muy extendido en el mundo del software libre.
Crear un documento 3D PDF con Adobe Acrobat PRO es realmente sencillo, ya que solo tenemos que escoger nuestro archivo U3D desde el menú herramientas > Multimedia > Herramienta 3D y ajustar las opciones de maquetación y visualización, por lo que no supone una excesiva dificultad.
Otra alternativa, libre y en cierta manera más atractiva, es la usar LaTeX para generar dichos documentos de forma completamente libre. Sin entrar mucho en materia indicar LateX es el lenguaje de maquetación de código abierto por excelencia con una importante implantación en ámbitos científicos, por su polivalencia a la hora de dibujar fórmulas y modelos de todo tipo. Junto a estas ventajas se incluyen las opciones de incrustar objetos 3D.
Para escribir en LaTex podemos usar editores libres muy populares multiplataforma como Textmaker que por ejemplo para los entornos Mac OsX es necesario acompañar del paquete BasicTeX. El uso de Textmaker como editor, superado lo áspero del lenguaje LaTeX para los usuarios no familiarizados con los lenguajes basados en etiquetas, es bastante sencillo.
Cómo ejemplo el código para cargar un objeto 3D en un PDF es el siguiente:
\documentclass[a4paper]{article} \usepackage[3D]{movie15} \usepackage[UKenglish]{babel} \usepackage[colorlinks=true]{hyperref} \begin{document} \title{The Queen Of the Night.Babylonia 1972-1750 BC} \author{Jos\'e Pereira\\ \href{https://www.jpereira.net}{https://www.jpereira.net}} \maketitle \begin{center} \includemovie[ poster, toolbar, label=diosa.u3d text=(diosa.u3d), 3Dlights=CAD, 3Daac=16, 3Droll=-1.18, 3Dc2c=0 8.54 0, 3Droo=8.54, 3Dcoo=-0.01 0.43 -0.11, ]{\linewidth}{\linewidth}{diosa.u3d} \label{ex3d} Un ejemplo sobre la publicaci\'on de objetos 3D en formato U3D mediante PDF utilizando LateX. \end{center} \end{document}
Donde la etiqueta includemovie es la responsable de la carga propiamente del objeto 3D y el resto son las etiquetas habituales de cualquier documento y diosa.u3d la ruta a nuestro documento U3D. El proceso es bastante simple a no ser los parámetros 3Daac, 3Droll, 3Droo y 3Dcoo los cuales indican los valores de posición inicial de nuestro modelo 3D respecto al observador, si el modelo se encuentra ubicado de forma correcta respecto a los ejes XYZ, pues con los parámetros por defecto quizás sea suficiente:
3Daac=60.000000, 3Droll=0, 3Dc2c=0.000000 -100.000000 0.000000, 3Droo=100.000000, 3Dcoo=0 0 0
Sin embargo si necesitamos ubicar el modelo para una mejor presentación al abrir el documento, es necesario definir dichos parámetros, ya que si nuestro modelo no esta correctamente ubicado en nuestro visor, puede incluso hacerse invisible para el observador.
Definir dichos parámetros es un tanto complejo, por la falta de herramientas para calcularlos de forma directa. La única forma que conozco es usar la propia herramienta de navegación de Acrobat para ayudar a definirlos.
Para ello con el cursor encima de nuestro modelo abrimos el menú emergente y seleccionamos Herramientas > Propiedades de Cámara, y en posición activamos la opción de Unidades de ángulo.
Para poder fijar estos parámetros antes vamos a entender que son y buscar sus equivalencias en el menú de cámara de Acrobat:
- 3Daac: Se trata del ángulo de visión de la cámara o “Campo de visión”
- 3Droll: La rotación de la cámara entorno a los ejes o “Girar”
- 3Dcoo: Las coordenadas al centro de la órbita que coincide con los parámetros XYZ de “Destino”
- 3Droo: El radio de la órbita, que coincide inicialmente con la “Distancia”
- 3Dc2c: La posición de la cámara al centro de la órbita, descrito por tres coordenadas donde las dos primeras variables corresponden con los campos “Altitud” y “Distancia”
De esta forma para mi casuística los parámetros según la información del visor de Acrobat son:
3Daac=16, 3Droll=-1.18, 3Dc2c=0 8.54 0, 3Droo=8.54, 3Dcoo=-0.01 0.43 -0.11
En un principio ya no son necesarios más cálculos para describir correctamente un modelo 3D en LaTex, simplemente con activar la opción compilar como PDFLaTeX ya podemos disponer de nuestro PDF compilado como el del ejemplo que te puedes descargar a continuación, pero recuerda que sólo es compatible con los visores Adobe Acrobat