GMT Importer con soporte de nuevos shaders
Publicado: 14 Nov 2010 01:31
He estado modificando el famoso script de importación de GMTs a 3dMax, para que permita cargar los nuevos shaders desarrollados por Some1. Además, he incluido un pequeño método chapucero para solucionar problemas si los materiales se asignan mal, como sucede a veces en algunas instalaciones.
GMT Importer 0.95
Como siempre, se debe copiar en la carpeta \Scripts\Startup del MAX.
Importante: es necesario copiar los nuevos shaders (que estarán en \Gamedata\Shared\), en la carpeta HardwareShaders del MAX.
Solución de problemas de asignación de materiales
A veces sucede que al importar, los materiales se asignan incorrectamente. El motivo es que el listado de materiales que obtiene el script no tiene el mismo orden que el que hace el MAX al cargar. En teoría los dos tendrían que hacerlo igual, cargando los shaders de forma alfabética pero no siempre es así, y esto provoca descuadres.
Por eso, en el nuevo script se muestra el orden de carga de los shaders y el archivo GFX que los contiene, para que podamos comparar y determinar si coinciden.
Supongamos que importamos un GMT, y nos encontramos con que los materiales no cuadran. Veamos qué hacer para solucionarlo:
Lo primero es abrir el Listener (F11 o la pestaña MAXScript->MAXScript Listener...). Volvemos a ejecutar el script, y nos encontraremos un listado parecido a este:
Ahi podemos ver que el primer shader que ha cargado el script es "Bump Map T1", y que lo ha hecho al leer bumpmap.gfx
A continuación miraremos en el Material Editor, el desplegable de shaders:
y verificaremos donde está cambiado el orden (en esta captura en concreto coinciden claro... que es mi instalación y funciona bien ). Comparando los dos listados, podemos determinar el orden de carga de los archivos GFX que contienen los shaders. Una vez sepamos el orden en que los carga el MAX, basta con editar el script e ir a la línea 48:
y modificarla reordenando los archivos GFX para que el script los cargue en el mismo orden que el MAX.
Evidentemente, ésto último también es válido para añadir nuevos shaders en caso de que aparezcan
GMT Importer 0.95
Como siempre, se debe copiar en la carpeta \Scripts\Startup del MAX.
Importante: es necesario copiar los nuevos shaders (que estarán en \Gamedata\Shared\), en la carpeta HardwareShaders del MAX.
Solución de problemas de asignación de materiales
A veces sucede que al importar, los materiales se asignan incorrectamente. El motivo es que el listado de materiales que obtiene el script no tiene el mismo orden que el que hace el MAX al cargar. En teoría los dos tendrían que hacerlo igual, cargando los shaders de forma alfabética pero no siempre es así, y esto provoca descuadres.
Por eso, en el nuevo script se muestra el orden de carga de los shaders y el archivo GFX que los contiene, para que podamos comparar y determinar si coinciden.
Supongamos que importamos un GMT, y nos encontramos con que los materiales no cuadran. Veamos qué hacer para solucionarlo:
Lo primero es abrir el Listener (F11 o la pestaña MAXScript->MAXScript Listener...). Volvemos a ejecutar el script, y nos encontraremos un listado parecido a este:
Código: Seleccionar todo
Welcome to MAXScript.
-------------Init script ---------------
Shader list
Added shader "Bump Map T1" from bumpmap.gfx
Added shader "Bump Map T1 add T2" from bumpmap.gfx
Added shader "Bump Map T1 mul T2" from bumpmap.gfx
Added shader "Bump Map T1 lerp T2 Vertex Alpha" from bumpmap.gfx
.
.
.
Added shader "Two Tone Paint T1" from CARPAINT.GFX
Added shader "Bump Specular Map T1 (Custom)" from CBUMPSPEC.GFX
Added shader "Bump Map Specular T1 (Custom)" from CBUMPSPEC.GFX
Added shader "Specular Map T1 (Custom)" from CBUMPSPEC.GFX
Added shader "Cube Map T1" from cubemap.gfx
.
.
.
Added shader "Cube Map Specular Map Alpha Swap SpecMap T0" from cubemap.gfx
Added shader "T1" from diffuse.gfx
.
.
.
Added shader "Fresnel Cube Map Add Spec Map Add Alpha Reflect Tex1" from FRESNEL.GFX
Added shader "Fresnel Cube Map Specular Add T1" from FRESNEL.GFX
Added shader "Light Flare" from LIGHTFLARE.GFX
Added shader "Light Flare - Headlights" from LIGHTFLARE.GFX
Added shader "Specular T1" from specular.gfx
Added shader "Specular T1 add T2" from specular.gfx
.
.
.
Added shader "Specular Map T1 mul T2 mul T3" from specular.gfx
Added shader "Specular Map T1 mul T2 add T3 add T4" from specular.gfx
Added shader "Bump Specular Map T0 Lerp T1 Vertex Alpha Custom" from user.gfx
Added shader "T0 Mul (T1 Lerp T2) T3 Alpha Custom" from user.gfx
A continuación miraremos en el Material Editor, el desplegable de shaders:
y verificaremos donde está cambiado el orden (en esta captura en concreto coinciden claro... que es mi instalación y funciona bien ). Comparando los dos listados, podemos determinar el orden de carga de los archivos GFX que contienen los shaders. Una vez sepamos el orden en que los carga el MAX, basta con editar el script e ir a la línea 48:
Código: Seleccionar todo
shaderFiles=#("bumpmap.gfx","CARPAINT.GFX","CBUMPSPEC.GFX","cubemap.gfx","diffuse.gfx","FRESNEL.GFX","LIGHTFLARE.GFX","specular.gfx","user.gfx")
y modificarla reordenando los archivos GFX para que el script los cargue en el mismo orden que el MAX.
Evidentemente, ésto último también es válido para añadir nuevos shaders en caso de que aparezcan