PDA

Ver la versión completa : Animaciones 3D



Eskema
20/10/2009, 14:31
Buenas, despues de mucho tiempo haciendo cosas 2d quiero probar el 3D, y viendo que estos trastos no van sobrados de potencia, no se que tipo de modelos puedo usar para tener animaciones.
La animacion por huesos he visto que requiere demasiada potencia de proceso, asi que la he descartado.
He pensado en el formato MD2 (quake2), que deberia ir bien, pero se chupa 24mg de ram cada modelo en pantalla, lo cual es totalmente inviable.
Por otro lado me han dicho de usar modelos troceados y asi las animaciones se exportan a un archivo, yo tan solo leo ese archivo y pongo cada pieza del modelo en la posicion/rotacion que dice el fichero. El unico problema de este sistema puede ser las juntas que se crearan entre las piezas del modelo.

¿Alguno de vosotros ha probado animaciones 3d de bajo consumo?

Saludos,

GameMaster
20/10/2009, 16:06
Bueno, si utilizas modelos con menos poligonos, que hay cientos por internet, seguramente vas a tener mucho más rendimiento y mucha menos ram ocupada.
Auqnue los de Quake2 no me parece que sean así tan pesados a simple vista.

Eskema
20/10/2009, 16:30
El problema no son los poligonos, los modelos del quake2 rondan los 800 polis, no cual no es demasiado exagerado, el problema es el formato MD2 en si, el md2 es un contenedor y basicamente almacenas cada animacion como una malla diferente, con lo cual un modelo tiene 200 frames y eso equivale a tener 200 modelos en pantalla.

Reducirle los polis y modelar algo a 400 polis por ejemplo apenas reduce 6 mg, y un consumo de 18mg es a todas luces excesivo.

GameMaster
20/10/2009, 16:38
No puedes usarlos en formato 3d Studio .3ds ??

Eskema
20/10/2009, 16:56
el problema es que el formato md2 es inviable por su consumo, un 3ds o cualquier otro formato no almacenan animaciones, lo que busco son ideas para como usar animaciones en estas plataformas tan limitadas, si hiciera algo para pc, tengo claro que usaria animacion por huesos y no me molestaria en buscar ideas ;)

hardyx
20/10/2009, 17:00
Las animaciones deberías ser secuencias de desplazamientos o rotaciones de las aristas o los vértices del modelo en vez de repetir el modelo por cada frame. De esa manera se puede tratar de forma sencilla y no ocupa tanta memoria. Por ejemplo: mover el punto #32 a -3,+10. O rotar arista #12 45 grados en el eje x.

Eskema
20/10/2009, 17:12
claro, pero ¿como haces eso?, ¿si tienes una malla puedes deformarla sin problemas?, a mi se me ocurre trocear el modelo y separar piernas y brazos para hacer eso que comentas, asi solo tienes un modelo y añades todas las animaciones que quieras sin que ocupe nada

GameMaster
20/10/2009, 17:22
3ds o cualquier otro formato no almacenan animaciones ;)


Pero que dices!!!! Estas seguro ??¿¿¿
Pero si te puedes crear una escena animada en el 3D studio, y las sequencias animadas tambien se guardan en el fichero .3ds........
Vamos, sino era imposible crear videos con esta herramienta [wei]

Zenzuke
20/10/2009, 20:52
Es mejor trocear los modelos, como hacían los Virtua Fighter antiguos, o los primeros Resident Evil...

Hacer animación por huesos es inviable en la wiz (a menos que seas un programador de padre y muy señor mío) y almacenar las animaciones por vértices te puede dar dolores de cabeza con los tamaños de los archivos finales.

Hay trucos para hacerlo sin que se note (lo de trocear)... aprovechar las texturas, usar la manga de la camisa para hacer el corte... etc...

En cuanto a formatos, puedes mirar Collada o ASE (el formato ascii de 3d studio max).

masteries
21/10/2009, 01:18
Puedes utilizar MD3, al menos en Enemy Territory yo hacía esto:

Por ejemplo, para mover una cabeza o torreta de tanque etc... de derecha a izquierda, lo que hacía era rotar/girar en varios ejes el modelo (por software), para el movimiento de las piernas, separas en grupos de vertices (en el modelo .md3) un grupo de vertices son de las rodillas incluidas hasta los pies y lo rotas en el eje x situando el punto de pivote en la rodilla (por software).

Ahora no me preguntes por el código que dibuja los modelos .md3 en pantalla, porque eso no estaba liberado en el Enemy Territory. Con esto las animaciones de un vehículo o de una persona al correr, saltar, agacharse son posibles ocupando unos 90KB-100KB por modelo de unos 5000 triángulos. Lo único que te toca romperte la cabeza con la programación de las animaciones como si programaras para una PS2, lo normal con las personas es separar en tres modelos .md3 (piernas,tronco-brazos,cabeza) unidos mediante software por puntos llamados "tags", de esta forma es más fácil hacer la programación de la animación, porque puedes combinar varias animaciones para ofrecer más movimientos.

Eskema
21/10/2009, 08:15
Es mejor trocear los modelos, como hacían los Virtua Fighter antiguos, o los primeros Resident Evil...

Hacer animación por huesos es inviable en la wiz (a menos que seas un programador de padre y muy señor mío) y almacenar las animaciones por vértices te puede dar dolores de cabeza con los tamaños de los archivos finales.

Hay trucos para hacerlo sin que se note (lo de trocear)... aprovechar las texturas, usar la manga de la camisa para hacer el corte... etc...

En cuanto a formatos, puedes mirar Collada o ASE (el formato ascii de 3d studio max).


Eso mismo he pensado, trocearlos, puesto que muchos juegos de la psx eran asi, para la animacion por huesos no hace falta ser un programador con un buen par, ya que los calculos para hacer en cada movimiento son muy pesados para estos procesadores tan pequeños.

Mirare a ver eso de los md3, pero si el formato no esta liberado como el md2 no creo que haya mucho donde rascar.

Senkius a todos :)

Scrembolxp
21/10/2009, 08:39
Pero que dices!!!! Estas seguro ??¿¿¿
Pero si te puedes crear una escena animada en el 3D studio, y las sequencias animadas tambien se guardan en el fichero .3ds........
Vamos, sino era imposible crear videos con esta herramienta [wei]

No, no debe estar seguro, un archivo .3ds guarda toda la información de la escena, animación inclusive (materiales, luces, camaras... ) con sus limitaciones claro esta.

Salu2.

Scrembolxp.

Gammenon
21/10/2009, 11:01
Si el Quake II va en la Wiz supongo que podras usar modelos md2, no? Interpolando las diferentes mallas y todo, como en el Quake II.

Respecto al procesador de la Wiz, soporta coma flotante por hardware? O hay que tirar del coma fijo?

< - >
He estado mirando las especificaciones de la aceleracion 3D de la Wiz y pone que admite mas de 64 matrices en el apartado GL_MAX_PALETTE_MATRICES_OES. Esto se puede usar para animacion por huesos, lo que no se es si la GPU tiene T&L para que haga el las multiplicaciones y libre la CPU (apostaria a que no...)

Segata Sanshiro
21/10/2009, 12:22
Respecto al procesador de la Wiz, soporta coma flotante por hardware? O hay que tirar del coma fijo?

Parece que en la GPU se pueden realizar operaciones en coma flotante, pero para saber cómo habría que tener la documentación completa. Encima, la página de mesdigital.com lleva caída semanas.

Eskema
21/10/2009, 12:22
No, no debe estar seguro, un archivo .3ds guarda toda la información de la escena, animación inclusive (materiales, luces, camaras... ) con sus limitaciones claro esta.

Salu2.

Scrembolxp.

Tanto mirar formatos al final me hice la picha un lio, el 3ds lo guarda todo, pero si importas un md2 y lo guardas como 3ds no consigues nada, pues seguimos con las mismas mallas y animaciones.

Al final voy a trocear los modelos y a ver como va el rendimiento

saucjedi
21/10/2009, 13:04
El MD3 es tan libre como el MD2 porque los fuentes de Quake 3 están disponibles. MD3 viene ya troceado y es posible que te sirva. De todos modos no sé si podrías reducir los colores del skin (quizá venga en 24 bits) a 8 bits y eso que te ahorras.

Gammenon
22/10/2009, 13:04
Parece que en la GPU se pueden realizar operaciones en coma flotante, pero para saber cómo habría que tener la documentación completa. Encima, la página de mesdigital.com lleva caída semanas.

Eso me suena a T&L. Aun asi si no lo hace directamente la CPU mucho me temo que habra que tirar de fixed point :mad:

< - >
Acabo de bajarme el PDF con las especificaciones preliminares del SoC de Pollux del area de descarga de programacion Wiz, y en la parte del hardware 3D pone esto:



1-8 POLLUX Application Processor
1.2.19. 3D Graphic Accelerator
Programmable floating point vector processing engine for geometric transform.
Variable mathematical operation.
512-depth instruction memory
252 Vector Input/Constant Registers
16 Vector General Purpose Registers
2x2 Sub-Pixel Accuracy
Features of Texturing
Perspective Correction
Multi-Texturing
Chapter 1 : INTRODUCTION
Bi-Linear Filtering
MIPMAP
Features of Pixel Operation
Per-Pixel Fogging
Hardware Dithering



Esto suena a vertex shaders. Es posible que la GPU de la Wiz soporte vertex shaders pero no pixel shaders, ya que esto si que requiere una potencia de calculo considerablemente mas grande? En las tarjetas graficas de PC una tarjeta si acelera shaders acelera los dos (tanto vertex como pixel) pero en un dispositivo movil no me extrañaria que solo fuesen los vertex. Si es asi seria una noticia cojonuda, quizas se podria hacer animacion por huesos y todo tipo de deformaciones por hardware. Incluso admite 252 "registros constantes", que es el minimo asegurado del estandar shader model 2.0! :hype::hype::hype:

saboteur
22/10/2009, 14:20
¿Y cómo lo hacen en el port del Quake? Se podrían mirar los fuentes, que están por ahí, ¿no?

efegea
22/10/2009, 18:28
Programmable floating point vector processing engine for geometric transform.

Esto me interesa, ¿se sabe algo más, o es un misterio aún, como el de cuándo saldrá el SDK de Wiz?

Gammenon
22/10/2009, 20:24
Esto me interesa, ¿se sabe algo más, o es un misterio aún, como el de cuándo saldrá el SDK de Wiz?

Alguien conoce a alguien que pueda confirmar o desmentir lo de los vertex shaders de la Wiz? [wei]

kennyspirit
22/10/2009, 22:17
¿Y cómo lo hacen en el port del Quake? Se podrían mirar los fuentes, que están por ahí, ¿no?

es que es cierto joer, si el quake se porta tiene que haber una forma

Gammenon
05/11/2009, 08:51
Lo refloto porque interesa

saucjedi
05/11/2009, 14:02
es que es cierto joer, si el quake se porta tiene que haber una forma

Revisando un libro que tengo donde se explican al detalle los formatos MD2 y MD3 no tengo ni idea de donde se saca Eskema esos enormes modelos... ¿has probado con alguno sacado de Quake 2 directamente?