Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Exportador Con Maxscript

Iniciado por vincent, 27 de Marzo de 2005, 06:00:38 PM

« anterior - próximo »

vincent

 Muy buenas,

estoy haciendo un exportador en maxscript (3DMax 7). Hasta ahora exporto las coordenadas de los vértices y las coordenadas de textura, pero no sé como exportar las coordenadas que resultan de hacer un render to texture para sacar unos lightmaps. Alguien me podria decir que función utilizar?

Gracias!

VinCenT
Desarrollo en .Net y metodologías http://devnettips.blogspot.com

BeRSeRKeR

 Hola.

Por defecto las coordenadas de textura del lightmap se crean en el canal #3 aunque eso lo puedes cambiar en el cuadro de diálogo de "Render To Texture".

Los métodos que necesitarás para exportar ese o cualquier otro canal de textura son:

Citarmeshop.getMapSupport
Returns whether the specified map channel is supported. This signifies that a map face array is present, but not necessarily a map vertex array.

Citarmeshop.getNumMapFaces
Returns the number of faces for the map channel as an .

Citarmeshop.getMapFace
Returns the vertices of the specified map face as a .

Citarmeshop.getNumMapVerts
Returns the number of vertices for the map channel as an .

Citarmeshop.getMapVert
Returns the coordinates of the specified map vertex as a .

Creo que no me dejo ningún método. En cualquier caso mírate la documentación para la interfaz meshOp.

Aquí tienes un fragmento que he creado donde se muestra cómo exportar todos los canales soportados por un objeto (incluídas las coordenadas de textura):

Citar-- Convertirmos el nodo seleccionado en un TriMesh
obj = snapshotAsMesh $

-- Número de canales soportados por este mesh
numChannels = (meshOp.getNumMaps obj) - 1
format "Canales disponibles: %\n\n" numChannels

-- Suponemos que los canales van consecutivos (canal#1, canal#2, etc).
-- De lo contrario habría que manejar este bucle de otra forma. O bien
-- permitir al usuario escoger los canales a su gusto a la hora de
-- exportar la escena.
for nChannel = 1 to numChannels do
(
        -- Si el mesh soporta este canal de mapeado...
        if (meshOp.getMapSupport obj nChannel) == true then
        (
                format "\nIndices de coordenadas de textura para el canal %\n\n" nChannel

                -- Indices de coordenadas de textura para el canal actual
                numFaces = meshOp.getNumMapFaces obj nChannel
                format "\tEste canal dispone de % caras\n" numFaces
                for nFace = 1 to numFaces do
                (
                        format "\t\tFace#%: %\n" nFace (meshOp.getMapFace obj nChannel nFace)
                )

                -- Coordenadas de textura para el canal actual
                numTexCoords = meshOp.getNumMapVerts obj nChannel
                format "\tEste canal dispone de % coordenadas de textura\n" numTexCoords
                for nTexCoord = 1 to numTexCoords do
                (
                        texCoord = meshOp.getMapVert obj nChannel nTexCoord
                        format "\t\tTexCoord#%: % %\n" nTexCoord texCoord.x texCoord.y
                )
        )
        else   -- No existe mapeado para este canal
        (
                format "\nNo hay coordenadas de textura para el canal %\n\n" nChannel
        )
)

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

vincent

 Muchisimas gracias!

Lo pruebo y te comento como me ha ido.

Hasta luego!

VinCenT
Desarrollo en .Net y metodologías http://devnettips.blogspot.com






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.