Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





FVF dinamico

Iniciado por RTapeLoadingError, 20 de Mayo de 2007, 03:28:33 AM

« anterior - próximo »

RTapeLoadingError

Buenas, os comento el problema que tengo a ver si os habeis encontrado con el.

He creado una libreria grafica (no me atrevo a llamarlo motor) que carga un mapa en formato x. y lo subdivide como quadtree, hace frustrum culling, etc.etc..

El caso es que me rula bien con el modelo que he venido trabajando, el problema lo encuentro cuando quiero cargar nuevos mapas, en concreto vienen con un FVF indeterminado.

Se obtener este codigo, tambien interpretarlo, es decir, se que tiene coordenadas, normales y textura por ejemplo. La duda me surje al intentar creear una estructura en tiempo de ejecucion con estos componentes, necesito esta estructura para leer correctamente del vertex buffer, pero en tiempo de ejecucion no se como crearla.

He optado por dos soluciones pero ninguna parece buena.

1.-Cargar el mesh y modificar el FVF a uno conocido, pero me esta dando problemas en algunos casos, inexplicables, ademas supongo que en el futuro algunas meshes tendran mas componentes que otros.

2.-Crear en tiempo de desarrollo tantas estructuras como combinaciones posibles de flag existan, esto es inviable por el elevado numero a crear.

Actualmente he creado varias, y cuando 'casca' uno de las meshes que carga miro los componentes y creo otra nueva estructura con define, pero no me parece el mejor sistema.

Si alguien ha conseguido hacerlo de forma dinamica agradeceria me lo dijera, o alguna solucion alternativa, muchisimas gracias.

marcode

¿Y no es mejor pasar de los FVF y guardar cada componente en un array independiente dentro del mesh?.


struct MESH  {
int contVertices;
VERTICE *Vertices;
NORMAL *Normales;
COORD_TEXTURA *CoordTextura;
};


Con iniciar con new los componentes usados es suficiente. Así lo hago yo.
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]






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.