Hola a todos. Hace poco he tenido un problema que me ha estado volviendo loco y he pensado que a lo mejor algún alma caritativa me puede echar una mano con él.
Trabajando en 3dsmax con ficheros muy pesados, a veces el programa se me cuelga cuando tras cargar la escena se empiezan a redibujar las distintas vistas.
Si tengo un fichero guardado con sus vistas en Smooth o en wireframe, ¿existe alguna forma, usando algún script o lo que sea, de decirle al programa que quiero que me abra la escena con todos los visores en modo box? ¿se puede manipular el fichero max de alguna manera para cambiar los parámetros que le indican el modo de visualización que debe aplicar en cada visor al abrir la escena? Gracias y un saludo.
Hace poco me pasaba a mí lo mismo. Cambié de tarjeta y fin del problema. Asegúrate de que no es la tarjeta gráfica.
Seguramente tengas razón, Pit y tenga que ver con la tarjeta, pero no porque esté mal, sino porque no es capaz de digerir el fichero dado su tamaño.
Debería plantearme adquirir una tarjeta más potente, pero mientras tanto me autocito.
¿Existe alguna forma, usando algún script o lo que sea, de decirle al programa que quiero que me abra la escena con todos los visores en modo box? ¿se puede manipular el fichero max de alguna manera para cambiar los parámetros que le indican el modo de visualización que debe aplicar en cada visor al abrir la escena?
Prueba lo siguiente. Pega este script en un nuevo documento de script y ejecútalo (Control + e):
[code]Fn setrenderlevel level = (tlocal active = viewport, activeviewport tfor v = 1 todo viewport, numviews do (t viewport, activeviewport = v viewport, setrenderlevel level t) tviewport, activeviewport = active).
Fn registerpostopencallbak renderlevel = (tcallbacks, removescripts #filepostopen id:#changerenderlevel tcallbacks, addscript #filepostopen (setrenderlevel # + (renderlevel as string)) id:#changerenderlevel.
)[/code]
Ahora, en el Maxscript Listener escribe:
[code]registerpostopencallbak #box[/code]
Y pulsa introducción para ejecutar la línea.
Con esto lo que haces es decirle a max que cuando termine de cargar una escena, que ejecute la función setrenderlevel. Esta función lo que hace es poner todas las vistas en el modo especificado, en este caso box.
Una vez que hayas probado puedes eliminar la función de retrollamada ejecutando la línea:
[code]callbacks, removescripts #filepostopen id:#changerenderlevel[/code]
Aunque cuando vuelvas a abrir max, ésta función ya no existirá.
De todas formas, no tengo claro que esto ayude, pues es probable que la función sólo se llame después de cargar y renderizar por primera vez la escena.
En cualquier caso, a ver si hay suerte. Saludos.
Existe una opción más sencilla. Abre max, pon todas las vistas en modo bounding box y entonces haz un merge con la escena problemática. A ver si así funciona. Saludos.
Gracias por tu ayuda Halfvector, lo probaré. Lo de mergear ya se me había ocurrido y, de hecho, es lo que hago tras varios intentos infructuosos de abrir el archivo, lo que ocurre es que el mergeo, como bien sabes, no te trae todo el resto de características del fichero por lo que no es una solución completa. Un saludo.