¿Qué es Ptex?
Ptex es un sistema de mapeado desarrollado por Walt Disney Studios que está siendo utilizado en producciones de animación y efectos visuales en diferentes estudios alrededor del mundo. Si bien no podemos considerarlo como un estandard dentro de la industria, si que ha tenido una excelente acogida por parte de usuarios y colectivos.
¿Qué tiene de particular?
No requiere de UV Mapping tradicional, lo que permite a los modeladores ahorrarse un proceso tedioso, complicado y que puede ser bastante lento en función del asset a texturizar.
Ptex crea una textura para cada uno de los polígonos que forman la geometría de un asset.
El formato de archivo utilizado por Ptex es capaz de almacenar cientos de texturas en un solo fichero.
El filtrado en render es de mejor calidad que en las texturas tradicionales basadas en UV Mapping.
¿Puedo utilizar Ptex en cualquier software?
No, solo algunos motores de render y software de texturizado soportan esta tecnología, aunque bien es cierto que cada día son más. Estos son algunos de los que sí soportan Ptex.
- Vray
- Arnold
- RenderMan Studio
- MentalRay 3.10
- 3D Light
- Houdini
- Mari
- Mudbox
- 3D Coat
Paso a paso como utilizar Ptex en Mari, Maya y VRay.
Chequear el asset en Maya, cerciorarse de que no tenga UV Mapping alguno y exportar como .obj
- Crear un nuevo proyecto en Mari e importar el .obj exportado desde Maya.
- Seleccionar Force Ptex como Mapping Scheme y seleccionar Create From Face Groups en Selection Sets. Esto forzará a Mari a trabajar con Ptex por si acaso nos hemos olvidado algunos restos de UV Mapping, y nos creará un grupo de selección por cada cara de la geometría.
- Finalmente elige las opciones de textura que necesites.
En la nueva ventana que aparece, tenemos varias opciones. La primera es para cargar un archivo de Ptex en el caso de que ya hayan sido creadas texturas para el asset. Supongamos que otra persona ha trabajado en las texturas y nos pasa la geometría y el archivo para cargar en Mari.
La siguientes opciones son relativas a crear Ptex desde cero. Nos encontramos dos opciones diferentes.
- Uniform Face Size: Solemos utilizar esta opción cuando todas las caras de una geometría tienen similar tamaño. Con esta opción tenemos que seleccionar Per Face Texture Size, que es el tamaño en texels de cada textura que se aplica a cada una de las caras. Y finalmente el Format (8bits, 16bits o 32bits) y un Color base.
- Worldspace Density: Aplica la resolución de textura en texels a cada centímetro de geometría. Con este método las caras pequeñas tendrán menos resolución que las caras grandes. Generalmente yo utilizo este método.
Vemos que Mari se inicia, se carga nuestro asset y se crea un channel y una layer llamados Ptex. Fijaos que no tenemos acceso a la pestaña UV.
- Si seleccionamos, podremos comprobar que un Selection Set ha sido creado para cada una de las caras de nuestro asset. Ptex siempre funciona bajo polígonos individuales, así que poder seleccionarlos uno a uno es muy importante.
- Podemos pintar y ver que tal se comporta el trazo.
- En la barra de herramientas de Ptex podemos cambiar la resolución de las texturas de las caras seleccionadas. De este modo, si vemos que al pintar no tenemos suficiente resolución, simplemente seleccionamos las caras y aumentamos el número de texels. No olvides darle al icono redondo para aplicar los cambios.
- En este ejemplo he reducido el número de texels, y como podéis ver, el trazo es apenas visible y de muy mala calidad.
- Huelga decir que se puede utilizar cualquier herramienta de forma normal. Proyecciones, displacements, etc.
- Una vez terminada tu textura, para exportarla sigue el mismo proceso que con texturas basadas en UV Mapping. Simplemente click derecho encima del channel deseado y Export Current Channel Flattened.
- Utilizar las siguientes opciones en la ventana de diálogo.
- La forma mas rápida para comprobar si se ha exportado bien, es crear una capa vacía e importar el archivo.
- Para renderizar en Maya, simplemente importa el asset como .obj o cualquier otro formato.
- Crea un VRay Material y un nodo VRay Ptex.
- Listo, lanza el render y voilá!