• Domingo 28 de Abril de 2024, 21:06

Autor Tema:  Que Es Un Archivo .x  (Leído 2312 veces)

cluster

  • Miembro MUY activo
  • ***
  • Mensajes: 196
    • Ver Perfil
Que Es Un Archivo .x
« en: Martes 28 de Marzo de 2006, 01:37 »
0
se que un archivo .x corre con el direct x y guardan como posiciones de vectores pero como integro esos archivos con c# o con otro lenguaje y desde haya programarlos. puede uno hacer una animacion con 3dstdio y migrar esto a un lenguaje de programacion para manipularlo desde aya como por ejemplo hacer el merlin que trae windows en la  ayuda de office en el 3dmax y programar el resto en c# o otro lenguaje.

ifmaster

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Que Es Un Archivo .x
« Respuesta #1 en: Sábado 1 de Abril de 2006, 14:30 »
0
Hola, un archivo .x es un archivo que contiene los datos de una malla 3D (de echo, los .x es el formato de directX para mallas), direct X conta con exportadores para 3DStudio Max (y creo que para Malla tambien) para que puedas exportar una malla a tu aplicación.
No e trabajado con el formato .x, pero supongo que debe de tener algun objeto que lea este archivo.
Al fin y al cabo internamente se crea una estructura para cada vertice de la malla, mas o menos asi:

struct VERTEXTYPE
{
float x, y, z;
DWORD color;
float u1, v1;
float u2, v2;
float nx, ny, nz;
}

Donde XYZ son la posición del vertice, color, es el color del vertice (con los componentes ARGB), u1 y v1 son las coordenadas de texturizado para el vertice, u2 y v2 es un segundo canal de texturizado para el vertice (por ejemplo por si quieres poner otra textura por encima con transparencias), y nx, ny e nz son los normales del vertice. Un vertice no necesita de todos estos datos, supongo que habra alguna forma de decirle a direct x cuantos datos quieres tomar. Ademas de estos, debes indicarle a DirectX los datos que as tomado mediante los flags FVF (Felixble Vertex Format).
En cuanto a la animación, creo que el formato .x no la soporta (ahunque no estoy seguro, nunca e usado este formato), y también depende de que tipo de animación quieras (por vertice o por huesos (animación esqueletal)), pero si la idea es la que tu dices, tu haces una malla en un editor como 3DS Max, luego animas esa malla, y luego exportas esos datos a un fichero .x.
Espero haberte sido de ayuda por lo menos a nivel teorico xD.
Un saludo.

ifmaster

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: Que Es Un Archivo .x
« Respuesta #2 en: Sábado 1 de Abril de 2006, 14:34 »
0
Mmmmm, no havia leido todo el mensjae, oviamente puedes "animar" tu malla directamente desde programación (ya sea alterando las posiciones de los vertices, o "transformando" las matrizes de los huesos), pero eso no es muy buena idea, porque no tienes un resultado visual imedianto hasta que no compilas y ejecutas. Oviamente la mejor forma de diseñar y animar una malla es desde un editor 3D medianamente potente.

No se, por ejemplo, en un juego, el tipico personaje, k mueve la cabeza mirando al personaje mas cercano (o al player en caso de ser un NPC), la "roación" de la cabeza si la arias por programación, restringiendo el movimiento (para que no de toda la vuelta la cabeza xDD) y calculando la rotación en función de las posiciones.

Un saludo.

cluster

  • Miembro MUY activo
  • ***
  • Mensajes: 196
    • Ver Perfil
Re: Que Es Un Archivo .x
« Respuesta #3 en: Domingo 2 de Abril de 2006, 23:49 »
0
gracias if master, el archivo .x se hace 3DStudio Max exportandolo eso se hace para ahorrar tiempo y codigo? y por eso no se hace directamente en el lenguaje de programacion?, si la animacion .x esta caminando pero yo quiero que levante los brasos y salte se puede hacer desde el lenguaje de programacion o me toca hacerlo en 3DStudio Max y exportarlo y utilizarlo hay con el lenguaje mejor dicho como es la comunicacion entre el .x y el lenguaje en este caso vc++?