Página 1 de 1

GMT Importer con soporte de nuevos shaders

Publicado: 14 Nov 2010 01:31
por nomedigano
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.

Pincha para ir a la descarga 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
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:
Imagen
y verificaremos donde está cambiado el orden (en esta captura en concreto coinciden claro... que es mi instalación y funciona bien :lengua: ). 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 :wink:

Re: GMT Importer con soporte de nuevos shaders

Publicado: 24 Nov 2010 19:25
por tranqui67
Hola Nomedigano! He visto que entiendes de scripts y tengo una consulta que quizas me ayudes. Quiero utilizar este gmt importer para traerme una escena de rfactor pero necesito que los materiales queden seteados como standard, osea que no necesito gmotor materiales, con dejar seteado el T1 de DX7 en el difusse de un material es suficiente. Me explico?

Desde ya si me das una mano, agradecido!

Re: GMT Importer con soporte de nuevos shaders

Publicado: 24 Nov 2010 19:46
por nomedigano
Bueno, tanto como entender... De scripts de MAX no tengo casi ni idea, pero este en concreto no deja de ser una lectura de un fichero. Y en cuanto a lo que pides, no debería ser demasiado difícil: basta con modificar la parte que lee los materiales y los asigna al editor para que en lugar de que sean gMotor, sean los Blinn "detodalavida" con la textura del T1 del DX7. Si tengo tiempo le echo un ojo a ver si es fácil de implementar la modificación.

Por cierto, para escenas ¿los materiales van como en el rFactor? Es decir, se mantiene el Multimaterial o son materiales separados?

Re: GMT Importer con soporte de nuevos shaders

Publicado: 24 Nov 2010 20:13
por tranqui67
Para las escenas tambien usan multimaterial.

Yo intenté cambiar el script pero no logro nada interesante (tampoco entiendo mucho que digamos de max), cambie en donde generaba el multimaterial de gmotor por standar y anduvo bien, pero no logré asignar la textura T1 al diffuse...

Copio debajo en verde lo que modifique:

--create new gMat if it wasn't found
if (newMatID==0) then
(
if ((classof meditMaterials[1].materialList[numSubs])==standardMaterial)
then (newMatID=numSubs+1)
else (newMatID=numSubs)
mat=meditMaterials[1].materialList[newMatID]=standardMaterial()
mat.name=matName


Y luego quise "inventar" un poco pero con el resultado conocido, poniendo esto:

textureName=ReadString file --exactly that
shortName=getFileNameFile textureName

mat.diffuseMap = Bitmaptexture filename: shortname (y aca la chingo!)



Espero que tengas mas suerte que yo! :aplausoup:

Re: GMT Importer con soporte de nuevos shaders

Publicado: 29 Nov 2010 21:55
por tranqui67
Sigo sin lograr nada... Alguna novedad por tu lado Nomedigano? :scratchchin:

Re: GMT Importer con soporte de nuevos shaders

Publicado: 17 Abr 2012 07:37
por Vojvoda
Lo siento por rescatar este hilo...
Estoy empezando a darle un poco al 3DS Max y tengo el problema que comentas en el primer post, estoy usando el plugin que has posteado y he probado con el conjunto de shaders por defecto de rfactor y con el paquete de SimRacing PL y siempre me carga mal los shaders, entiendo que es por lo que comentas, que seguro que los shaders que tengo no aparecen en el plugin o viceversa, ¿sería mucho pedir que colgaras los shaders que usas con ese plugin?
Saludos!!!

Re: GMT Importer con soporte de nuevos shaders

Publicado: 17 Abr 2012 09:42
por nomedigano
Yo los shaders que utilizo son los del ejemplo: los de ISI y el de Flares de Some1, nada más. De todos modos siguiendo mi método te debería funcionar con cualquier cantidad de shaders que añadas. Lo único que debes tener en cuenta es que para que el MAX te cargue un paquete de shaders, debes incluir el nombre del archivo GFX correspondiente. Como ejemplo, para los shaders de Some1 tuve que añadir en la línea 48 2 GFX: FRESNEL.GFX y FLARE.GFX. Y naturalmente incluir los shaders nuevos junto a los otros en el MAX :wink:

Re: GMT Importer con soporte de nuevos shaders

Publicado: 19 Abr 2012 13:51
por Kenzo
Bueno, yo tengo un par de dudas y preguntas.

Para añadir nuevos shaders ¿basta con ponerlos en la carpeta y ponerlos por orden en la linea 48 y en el MAXScript Listener salen solos?
¿O en MAXScript Listener ayque añadirlos también?
También consultar si sabéis de mas shaders etc, yo actualmente lo que haga es fijarme en nuevos mods y tracks, se veo que los lleva nuevos los extraigo, pero me falta saber añadirlos bien.

Aparte, trato de resolver problemas a la hora de guardar los gmt con el importer ya que aun no he podido hacerlo sanamente.

Re: GMT Importer con soporte de nuevos shaders

Publicado: 19 Abr 2012 17:28
por willynovi
Kenzo escribió:También consultar si sabéis de mas shaders etc, yo actualmente lo que haga es fijarme en nuevos mods y tracks, se veo que los lleva nuevos los extraigo, pero me falta saber añadirlos bien.
no manejo mucho el tema de los shader en el 3ds, tendria que ponerme porque creo necesitarlos
pero te cuento de algunos mods de los que se que llevan shaders, quizas algunos ya los tienes registrados

SimRacingPL, ya se hablo de esos en este hilo
Un mod de los V8 australianos, aunque no recuerdo bien ahora cual es, despues en casa te digo
Un mod de FIA GT3 que es una conversión y rejunte de 9 o 10 autos hecha por Sandrox
Y creo tambien un mod de los Toyota AE86

Re: GMT Importer con soporte de nuevos shaders

Publicado: 19 Abr 2012 17:30
por Vojvoda
Todos esos mods usan el empaquetado de SimRacingPL.

Re: GMT Importer con soporte de nuevos shaders

Publicado: 19 Abr 2012 18:17
por Kenzo
Pues tendré que buscar el empaquetado dicho y añadirlos a la lista, claro esta también hay que saberlos usar , eso se investiga :)

Re: GMT Importer con soporte de nuevos shaders

Publicado: 19 Abr 2012 23:43
por willynovi

Re: GMT Importer con soporte de nuevos shaders

Publicado: 20 Abr 2012 01:22
por Kenzo
Gracias willy, que diferencia hay entre users y modders? si se puede preguntar hehe, aun que de rfactorcentral me bajado este SRPLShaderPackSetup_v0.92 posiblemente este más actualizado... no?
este es el link
http://www.rfactorcentral.com/detail.cf ... der%20Pack