Gracias Gracias:  0
Resultados 1 al 2 de 2

Tema: ObjectID assigner

  1. #1
    Miembro Nuevo
    Fecha de ingreso
    Feb 2007
    Ubicación
    LIma, Peru
    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 asignandole 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 Onstott, llamado ObjectID Assigner, que es justamente de lo que hablo, sin embargo, ya no esta 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 mi.
    Muchas gracias.
    PD Trabajo en 3d max 2009 de 64bits con Vray
    cheken esta direccion:
    http://books.google.com.pe/booksíid=...esult&resnum=1
    en la página 266 verán el script que hago referencia.

  2. #2
    Senior Member Avatar de Ruramuq
    Fecha de ingreso
    Sep 2004
    Mensajes
    124

    Hexagon Respuesta: ObjectID Assigner

    Esta es una prueba:
    la primera parte asigna un número único solamente en la 'seleccion'
    la segunda parte checkea los objetos de tooda la escena para que la selección no tenga IDs repetidos de otros objetos no seleccionados..

    es un punto de partida, pero modificalo si hace falta, o si algo no esta bien o si necesitas una interface me avisas..
    pegalo en una ventana de maxscript, selecciona cada parte y presionas SHIFT+ENTER para ejecutarlo sobre la 'seleccion'

    Código:
    (
    	local sel = getCurrentSelection()
    	if sel.count < 65536 then
    	(
    		for n in 1 to selection.count do
    		(
    			sel[n].gbufferChannel = n
    		)	
    	)
    	else (messagebox "Object Count Exceded Limit of 65535 \t\n" beep:false)
    )
    ---------------- método 2 : -----------------
    (
    	local sel = getCurrentSelection()
    	local bitall = #{}
    	local bitsel = #{}
    	bitall.count = 65535
    	bitsel.count = sel.count
    	for o in objects do append bitall o.gbufferChannel
    	for o in sel do append bitsel o.gbufferChannel
    	bitall = -(bitall - bitsel)
    	if sel.count < 65536 then
    	(
    		(
    			local bitarr = bitall as array
    			for n in 1 to sel.count do
    			(
    				sel[n].gbufferChannel = bitarr[n]
    			)
    		)
    	)
    	else (messagebox "Object Count Exceded Limit of 65535 \t\n" beep: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
    Último mensaje: 31-03-2010, 11:51

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •