Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Modelos 3D con textura desde Blender para XNA

Iniciado por lazato, 26 de Marzo de 2012, 07:39:55 PM

« anterior - próximo »

lazato

Hola estaba probando unos modelos sencillos que hice en Blender para un proyecto en XNA 4.0 pero resutla que no se ve la textura.

la textura que estoy utlizando es una iamgen tipo madera y la importe al proyecto junto con los FBX pero los modelos se pintan como si no tuvieran ninguna textura

aqui una imagen del render en Blender



y aqui en la ejecucion del proyecto en XNA



que puedo hacer para mi modelo obtenga la textura??

Gracias de antemano

Makaimura

Jajajajajajajajaja este hilo es buenisimo, y dices que no se te ven las texturas? seran texturas invisibles????, como me he reido  :D

[EX3]

Cita de: makaimura en 26 de Marzo de 2012, 10:58:42 PM
Jajajajajajajajaja este hilo es buenisimo, y dices que no se te ven las texturas? seran texturas invisibles????, como me he reido  :D

No he entendido el sentido de tu respuesta, makiamura (ni la gracia). Lo puedes explicar? ???
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Makaimura

 Pues que no ha puesto los links!!! y no las veo...

[EX3]

Cita de: makaimura en 27 de Marzo de 2012, 12:36:18 AM
Pues que no ha puesto los links!!! y no las veo...
Seras tu, por que yo veo perfectamente ambas imágenes :P



Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Hechelion

Cita de: makaimura en 27 de Marzo de 2012, 12:36:18 AM
Pues que no ha puesto los links!!! y no las veo...

A veces también me pasa que no veo las imágenes, pero refrescando el navegador aparecen.
Hay otras veces que las imágenes simplemente no se ven por que el otro servidor evita el hotlinking, en esos casos, lo mejor es primero hacer un "quote" al link original, al hacerlo, vamos a ver el código y podemos descubrir si hay una imagen y su link.

Por ejemplo


[quote author=lazato link=topic=15184.msg154430#msg154430 date=1332783595]
Hola estaba probando unos modelos sencillos que hice en Blender para un proyecto en XNA 4.0 pero resutla que no se ve la textura.

la textura que estoy utlizando es una iamgen tipo madera y la importe al proyecto junto con los FBX pero los modelos se pintan como si no tuvieran ninguna textura

aqui una imagen del render en Blender

[img]http://www.foro3d.com/attachments/162963d1332626229-blender-xna-fbx-cap-1.png[/img]

y aqui en la ejecucion del proyecto en XNA

[img]http://www.foro3d.com/attachments/162964d1332626229-blender-xna-fbx-cap-2.png[/img]

que puedo hacer para mi modelo obtenga la textura??

Gracias de antemano
[/quote]


Ahora podemos copiar el link dentro de los tag IMG y ver la imagen.

PD: Aunque yo tampoco tuve problemas para ver las imágenes del post.

[EX3]

Cita de: Hechelion en 27 de Marzo de 2012, 08:10:15 AM
A veces también me pasa que no veo las imágenes, pero refrescando el navegador aparecen.
Hay otras veces que las imágenes simplemente no se ven por que el otro servidor evita el hotlinking
El caso, si no se ven las imagenes por el motivo que sea preferiria que antes que soltar una respuesta jocosa se diga simplemente "no veo las imagenes". Hay que pensar en como puede sentirse la otra persona al ver tal respuesta como la de makaimura, a mi no me haria ni pizca de gracia entrar pidiendo ayuda y encontrarme esto sin venir a cuento en principio:
Cita de: makaimura en 26 de Marzo de 2012, 10:58:42 PM
Jajajajajajajajaja este hilo es buenisimo, y dices que no se te ven las texturas? seran texturas invisibles????, como me he reido  :D

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Makaimura

#7
Bueno el tono no es jocoso, es de que he hizo reir, pero bueno pido disculpas si la persona se ha sentido ofendida, por cierto sigo sin ver la imagen del primer mensaje las otras de abajo si, curioso que en el iphone si me salgan y aquí no.


Hechelion

Cita de: [EX3] en 27 de Marzo de 2012, 06:33:10 PM
Cita de: Hechelion en 27 de Marzo de 2012, 08:10:15 AM
A veces también me pasa que no veo las imágenes, pero refrescando el navegador aparecen.
Hay otras veces que las imágenes simplemente no se ven por que el otro servidor evita el hotlinking
El caso, si no se ven las imagenes por el motivo que sea preferiria que antes que soltar una respuesta jocosa se diga simplemente "no veo las imagenes". Hay que pensar en como puede sentirse la otra persona al ver tal respuesta como la de makaimura, a mi no me haria ni pizca de gracia entrar pidiendo ayuda y encontrarme esto sin venir a cuento en principio:
Cita de: makaimura en 26 de Marzo de 2012, 10:58:42 PM
Jajajajajajajajaja este hilo es buenisimo, y dices que no se te ven las texturas? seran texturas invisibles????, como me he reido  :D

Salu2...

???

Y eso a que viene? yo no estoy justificando la respuesta, también me parece molesto para la persona que pide ayuda toparse con esa respuesta.
Lo que estoy haciendo es mostrar un error bastante común (linkear imagenes y que estás no aparezcan) y dar algunos tips sobre que se puede hacer para verificar la existencia de imágenes

Cita de: Hechelion en 27 de Marzo de 2012, 08:10:15 AM
A veces también me pasa que no veo las imágenes, pero refrescando el navegador aparecen.
Hay otras veces que las imágenes simplemente no se ven por que el otro servidor evita el hotlinking, en esos casos, lo mejor es primero hacer un "quote" al link original, al hacerlo, vamos a ver el código y podemos descubrir si hay una imagen y su link.


[EX3]

Hechelion, no iba por ti la respuesta si no obviamente por la de makiamura. No era mi intención que te dieras por aludido al citarte, lo siento.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Hechelion

No hay problema, solo me llamó la atención por que me daba a entender que estaba justificando la respuesta de makaimura.  ;)


Por cierto, ya le hemos desvirtuado bastante el topic al pobre y nadie le ha dado una solución. Yo no trabajo con XNA, pero en unity tenía un problema similar, había que importar por separado la malla y la textura y entro de unity volver a enlazarlos, tal vez sea similar el proceso en XNA.


[EX3]

Yo en verdad estaba esperando a ver si makaimura podia responder algo sobre el tema ya que me suena que no hace mucho tuvieron un problema similar, no se si con Maya o Blender tambien, de que no cargaban las texturas de un modelo en XNA. No se si llegaron a solucionarlo.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Makaimura

#12
El problema que tuvimos fue que no sabiamos hacer una textura repetida, no este caso he hablado con mi programador no se si te irá bien, nosotros no usamos blender, pero en este foro Mars sabe mucho de Blender y XNA.


POR CIERTO ESTO ME ESTA DANDO POR SACO, SIGO SIN VER LAS CAPTURAS, USO FIREFOX, y CHROME TAMPOCO  8o


Los FBX se pueden crear con las texturas incluidas en el propio fichero (embedded) o a parte.
En modo "embedded" no deberia haber problema en visualizarlas siempre que el código de renderizado sea correcto.

Si las texturas van a parte, puede que el FBX se haya creado con rutas absolutas, cuando deberian ser relativas. No se como es en blender, pero la exportación en FBX de maya siempre guarda las rutas absolutas, con lo que el fichero debe editarse posteriormente y cambiar las rutas a mano. Para poder hacer esto, el fichero se ha de guardar en ASCII (en vez de en binario).


Otra cosa que puedes probar:
Si en algún momento utilizas spritebatch para gráficos 2D o texto, como al llamar a begin() se cambian algunas propiedades de renderizado, has de restaurar antes de poder pintar correctamente en 3D. Las propiedades más importantes son estas dos, asigna el valor que más te convenga:

GraphicsDevice.BlendState = BlendState.AlphaBlend;  
GraphicsDevice.DepthStencilState = DepthStencilState.Default;


Sin más datos no de me ocurre otra cosa. Te dejo mi código para renderizar modelos con texturas por defecto y forzando una textura (son básicamente los ejemplos del apphub, así que no creo que haya nada que no hayas visto ya).
Si aún tienes problemas, sube el código y el fbx e investigamos un poco más.

// Código para renderizar un modelo con las texturas indicadas en el propio FBX.

Matrix[] transforms = new Matrix[modelo.Bones.Count];
modelo.CopyAbsoluteBoneTransformsTo(transforms);

foreach (ModelMesh mesh in modelo.Meshes)
{
   foreach (BasicEffect effect in mesh.Effects)
   {
       effect.World = transforms[mesh.ParentBone.Index] * Matrix.CreateTranslation(modelPosition);
       effect.View = worldMatrix;
       effect.Projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f), aspectRatio, 1.0f, 10000.0f);
       effect.EnableDefaultLighting();
   }
   mesh.Draw();
}


// Código para renderizar un modelo FORZANDO una textura.

Matrix[] modelTransforms = new Matrix[modelo.Bones.Count];
modelo.CopyAbsoluteBoneTransformsTo(modelTransforms);

foreach (ModelMesh mesh in modelo.Meshes)
{
   foreach (Effect currentEffect in mesh.Effects)
   {
       Matrix worldMatrix = modelTransforms[mesh.ParentBone.Index] * Matrix.CreateTranslation(modelPosition);
       currentEffect.CurrentTechnique = currentEffect.Techniques["Textured"];
       currentEffect.Parameters["xWorld"].SetValue(worldMatrix);
       currentEffect.Parameters["xView"].SetValue(currentViewMatrix);
       currentEffect.Parameters["xProjection"].SetValue(Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45.0f), aspectRatio, 1.0f, 10000.0f));
       currentEffect.Parameters["xTexture"].SetValue(textura); //textura es de tipo Texture2D
   }
   mesh.Draw();
}






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.