Upload
ringo-ringacho
View
80
Download
2
Tags:
Embed Size (px)
Citation preview
Universidad Tecnológica Nacional Facultad Regional Buenos Aires
Técnicas de Gráficos por Computadora
Guía 3D Studio Max
Ing. Matias N. Leone
Ing. Leandro R. Barbagallo
Última revisión: 09 Agosto 2012
Trabajo Práctico – Guía 3D Studio Max 2
IntroducciónIntroducciónIntroducciónIntroducción
El Framework TgcViewer de la cátedra utiliza la herramienta de diseño Autodesk 3D Studio Max para confeccionar modelos estáticos, escenarios y modelos animados.
3D Studio Max es una herramienta de diseño muy compleja que puede ser utilizada para genera contenido gráfico en 3D. Aprender a utilizarla está fuera del alcance de la materia y queda a criterio del alumno embarcarse en su utilización.
Esta guía intenta dar solo algunos conceptos básicos que ayudan a la integración de esta herramienta de diseño con el Framework TgcViewer. Todas las explicaciones dadas en esta guía apuntan a un público programador, sin indagar demasiado en cuestiones de diseño gráfico.
Al final de la guía se adjuntan links a diversos recursos y libros que permitan ampliar el conocimiento de la herramienta en cada tema.
ObtenciónObtenciónObtenciónObtención
Actualmente el Framework utiliza la versión 3D Studio Max 2011. Un trial del mismo puede ser descargado desde el siguiente sitio:
http://usa.autodesk.com/adsk/servlet/pc/index?id=13567410&siteID=123112
¿¿¿¿Qué temas aprenderQué temas aprenderQué temas aprenderQué temas aprender????
3Ds MAX es una herramienta que se utiliza tanto para aplicaciones gráficas en tiempo real como para aplicaciones Offline (Unidad 3 “Conceptos Básicos de 3D”). El alumno debe centrarse en todas las técnicas denominadas “Low Poly”, dejando de lado técnicas de mayor calidad gráfica denominadas “High Poly”.
Las técnicas denominadas “Low Poly” se centran en generar modelos 3D de baja cantidad de polígonos, ideales para ser utilizados en aplicaciones en tiempo real como herramientas CAD, editores y videojuegos.
Dentro de las técnicas “Low Poly” hay ciertos temas principales que el alumno debería aprender si desea generar contenido para el TP con 3D Studio Max:
o Low poly Modeling: Editable Mesh y Editable Poly o Attach models o Skinning o Animation: KeyFrames y Biped o Texturing: Standard Material y Multi-SubObject Material
Integración con el FrameworkIntegración con el FrameworkIntegración con el FrameworkIntegración con el Framework
3D Studio MAX puede integrarse con el Framework de la cátedra para crear distintos tipos de objetos. El flujo de trabajo es siempre el mismo:
1. Crear un objeto en 3D Studio MAX 2. Utilizar el plugin correspondiente para exportar ese objeto a un archivo de
formato compatible con el Framework.
3 Técnicas de Gráficos por Computadora
3. Cargar el archivo exportado con una clase específica del Framework.
Los distintos objetos que se puedan crear son los siguientes:
• Modelos estáticos individuales.
• Escenarios complejos, compuestos por muchos modelos estáticos.
• Personajes animados mediante la técnica de animación esquelética.
• Objetos animados mediante la técnica de KeyFrame. El Framework, además de contener código C#, posee distintos plugins en lenguaje
MAXSCRIPT que permiten exportar cierta información 3D Studio Max para que luego sea utilizada dentro de TgcViewer.
Los plugins se encuentran en el proyecto C# dentro de la carpeta “TgcViewer\Utils\MaxPlugins”. Actualmente existen cuatro plugins desarrollados cada uno con una funcionalidad específica:
o TgcSceneExporter.msTgcSceneExporter.msTgcSceneExporter.msTgcSceneExporter.ms: permite exportar un modelo estático o un
conjunto de modelos estáticos a un archivo XML de formato propio de la cátedra. Este archivo XML luego puede ser cargado por la clase del Framework “TgcSceneLoader”. El plugin es útil tanto para exportar modelos estáticos individuales como para exportar escenarios enteros.
o TgcSceneImporterTgcSceneImporterTgcSceneImporterTgcSceneImporter.ms.ms.ms.ms: permite importar un modelo estático o un
conjunto de modelos estáticos que estén almacenados en un archivo XML del formato propio de la cátedra. Puede ser muy útil para cargar modelos de trabajos prácticos anteriores de los que no se tiene el archivo .MAX original. Esta herramienta actualmente se encuentra en estado BETA.
o TgcSkeletalAnimationExporter.msTgcSkeletalAnimationExporter.msTgcSkeletalAnimationExporter.msTgcSkeletalAnimationExporter.ms: permite exportar un modelo que
posea animaciones mediante la técnica de animación esquelética. El plugin genera dos tipos archivos XML de formato propio de la cátedra: un archivo para la estructura y postura estática inicial del modelo y luego otro archivo por cada animación creada. El plugin es útil para exportar personajes con animaciones que se pueden crear utilizando un esqueleto.
o TgcKeyFrameExporterTgcKeyFrameExporterTgcKeyFrameExporterTgcKeyFrameExporter.ms.ms.ms.ms: permite exportar un modelo que posea
animaciones mediante la técnica de animación por KeyFrames. El plugin genera dos tipos archivos XML de formato propio de la cátedra: un archivo para la estructura y postura estática inicial del modelo y luego otro archivo por cada animación creada. El plugin es útil para exportar objetos con animación que no dependen de una estructura esquelética como el caso anterior.
o MaxScriptUtilsMaxScriptUtilsMaxScriptUtilsMaxScriptUtils.ms.ms.ms.ms: conjunto de funciones y utilidades generales de
MAXSCRIPT utilizadas por el resto de los plugins. Contiene facilidades de formateo de valores, exportación a XML, cálculo de BoundingBox, etc.
Instalación de PluginsInstalación de PluginsInstalación de PluginsInstalación de Plugins
Trabajo Práctico – Guía 3D Studio Max 4
Los plugins de la cátedra desarrollados para 3D Studio MAX pueden instalarse de dos formas:
• Depositando los archivos “.ms” en una carpeta específica de 3Ds MAX.
• Cargando dinámicamente el plugin cuando estamos dentro de la aplicación.
La primera opción es la más sencilla y recomendable si se quieren utilizar los
plugins en su versión original. Si se quieren realizar modificaciones en el código de los plugins es recomendable utilizar la segunda alternativa.
Para la primera opción, todos los archivos “.ms” provistos por la cátedra deben ser copiados a la carpeta:
........\\\\AutodesAutodesAutodesAutodeskkkk\\\\3ds Max 203ds Max 203ds Max 203ds Max 2011111111\\\\ScriptsScriptsScriptsScripts\\\\StartupStartupStartupStartup\\\\
De esta forma 3Ds MAX carga los plugins al iniciar la aplicación. Este paso debe
hacerse antes de haber ejecutado la aplicación.
Interfaz gráficaInterfaz gráficaInterfaz gráficaInterfaz gráfica
3D Studio MAX posee un editor visual en el que se pueden crear objetos en 3D y manipularlos a través del teclado y el Mouse. A continuación mencionaremos los controles fundamentales que son necesarios para la integración con el Framework.
Al ingresar a la aplicación vemos una pantalla principal divida en 4 regiones.
Cada región muestra el universo 3D desde una perspectiva diferente: Pespective, Top, Left, Right, etc. La más utilizada en esta guía será Perspective. Estas regiones que muestran el universo 3D se denominan Viewport.
En la parte inferior izquierda de la aplicación se encuentran los siguientes controles para la manipulación de vista del universo 3D:
5 Técnicas de Gráficos por Computadora
Maximize ViewportMaximize ViewportMaximize ViewportMaximize Viewport: Toma la ventana de perspectiva seleccionada y la maximiza
para que ocupe toda la pantalla. En los siguientes ejemplos de esta guía estarán maximizados de esta forma.
OrbitOrbitOrbitOrbit: Permite rotar el universo 3D. Existen varias maneras de rotar el universo.
Hay mantener presionado sobre el botón de la imagen y luego seleccionar el mecanismo denominado “Orbit”.
ZoomZoomZoomZoom: Permite acercar y alejar la vista del universo 3D. Pan viewPan viewPan viewPan view: Permite desplazarse vertical y horizontalmente sobre el universo 3D. ShortcutsShortcutsShortcutsShortcuts: Los últimos tres controles pueden aplicarse utilizando solo el Mouse
con los siguientes shortcuts:
• Rueda del Mouse: Zoom
• Mantener botón del medio y desplazarse: Pan view
• Mantener botón del medio + ALT + desplazarse: Orbit En la parte superior de la aplicación encontramos los siguientes controles:
Cambiar perspectivaCambiar perspectivaCambiar perspectivaCambiar perspectiva: Permite alterar entre todas las vistas: Perspective, Top,
Front, etc. Cambiar visualización de modelosCambiar visualización de modelosCambiar visualización de modelosCambiar visualización de modelos: Permite alterar entre modo Wireframe (se
ven los triángulos) y modo coloreado.
Trabajo Práctico – Guía 3D Studio Max 6
SeleccionarSeleccionarSeleccionarSeleccionar: Permite seleccionar un modelo con el Mouse. Shortcut: Q Ver lista de objetosVer lista de objetosVer lista de objetosVer lista de objetos: Muestra todos los modelos del universo 3D en una lista. TransformacionesTransformacionesTransformacionesTransformaciones: permite mover, rotar y escalar un modelo. Shortcuts:
• Mover: W
• Rotar: E
• Escalar: R
LayersLayersLayersLayers: permite agrupar los modelos del universo 3D en capas. Esta categorización de modelos luego puede ser aprovechada desde el Framework TgcViewer.
En la parte derecha de la aplicación encontramos un conjunto de solapas que permite realizar las siguientes funciones:
Solapa CrearSolapa CrearSolapa CrearSolapa Crear: contiene varias primitivas gráficas básicas (Cubo, Esfera, Cilindro,
etc) para crear nuevos modelos. Solapa ModificarSolapa ModificarSolapa ModificarSolapa Modificar: permite alterar todos los parámetros y propiedades de un
modelo ya creado. Solapa DisplaySolapa DisplaySolapa DisplaySolapa Display: permite configurar qué tipos de objetos se ven en pantalla y
cómo se ven. Es útil cuando existen gran cantidad de objetos en el universo 3D y se desea trabajar solo con un conjunto de ellos.
Solapa UtilitiesSolapa UtilitiesSolapa UtilitiesSolapa Utilities: muestra diversas herramientas externas de 3Ds MAX. Los
plugins de la cátedra se cargan a través de esta solapa.
7 Técnicas de Gráficos por Computadora
Creación de modelos estáticosCreación de modelos estáticosCreación de modelos estáticosCreación de modelos estáticos
Crear un modelo estático implica los siguientes pasos básicos: 1. ModelaModelaModelaModeladodododo: crear la malla de polígonos del objeto deseado. 2. TexturadoTexturadoTexturadoTexturado: crear una textura (imagen 2D) y aplicársela al objeto. 3. ExportaciónExportaciónExportaciónExportación: utilizar el plugin de la cátedra para exportar el objeto. 4. UtilizaciónUtilizaciónUtilizaciónUtilización: cargar el modelo con la clase del Framework
correspondiente. A continuación explicamos cada paso.
Modelado
Existen diversas técnicas y estilos de modelo de objetos 3D o mallas. Para a
grandes rasgos todas las técnicas parten de un objeto simple, como un cubo, al cual le van agregando la complejidad de polígonos deseada (Ver apunte de Unidad 3: “Conceptos Básicos de 3D”).
Para crear un cubo vamos a la solapa Crear del panel de la derecha y seleccionamos la primitiva “Box”:
Una vez seleccionada, hacemos clic sobre el Viewport y desplazamos el Mouse para especificar el ancho y largo del cubo. Luego soltamos el clic y volvemos a presionar para especificar el alto del cubo. Al soltar tenemos la primitiva creada.
Trabajo Práctico – Guía 3D Studio Max 8
Al crear la primitiva podemos ir a la solapa Modificar, del panel de la derecha,
para modificar sus atributos:
Para poder lograr el objeto final deseado necesitamos agregar nuevos polígonos al
modelo, modificar sus vértices y sus aristas. Esto puede hacerse aplicando el Modifier denominado “Edit Mesh”.
3D Studio MAX posee un mecanismo de modificación de objetos 3D denominado Modifiers. Un Modifier es un proceso que aplica una cierta transformación a un objeto 3D. Los Modifiers se pueden encadenar en forma de pila, permitiendo lograr una gran variedad de efectos. El nombre Modifier es similar a los Modifiers del Framework de la cátedra, pero hacen referencia a conceptos distintos.
En este caso utilizaremos el Modifier “Edit Mesh” que se aplica teniendo seleccionado el objeto a modificar y buscando el Modifier en la solapa Modificar.
9 Técnicas de Gráficos por Computadora
Al aplicarlo, podremos ver que en la solapa Modificar del objeto seleccionado
aparecen nuevas opciones. En estas opciones podemos elegir trabajar de varias formas:
• Manipular a nivel de vértices.
• Manipular a nivel de aristas (edges).
• Manipular a nivel de borde.
• Manipular a nivel de polígonos (faces).
• Manipular a nivel de objetos (cuando hay varios modelos con Attach).
Sobre el nivel de manipulación elegido (vértice, arista, polígono) podemos aplicar
las transformaciones básicas, mover, rotar y escalar, de la misma que si estuviésemos transformando un objeto entero. A su vez podemos crear nuevos vértices, eliminar aristas, etc.
Una operación muy útil es agregar nuevas aristas. Para ello seleccionamos la manipulación a nivel de arista y luego elegimos dos aristas existentes. Para seleccionar varios objetos mantenemos CTRL y hacemos clic. Luego hacemos clic izquierdo sobre la selección y elegimos la operación “Connect”.
Trabajo Práctico – Guía 3D Studio Max 10
Al aplicar “Connect” creamos una nueva arista que conecta las dos aristas
seleccionadas. Esta nueva arista creada termina delimitando también una nueva cara o polígono. Entonces ahora podemos pasar al nivel de manipulación de polígonos, seleccionar la nueva cara y desplazarla hacia delante.
11 Técnicas de Gráficos por Computadora
Con este mecanismo, agregando aristas y moviendo polígonos, podemos llegar a construir objetos de la complejidad y calidad deseada.
Para profundizar el manejo de esta técnica recomendamos los siguientes links:
• http://www.youtube.com/watch?v=21XD-dmrhYI&p=A12BF2F8CC489A50
• http://www.youtube.com/watch?v=A0TOLIBq8gM
• http://www.youtube.com/watch?v=sq7wM9Ddxvo&feature=related
• http://www.youtube.com/watch?v=UNM-_BrtYZM&feature=related
• http://www.youtube.com/watch?v=f-VZW688iuo
Texturado
Una textura es una imagen que se aplica a un modelo creado (Ver apunte de
Unidad 4: “Texturas e Iluminación”). Es importante comenzar el proceso de textutado solo después de que se haya terminado de modelar el objeto. Si luego de haber aplicado la textura es necesario agregar o quitar polígonos, es probable que haya que realizar el texturado de nuevo.
Los pasos básicos del proceso de texturado son los siguientes: 1. Crear una textura en un programa de edición de imágenes. 2. A un modelo ya terminado asignarle un Material. 3. Aplicarle al modelo el Modifier “Unwrap UVW”. 4. Ajustar en paralelo el “Unwrap UVW” y la textura hasta lograr la calidad
deseada. Si al objeto de ejemplo, modelado en la sección anterior, le queremos aplicar una
textura hacemos lo siguiente. Seleccionamos el modelo y abrimos el editor de Materiales de 3Ds MAX.
El editor de Materiales muestra a la izquierda una lista de todos los tipos de
Material que podemos utilizar. De todos los Materials existentes solo dos tipos pueden ser utilizados con el Framework:
• Standard: Material común que permite aplicarle un color o una imagen a un modelo. Es útil cuando se quiere aplicar una única textura al modelo.
Trabajo Práctico – Guía 3D Studio Max 12
• Multi/Sub-Object: Material compuesto que contiene a su vez a otros Materials. En la integración con el Framework se utiliza un Material de este tipo compuesto por varios Standard Material. Es útil para cuando se quiere aplicar más de una textura a un modelo.
Para crear un nuevo Material, seleccionamos el tipo deseado y lo arrastramos hacia el panel central. En nuestro caso creamos un Standard Material.
Hacemos doble sobre el Material creado y en el panel de la derecha aparecen
todas las propiedades del mismo. En la propiedad de Diffuse hay un botón cuadrado, al lado del selector de color, que permite elegir agregar una imagen al Material (un DiffuseMap).
13 Técnicas de Gráficos por Computadora
Seleccionar Bitmap y nos abre una ventana para elegir una imagen del
FileSystem. Luego tenemos que aplicar el Material creado nuestro objeto 3D. Para ello
seleccionamos el modelo 3D (en el Viewport), luego seleccionamos el Material creado (en el Materials Editor), hacemos clic derecho sobre este y elegimos “Assign Material to selection”.
Es necesario también tildar la primera vez la opción “Show Standard Map in Viewport” para que el Material aplicado se vea en el objeto. Luego de esto, deberíamos poder ver nuestro modelo con la textura elegida.
Trabajo Práctico – Guía 3D Studio Max 14
Es necesario también tildar la primera vez la opción “Show Standard Map in
Viewport” para que el Material aplicado se vea en el objeto. Luego de esto, deberíamos poder ver nuestro modelo con la textura elegida.
El Material se aplica de manera genérica al modelo. En la mayoría de los casos
esta forma de aplicar la textura no es la deseada. Para configurar con mayor detalle como se aplica la textura en cada polígono particular del modelo utilizamos el Modifier “Unwrap UVW”. Este Modifier permite “abrir” todas las caras del modelo y proyectarlas sobre el plano.
Elegimos entonces el Modifier “Unwrap UVW”, desde la solapa de Modificar, y elegimos la opción “Face", para poder editar el mapeado de texturas en cada polígono. Luego hacemos clic en el botón “Edit”.
La aplicación nos muestra una ventana en la que podemos editar el mapeo de
texturas de cada polígono. Confeccionar el mapeo a mano desde cero es una tarea ardua. Por eso se suele utilizar algún método de “unwrap” estándar de 3Ds MAX y luego se hacen pequeñas correcciones sobre éste. Para elegir un método estándar de “unwrap” vamos a “Mapping => Normal Map”. Dentro de “Normal Map” tenemos varias alternativas. Elegimos “Box” para nuestro ejemplo.
15 Técnicas de Gráficos por Computadora
En la parte inferior podemos ver como se “abre” el modelo en caras que se
proyectan sobre un plano. Podemos seleccionar una cara y desplazarla con el Mouse para ir variando el mapeo de las coordenadas de texturas (coordenadas UV).
A partir de este momento se debe hacer un trabajo en paralelo entre el editor de “Unwrap UVW” y el Viewport con el modelo 3D a la vez que se va modificando la imagen en una herramienta de edición.
Trabajo Práctico – Guía 3D Studio Max 16
Más de una textura por modelo
En la técnica de texturado más sencilla, cada objeto 3D posee solo una única
textura. Si queremos aplicar más de una textura a un modelo debemos crear un Material del tipo Multi/Sub-Object. Para ello vamos al editor de Materials, elegimos un Material del tipo Multi/Sub-Object y lo arrastramos hacia el panel central.
Hacemos doble clic sobre el Material y en su solapa de propiedades podremos ver el listado de los Sub-Materials que posee. Por defecto trae 10. Antes de empezar a trabajar es necesario configurar la cantidad de Sub-Materials a utilizar, una por cada textura diferente requerida. En nuestro caso utilizaremos dos. Hacemos clic en “Set Number” y especificamos dos.
Luego entramos a cada Material individual (haciendo clic en el botón del listado
con su nombre) y especificamos la textura a utilizar de la misma forma que se explicó anteriormente para un Standard Material. Para cada Sub-Material debemos especificar la opción “Show Standard Map in viewport” para que la misma sea visible (con clic derecho sobre el Sub-Material). Una vez configurados ambos Sub-Material, seleccionamos el Multi/Sub-Object Material y se lo asignamos al modelo 3D (clic derecho sobre el Multi/Sub-Object y elegimos “Assign Material to Selection”).
Luego de creado y asignado el Material, debemos configurar correctamente los polígonos de nuestro modelo para que muestren la textura deseada. A cada cara del modelo se le especifica un ID de Textura, que se relaciona con el ID de Sub-Material del listado mostrado anteriormente. Para configurar los IDs de cada cara del modelo, aplicamos al modelo el Modifier “Edit-Poly”.
Dentro de este Modifier elegimos la manipulación a nivel de polígonos y luego nos vamos a la sección del Modifier denominada “Polygon: Material IDs” (en la parte más inferior de todos los controles de este Modifier).
17 Técnicas de Gráficos por Computadora
Con esta herramienta vamos seleccionando las caras del modelo que nos interesan
y le aplicamos el ID deseado. En nuestro ejemplo tenemos solo dos texturas, por lo tanto todas las caras del modelo deben tener ID 1 o 2. Al aplicar los IDs debemos poder ir viendo cómo se aplica la textura correspondiente a ese ID.
Para profundizar el manejo de la técnica de texturado recomendamos los
siguientes links:
• http://www.youtube.com/watch?v=3NwfuFBVywc
• http://www.youtube.com/watch?v=-I8xDH1GmF4&feature=related
• http://www.youtube.com/watch?v=CLar6qhZKUY
• http://www.youtube.com/watch?v=snIhrVeKCus
Trabajo Práctico – Guía 3D Studio Max 18
• http://www.youtube.com/watch?v=lSQJ5ej4-A8&feature=related
• http://www.youtube.com/watch?v=mA_Qaiwwjac
Exportación
Una vez finalizado el modelo estático el mismo debe ser exportado para poder ser
utilizado en el Framework TgcViewer. La exportación se realiza a través de los plugins. Exportar un modelo estático es similar a exportar un escenario, por lo tanto el procedimiento se trata en la sección de “Creación de escenarios”.
Creación de escenariosCreación de escenariosCreación de escenariosCreación de escenarios
Un escenario puede ser considerado como un conjunto de modelos estáticos que luego son exportados en un único archivo XML. La creación de cada modelo individual del escenario se realiza siguiendo los pasos mencionados anteriormente para confeccionar modelos estáticos.
El plugin utilizado para exportar escenarios es el “TgcSceneExporter.ms” que a su vez depende del plugin “MaxScriptUtils.ms”. Si se siguieron los pasos de instalación de los plugins, explicados anteriormente, ambos serán cargados al inicio de 3Ds MAX y los podemos acceder desde la solapa de “Utilities”.
Una vez que tenemos nuestro escenario lista para ser exportado, nos dirigimos a la solapa de “Utilities”, ubicada en el panel derecho de la aplicación.
19 Técnicas de Gráficos por Computadora
Luego seleccionar el botón “MAXScript” y elegir el plugin “TGC-Scene
Exporter”. Si el mismo no aparece es que no fue bien cargado por la aplicación. Al elegir el plugin aparece en la parte inferior todas las opciones y controles
gráficos creados en forma customizada por la cátedra para este plugin.
Trabajo Práctico – Guía 3D Studio Max 20
Scene nameScene nameScene nameScene name: Nombre del escenario a exportar. Es recomendable que el nombre
del escenario coincida con el nombre del archivo a guardar. Export SceneExport SceneExport SceneExport Scene: Inicia el proceso de exportación. Al hacer clic sobre el botón se
abre una ventana de FileSystem preguntando en donde se desea almacenar el archivo XML que se va a generar. Solo se exportan los modelos que estén actualmente seleccionados en el Viewport. Suele ser útil utilizar el ícono “Ver lista de objetos”, indicado al inicio del documento, para controlar con precisión que objetos están seleccionados.
Texture SettingsTexture SettingsTexture SettingsTexture Settings: El plugin permite tomar todas las texturas utilizadas en todos
los Materials del escenario y copiarlas a una carpeta destino. Esta modalidad es muy útil cuando se utilizaron texturas provenientes de diversas carpetas de la PC de usuario. Si se activa la opción “Copy textures to folder”, todas las texturas de todos los Materials son copiadas a una carpeta relativa a la exportación del XML. El nombre de la carpeta es determinado por el campo “Output dir”. También puede especificarse un prefijo para todas las texturas copiadas mediante el campo “Files preffix”.
LightmapLightmapLightmapLightmaps Settingss Settingss Settingss Settings: El plugin permite generar texturas de Lightmaps para cada
modelo del escenario (Ver apunte de Unidad 7: “Técnicas de Optimización – Indoor”). Si se activa la opción “Enable LightMaps”, se genera una textura de Lightmap compartida por todos los modelos del escenario, en base a las luces dispuestas en el viewport. Este mecanismo se explica en profundidad más adelante.
Portal RenderingPortal RenderingPortal RenderingPortal Rendering: El plugin permite generar metadata útil para Portal Rendering
(Ver apunte de Unidad 7: “Técnicas de Optimización - Indoor”). Este mecanismo se explica en profundidad más adelante.
21 Técnicas de Gráficos por Computadora
Consideraciones generales
A continuación se mencionan consejos y cuestiones a tener en cuenta para el uso
compatible de la información exportada por el plugin:
• Se exportan solo los objetos que estén actualmente seleccionados en el Viewport. Si no se quiere exportar un objeto, simplemente no seleccionarlo.
• Cada modelo es exportado con su nombre. Luego puede utilizarse este nombre dentro del Framework TgcViewer para realizar algún proceso particular.
• Cada modelo es exportado con el layer al cual pertenece. Los modelos pueden organizarse en layers para luego ser utilizada esta clasificación para algún proceso particular dentro del Framework TgcViewer.
• Puede exportarse tanto modelos con textura como sin textura (solo con colores por vértice).
• Los modelos pueden exportarse con iluminación por Lightmaps o sin iluminación.
• Cada modelo solo puede tener un único Material asignado. Si se quiere
tener más de una textura en un modelo, utilizar un Material del tipo Multi/Sub-Object.
• Solo se exporta la siguiente información de un modelo. El resto de la información no mencionada no es exportada:
o Triángulos y vértices. o Coordenadas de textura. o Colores por vértice. o Material de la malla. o Normales
• El plugin solo exporta los Materials del tipo Standard Material y Multi/Sub-Object Material. El resto de los Materials son ignorados.
• De cada Material solo se exporta la propiedad Bitmap del DiffuseMap. El resto de las propiedades del Material son ignoradas.
• Si un objeto está compuesto por dos modelos separados, y dentro de la aplicación se quiere tratar como un único Mesh, entonces hay que utilizar la herramienta “Attach” de 3Ds MAX para unir ambos modelos en uno solo. La opción de “Attach” es un control que se encuentra dentro del Modifier “Edit Poly”.
• El origen de coordenadas de cada modelo será el lugar en el cuál se encuentra ubicado dentro del escenario de 3Ds MAX. Para modelos
Trabajo Práctico – Guía 3D Studio Max 22
individuales es recomendable centrar el objeto en la posición (0, 0, 0). Este centro de coordenadas influye sobre la posición en que se carga el modelo dentro del Framework TgcViewer.
Limitaciones de exportación
3Ds MAX posee un montón de herramientas y tipos de objetos para interactuar. El
plugin solo toma la información que necesita del editor e ignora todo el resto. Es importante entender esta limitación antes de comenzar a utilizar una nueva herramienta de 3Ds MAX. Por ejemplo la herramienta para “generación de partículas” incluida con 3Ds MAX permite generar efectos de partículas muy buenos, pero el plugin actualmente no permite exportarlos al Framewor TgcViewer. El usuario debe limitarse a utilizar solo las características de la aplicación soportadas por el plugin, o desarrollar su propio plugin.
Alpha Blending
El plugin permite exportar modelos con texturas translúcidas. Para ello al modelo
se le debe asignar una textura con canal alpha, por ejemplo un PNG-32. Luego en el Framework TgcViewer debe activarse específicamente para ese modelo el renderizado de Alpha Blending. El plugin permite hacer esta activación automáticamente utilizando la propiedad “Opacity” del Material Editor.
En el Editor de Materiales, se debe seleccionar el Material correspondiente al modelo y aplicar el mismo Bitmap que se utilizó para el DiffuseMap para el mapa “Opacity”.
Seleccionar el Bitmap con la imagen con transparencia y aplicarlo al mapa
“Opacity” (arrastrando la línea roja). Luego hacer doble clic sobre el Bitmap para abrir
23 Técnicas de Gráficos por Computadora
su menú de propiedades, y seleccionar la opción “Alpha” dentro del recuadro “Mono Channel Output”.
Exportación de Lightmaps
El plugin permite exportar efectos de luces y sombras estáticas mediante la
técnica de Lightmap (ver Unidad 4: “Texturas e Iluminación”). Los pasos son los siguientes:
1. Tener el escenario listo para ser exportado. 2. Ubicar luces de 3Ds MAX en el escenario y configurar todos sus
parámetros. 3. Generar renders estáticos para controlar que la iluminación aplicada es la
correcta (lo que el usuario ve en el Viewport es solo una aproximación). 4. Habilitar la generación de Lightmaps en el plugin y realizar la exportación.
Al realizar la exportación las luces a tener en cuenta deben estar seleccionadas en el Viewport, junto con todo el resto de los modelos que se desean exportar.
El plugin toma las luces ubicadas dentro del escenario y calcula como influyen
estas luces en cada objeto 3D. Se genera una única textura de Lightmap compartida por todos los modelos del escenario y la almacena en la carpeta especificada en el campo “Output dir” del plugin. A su vez se pueden configurar otros parámetros de exportación como el formato de las imágenes, su tamaño y el prefijo.
La generación de Lightmaps para un escenario complejo es una tarea costosa, y puede llegar a demorar varios minutos, dependiendo de la cantidad de objetos y cantidad de luces a exportar.
La colocación de luces dentro del escenario y la configuración de sus valores para lograr un efecto de iluminación apropiado es una tarea de diseño muy compleja, que escapa los alcances de la materia y de este apunte. Pero a continuación se mencionan algunos lineamientos básicos:
Trabajo Práctico – Guía 3D Studio Max 24
Desde la solapa “Create”, del panel de la derecha, podemos posicionar distintos
tipos de luces dentro del escenario. El tipo más común de luz es el “Target Spot”, que representa una luz con un cono de iluminación que parte desde un origen y tiene un alcance limitado. De una luz se pueden especificar muchos atributos, como su color, intensidad y volumen del cono.
Al posicionar luces sobre el escenario, el Viewport de 3Ds MAX irá variando la
iluminación de los objetos. Muchos objetos probablemente queden a oscuras. El Viewport solo muestra una aproximación muy rudimentaria del efecto final de las luces. Es conveniente realizar renders fijos desde determinados puntos del escenario para previsualizar el efecto final. Para realizar un render desde la posición en la que estamos parados, hacemos clic en el botón “Render Production” (o F9) ubicado en la barra de menú superior.
Exportación de Portal Rendering
El plugin permite exportar Metadata asociada a la técnica de optimización Portal
Rendering (Ver apunte de Unidad 7: “Técnicas de Optimización - Indoor”). El usuario puede crear un escenario y dividirlo en celdas convexas que se conectan mediante portales. Luego esta división en celdas y portales puede ser utilizada por herramientas del Framework TgcViewer para acelerar la performance de renderizado.
Dentro del Framework se adjunta un archivo .MAX a modo de ejemplo, que muestra como crear celdas y portales. El ejemplo se encuentra en la siguiente ruta:
25 Técnicas de Gráficos por Computadora
TgcViewerTgcViewerTgcViewerTgcViewer\\\\ExamplesExamplesExamplesExamples\\\\PortalRenderingPortalRenderingPortalRenderingPortalRendering\\\\EscenarioPortalEscenarioPortalEscenarioPortalEscenarioPortal\\\\EscenarioPortal.maEscenarioPortal.maEscenarioPortal.maEscenarioPortal.maxxxx Es recomendable estudiar este ejemplo antes de utilizar esta utilidad del plugin. Los pasos a seguir son los siguientes:
1. Tener el escenario listo para ser exportado. 2. Crear celdas. Las celdas son cuerpos convexos (normalmente Box de 3Ds
Max) que el usuario crea y se clasifican dentro del layer especificado por el campo “Cells layer” del plugin. Las celdas deben englobar todos los objetos del escenario que desean abarcar. El plugin realiza una colisión entre el BoundingBox de cada modelo y el Convex-Hull de cada celda para saber a que celda pertenece cada modelo (Ver Unidad 6: “Detección de Colisiones”). Un modelo puede pertenecer a más de una celda. Todos los modelos deben pertenecer al menos a una celda.
3. Crear portales. Los portales son caras convexas (normalmente planos de 3Ds Max) que el usuario crea y se clasifican dentro del layer especificado por el campo “Portals layer” del plugin. Los portales deben colisionar con dos celdas obligatoriamente. El plugin realiza un testeo de colisión entre el Convex-Hull de cada portal y el polígono convexo de cada celda, para determinar como se conectan las celdas entre sí. Un portal no puede conectar ni más ni menos que dos celdas. Los portales se consideran bidireccionales.
4. Realizar la exportación, habilitando la generación de datos de Portal Rendering.
5. Visualizar el ejemplo “PortalRenderingFramework.cs” de los ejemplos de TgcViewer para comprender como utilizar la información exportada.
El Framework posee la clase “TgcPortalRenderingManager” para utilizar toda la
información de Portal Rendering para optimizar el renderizado. Esta clase se presenta solo a modo de ejemplo. Hay muchos aspectos de la misma sin pulir que pueden ser optimizados.
Creación de modelos animadosCreación de modelos animadosCreación de modelos animadosCreación de modelos animados
El plugin “TgcSkeletalAnimationExporter.ms” permite exportar modelos con animación esquelética hechos con 3Ds MAX (Ver apunte de Unidad 5: “Animación”). Un modelo animado con esta técnica está compuesto por los siguientes elementos:
• Esqueleto: una estructura de huesos simple que se utiliza para animar el modelo.
• Modelo: el cuerpo o piel del personaje animado. Confeccionarlo es similar a un modelo estático (modelado + texturado).
• Animaciones: un mismo cuerpo 3D y esqueleto puede utilizarse para realizar muchas animaciones.
Crear un modelo animado implica los siguientes pasos básicos:
1. Crear esqueletoCrear esqueletoCrear esqueletoCrear esqueleto: especificar la estructura de huesos a utilizar. 2. ModeladoModeladoModeladoModelado: crear el cuerpo o piel (skin) que recubrirá al esqueleto. Este es
el personaje que se terminará visualizando. Implica modelar y texturar.
Trabajo Práctico – Guía 3D Studio Max 26
3. SkinningSkinningSkinningSkinning: adjuntar la piel del modelo al esqueleto, utilizando el Modifier Skinning. Aquí se configuran las influencias de cada vértice respecto a los huesos.
4. Exportar posturaExportar posturaExportar posturaExportar postura: utilizar el plugin de la cátedra para exportar la postura inicial, sin animación, del personaje. Se genera un archivo XML con la postura inicial.
5. Crear animacionesCrear animacionesCrear animacionesCrear animaciones: manipular el esqueleto y colocar KeyFrames para confeccionar N animaciones, sobre el mismo esqueleto.
6. ExportaExportaExportaExportar animaciónr animaciónr animaciónr animación: utilizar el plugin de la cátedra para exportar cada animación en forma independiente. Se genera un archivo XML por cada animación.
7. UtilizaciónUtilizaciónUtilizaciónUtilización: cargar el modelo con sus animaciones, haciendo uso de la clase del Framework correspondiente.
A continuación explicamos cada paso.
Crear esqueleto
3Ds MAX ofrece diversas herramientas para crear estructuras de huesos. Podemos
crear nuestro propio esqueleto customizado con la forma deseada utilizando la herramienta “Bones”, ubicada en la solapa “Create” del panel de la derecha, dentro de la categoría “Systems”. Pero crear un esqueleto completo desde cero suele ser una tarea compleja. Es por eso que, para formas humanas, suele utilizarse un esqueleto genérico, denominado “Biped”. Para acceder a la herramienta de “Biped” vamos a la solapa “Create”, luego a “Systems” y elegimos “Biped”.
Al seleccionar “Biped” nos permite crear un esqueleto humando haciendo clic
sobre el Viewport. Es recomendable ubicar el esqueleto centrado en el origen de coordenadas, con los pies sobre la grilla del 3Ds Max.
27 Técnicas de Gráficos por Computadora
Antes de crear el Biped debemos configurar la cantidad de huesos y extensiones
que deseamos que tenga. Eso se hace debajo del botón “Biped” seleccionado anteriormente.
La cantidad de huesos influye notoriamente en la performance de la aplicación en
TgcViewer. Es recomendable utilizar la menor cantidad de huesos requeridos. Una vez creado el esqueleto no puede modificarse desde esta sección. Debemos
seleccionar al Biped y dirigirnos a la solapa “Hierachy”. Aquí dentro tenemos muchas opciones de configuración sobre el esqueleto. Los huesos del esqueleto solo pueden ser alterados activando el modo “Figure Mode” y llendo luego al panel “Structure”.
Trabajo Práctico – Guía 3D Studio Max 28
Antes de continuar el esqueleto debe ser configurado en la postura inicial, que
luego permitirá realizar el Skinning. Esta postura inicial suele ser el esqueleto con los brazos abiertos. No se puede pasar al siguiente paso de animacións hasta que el esqueleto no haya quedado terminado.
Los huesos del esqueleto solo se pueden rotar. Para rotarlos utilizamos la misma herramienta de rotación que usamos para rotar un modelo estático. Si queremos trasladar todo el esqueleto entero, debemos seleccionar el hueso raíz o principal, que es la pelvis. Muchas veces no podemos seleccionar la pelvis directamente desde el Viewport. En esos casos suele ser útil abrir la ventana de “Selección por nombre” y elegir la raíz. Su nombre default es “Bip001”, sin ninguna indicación de nombre de hueso.
Los huesos del esqueleto también se pueden escalar. Esto nos ayuda a definir las proporciones que deseamos que tenga el cuerpo.
Modelado
El modelado consiste en crear un modelo 3D estático que sea el cuerpo del
esqueleto. Este cuerpo se construye con las mismas técnicas vistas para crear modelos estáticos. El cuerpo debe crearse de forma tal que envuelva perfectamente el esqueleto en su postura inicial.
29 Técnicas de Gráficos por Computadora
Es importante finalizar completamente el modelado antes de pasar al siguiente
paso.
Skinning
Skinning es el proceso de adjuntar el cuerpo o piel modelado al esqueleto,
mediante la configuración de influencias entre cada vértice y hueso. Para ello se selecciona el cuerpo y se le aplica el Modifier “Skin”.
Trabajo Práctico – Guía 3D Studio Max 30
Dentro del Modifier hacemos clic en el botón “Add” para seleccionar los huesos del esqueleto que queremos adjuntar al modelo. Seleccionamos todos los huesos del esqueleto. Muchas veces, a parte de los huesos, aparecen otros Helpers que deben obviarse. Suele ser útil filtrar los objetos existentes por los que sean solo del tipo “Bone” (En “Display”, “Object types”).
Una vez agregados todos los huesos, el Modifier genera influencias genéricas para el cuerpo. Normalmente estas influencias hay que adaptarles un poco para que logren el efecto deseado. Para modificarlas hacemos clic en el botón “Edit Envelopes”. Al activar este modo de edición, podemos seleccionar los distintos huesos del esqueleto y configurar sus “auras” de influencia sobre los vértices. Cada hueso debe influir solo en las zonas aledañas, sino se generarán alteraciones al animar.
31 Técnicas de Gráficos por Computadora
3Ds Max marca con colores los distintos niveles de influencia de ese hueso sobre los vértices del modelo. Las “auras” de influencias se pueden alterar trasladando con el Mouse sus puntos de control.
Para probar si una influencia afecta correctamente al modelo, debemos salir del modo “Edit Envelope” y probar rotar ese hueso. Si la piel acompaña correctamente al hueso, entonces el Skinning fue aplicado en forma satisfactoria. Caso contrario se producirá un “efecto chicle”, en donde algunos vértices que deberían haber sido influenciados, no lo fueron. Para hacer estas pruebas suele ser útil visualizar el cuerpo 3D con cierta transparencia, para que deje vislumbrar el esqueleto que engloba. Es importante deshacer la rotación del hueso hecha para probar el Skinning. El esqueleto debe estar siempre en la postura inicial.
Solo se debe pasar al siguiente paso cuando el Skinning esta terminado y se probó que la mayoría de los huesos pueden rotar sin generar efectos indeseados sobre el cuerpo.
Exportar postura
En este paso debemos utilizar el plugin de la cátedra
“TgcSkeletalAnimationExporter.ms” para exportar la postura inicial del modelo, junto con su esqueleto y el skinning.
Para ello vamos a la solapa “Utilities” y elegimos el plugin de la misma forma en que elegimos el plugin para exportar modelos estáticos (solo que en este paso es un plugin distinto).
Trabajo Práctico – Guía 3D Studio Max 32
Para exportar la postura inicial, seleccionamos el cuerpo y hacemos clic en
“Export Mesh”. Esto genera un archivo de formato “NNN-TgcSkeletalMesh.xml”. Es importante guardar una versión del .MAX con la postura inicial.
Crear animaciones
Sobre el modelo y esqueleto anterior en la postura inicial, se pueden realizar
varias animaciones. Es necesario crear un nuevo .MAX para cada animación, que parta siempre de la postura inicial original. Crear un buen efecto de animación fluida es una tarea de diseño muy compleja. A continuación solo se explican algunos lineamientos básicos.
Para animar solo nos interesa interactuar con el esqueleto, más específicamente, rotar sus huesos. El cuerpo ahora pasa a ser solo un atributo de la postura inicial.
Lo primero que tenemos que hacer antes de animar es configurar la línea del tiempo, ubicada en la parte inferior de la pantalla.
En esta ventana debemos especificar el largo de nuestra animación. La duración default es 100 cuadros, y suele ser elevada para la mayoría de las animaciones a utilizar en el Framework. Alrededor de 30 cuadros suele ser un valor adecuado.
33 Técnicas de Gráficos por Computadora
Luego podemos empezar a animar. Para animar debemos colocar KeyFrames en los distintos cuadros de la línea de tiempo ubicada en la parte inferior de la pantalla. Los KeyFrames definen una rotación particular de cada hueso del esqueleto. 3Ds Max interpola el resto del movimiento entre KeyFrame y KeyFrame.
Debemos tener activada la opción “AutoKey” para que 3Ds Max genere un nuevo KeyFrame cada vez que alteramos la rotación de un hueso. Cada hueso posee su propio canal de KeyFrames.
En animaciones que se desean reproducir en Loop, es importante que la posición inicial de la animación sea igual a la posición final. Para ello es útil utilizar la herramienta de “Copy/Paste” de la solapa “Hierachy”.
Trabajo Práctico – Guía 3D Studio Max 34
Exportar animaciones
Cuando finalizamos una animación la exportamos con el plugin mostrado
anteriormente, con la opción “Export Animation”. Es importante especificar el nombre de la animación, y que éste coincida con el nombre del archivo a guardar. El plugin genera un XML por cada animación exportada, de la forma “NNN-TgcSkeletalAnim.xml”.
Reutilizar animaciones
Dado que las animaciones son solo sobre el esqueleto, se pueden reutilizar todas
las animaciones de un mismo esqueleto sobre diversos cuerpos o modelos. Podemos generar varios Mesh exportados con la postura inicial y reutilizar las animaciones existentes. Para ello es necesario que el nuevo modelo que se haga se adapte correctamente al esqueleto existente. Se debe confeccionar el Skinning para el nuevo modelo en la misma postura inicial y con el mismo esqueleto que se utilizó para las animaciones.
Más recursos sobre animación
A continuación se detallan algunos links para profundizar más la técnica de
animación:
• Libro: Modeling a character in 3ds max, Escrito por Paul Steed http://books.google.com.ar/books?id=w_KLe1AylhEC&printsec=frontcover&dq=
3d+max+character&hl=es&ei=hAdWTNOVFIK78gbazaHABA&sa=X&oi=book_result&ct=result&resnum=1&ved=0CC8Q6AEwAA#v=onepage&q=3d%20max%20character&f=false
35 Técnicas de Gráficos por Computadora
• Biped animation: http://www.youtube.com/watch?v=9LxRCJ8DbYE
• Modelado y animación: http://www.3dk.org/tutorial/Modeling-Texturing-and-Animating-low-poly-Lara-Croft-in-3ds-max-Part-I-.html
Modelos de ejemploModelos de ejemploModelos de ejemploModelos de ejemplo
La cátedra posee varios modelos de ejemplo ya exportados al formato de TGC y también junto con su archivo MAX para ser editados. Los mismos se encuentran dentro de las carpetas:
• Examples\Media\MeshCreator
• Examples\Media\ModelosTgc
• Examples\Media\SkeletalAnimations