Resultados 1 al 2 de 2

Tema: Objectid assigner

  1. #1
    Fecha de ingreso
    Feb 2007
    Mensajes
    7

    3dsmax Objectid assigner

    Buenas, antes que nada agradecer por todas sus ayudas, siempre consulto el foro y muchas cosas me sirven para mis trabajos.

    Pongo esta duda, espero alguien tenga la respuesta:
    Tengo una escena con miles de objetos, a los cuales quiero asignarle diferentes tipos de object id individuales y que no se repitan.

    Como muchos sabemos, eso lo hacemos entrando a las propiedades del objeto y asignándole un número en la pestaña de G-Buffer.

    Al tener una escena tan cargada, desearía tener un script que automáticamente asigne a todos los objetos un id, y no hacer el trabajo tan tedioso de irle poniendo uno x uno por mi parte.

    Revisando en la web, encontré uno en un libro, hecho por Scott onestott, llamado objectid assigner, que es justamente de lo que hablo, sin embargo, ya no está disponible en su web, puesto que eso data del 2005.

    Si alguien sabe algo al respecto, agradeceré me oriente, y si no es mucho pedir explicarme cómo usarlo, ya que este mundo del script es algo nuevo para mí. Muchas gracias.

    Posdata trabajo en 3dsMax 2009 de 64bits con Vray.

    Cheken esta dirección: http://books, Google, com, pe/boksíi...esult&resnum=1.

    En la página 266 verán el script que hago referencia.

  2. #2
    Fecha de ingreso
    Sep 2004
    Mensajes
    123

    Hexagon Objectid assigner

    Esta es una prueba:
    La primera parte asigna un número único solamente en la selección. La segunda parte comprueba los objetos de toda la escena para que la selección no tenga ID repetidos de otros objetos no seleccionados.

    Es un punto de partida, pero modifícalo si hace falta, o si algo no está bien o si necesitas una interfaz me avisas.

    Pegalo en una ventana de Maxscript, selecciona cada parte y presionas shift+enter para ejecutarlo sobre la selección.
    Código:
    (Tlocal sel = getcurrentselection() tif sel, count < 65536 then t(t for n in 1 todo selection, count do (t sel[n].gbufferchannel = n ) t) telse (messagebox object count exceded limit of 65535 \t\nBep:false)).
    
    Método 2 : -.
    (Tlocal sel = getcurrentselection() tlocal bitall = #{} tlocal bitsel = #{} tbitall, count = 65535 tbitsel, count = sel, count tfor o in objects do append bitall o, gbufferchannel tfor o in sel do append bitsel o, gbufferchannel tbitall = -(bitall - Bitsel) tif sel, count < 65536 then t(t (t local bitarr = bitall as array for n in 1 todo sel, count do (t sel[n].gbufferchannel = bitarr[n] ) ) t) telse (messagebox object count exceded limit of 65535 \t\nBep:false).
    )

Temas similares

  1. Pase objectid sin tener que renderizar la imagen final
    Por SpAiK en el foro Render, Iluminación y Cámaras
    Respuestas: 9
    : 31-03-2010, 10:51

Etiquetas para este tema