Vuestra opinión del 3D de Glbasic

Previous topic - Next topic

pinete

Buenas!
Me gustaría preguntaros si habéis hecho algo en 3D para el Iphone o el Ipad con GLBasic.. me voy a poner a mirarlas y quería saber que opinión teníais..
saludetes!

Hark0

Ni idea de 3D con GLBasic...

Me he "apuntado" al nuevo blog de Mentalthink... estoy como loco por ver todo el tema de 3D con GLb a fondo... ;)
http://litiopixel.blogspot.com
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica Development Indie Videogames · Pixel-Art · Retrocomputing · Electronic

msx


mentalthink

Hola Pinete, pues la verdad está muy bien, le faltan bastantes cosas, de Shaders y tal pero si te apañas se pueden hacer cosas.
No se que soft usas, pero con Blender va muy bien, y si usas como la mayoria de los mortales 3DS MAX, hacer mallas animadas en más "coñazo", pero gracias al Cat, las puedes hacer rápidamente, y mediante Fragmosoft, las pasas a .MD2 y luego con el conversor del Glbasic, a .DDD y va realmente bien, una vez hecho es bastante sencillo.

Sobre la velocidad, la verdad que va realmente bien, justo el Viernes hice una pruebas, de un pequeño escenario que se repetia unas 20 veces, me parece que cada repeticíon eran unos 1000 Poligonos, mas un avión con unos 4000 poligonos, bien con limitfps -1, si que bajaban los frames a 40 o asi, pero se me ocurrio, bloquarlo a 30FPS y joder, la velocidad que le puse de movimiento a los escenarios era más que rapida y super suave. A parte 2 Texturas de 1024x1024, pero he hecho pruebas y con 512x5121 en un Palm Pre, va de lujo.

Eso si hay cosillas que no van exantamente igual que en el PC, por ejemplo, el tema de los BumpMAps o los NormalMaps, no los reconoce, y por ejemplo en el Palm Pre, no reconoce las luces, en cambio en iPhone si, aunque lo mejor es pasar de iluminar la escena en tiempo real, ya que consume, una barbaridad de Frames, lo mejor tirar de LigthMaps.

Bueno y ya aprovecho, para comentaros mi nueva aventura que empezaré ya mañana a "maquivelar", resulta que siempre tengo ideas para hacer juegos y tal, pero siempre que pienso algo, me viene a la cabeza el Black Sun, (aquel juego de naves que enseñe, hace mucho tiempo, y cuando no tenía ni idea de programar [Bueno ahora tampoco, pero por lo menos me sale algo], bien pues debido a que me desicé de la WIZ hará un més, y todas las plataformas soportan má o menos bien los 3D, creo que me voy a aventurar a realizar el juego en 2D mezclado con 3D, a ver que saco. Ya os iré mostrando cosillas, me he puesto de plazo, el més de Diciembre de esté año, a er si llego. )

Un saludo.
Iván J.

pinete

Gracias Mentalthink ;)
much appreciated, como se diría en el foro normal!  :booze:
Entonces, los pasos para meter un bicho andando serían: hacerlo en el max, grabarlo en formato ???? y con CAT (que es eso?!) hago algo (¿?¿?) y con un conversor lo paso a MD2 para poderlo pasar luego a DDD, no?
Podias contarme un poquillo mas el proceso por favor? aunque solo sea para saber en que grabo y para que sirve el CAT este del que hablas :)
Por cierto, sabes si la exportación soporta materiales multi-subobject?
Con que tiras los lightmaps? el proceso que yo seguia con Blitzbasic era hacerlo con max, con un plugin que era la releche grabarlo en .B3D que era el formato del blitz, pillarlo con Giles para iluminar (no se si lo conoces pero ahora es gratuito y es el mejor lightmapper que he probado), para despues, seguir exportando en .B3d, Giles permite exportar en un monton de formatos..
Bueno gracias de nuevo Mentalthink!  :nw:

mentalthink

Hola pinetete, mira esto que me comentas de pasar de Max a Glbasic lo explico en mi blog, te lo explico un poquillo para que sepas un poco como va la cosa.

Mira tu haces por ejemplo un muñeco con el MAX, ok?¿, ya que es un muñeco normalmente estará animado, para eso yo uso CAT (Character Animation Toolkit), esto es como el Character Studio, pero muchísimo más sencillo, y rápido, para hacer cosas, a parte no se límita a bípedos, puedes hacer cualquier tipo de animal, persona, con el número de brazos y piernas que quieras, puedes hacer por ejemplo un 100 pies sencillamente, a parte te crea los "WalkCycligs" o los movimientos de andar de forma automática.

Luego tienes que usar un programa que se llama "Fragmosoft" (o algo así), es muy económico, está anunciado en alguna parte de está web de GlBasic.

2ºPaso: Pasar de Max a fragmosoft, lo que tienes que hacer es exportar a .FBX al fragmosoft, y tocar un par de botones, y luego te permitirá exportar desde fragmosoft a .Md2.

3ºPaso, Bien ya tienes el modelo en md2, ahora coges el conversor del Glbasic, y le dices que pase de .md2 a .ddd, y ya está ahora si lo metes en Glbasic, tendrás tú personaje o lo que sea animado preparado para funcionar en Glbasic.

4º: Ya está en Glbasic, mirate un comando que se llama algo como X_ANIM (o algo asi), ya que si intentar mover el muñeco con un contador, utilizandolo para los frames, lo verás como ha salto, esté comando hace la interpolación entre frames y te hará la animación igual que en el MAX.

Sobre el LigthMAP, yo lo hago con el mismo MAX, no se si conoces Vray, Final Render, o Mental, Ray.
Básicamente lo que tienes que hacer es un Unwrap, de la geometría, esto es como descomponer la geometría, (imaginate como papiroflexia, pero en vez de hacer una pajarita, la deshaces), entonces puedes pintar como quieres el objeto (yo uso BodyPaint 3D), y luego cuando lo tienes texturizado le haces el LM, con el motor que mejor te vaya.

Simplemente haces el proceso que te he comentado para pasar el muñeco a Glbasic (lo anterior), y colocas esa textura que has creado como un sprite, para utilizar con Settexture, y ya está tendrás un muñeco muy,muy similar a lo que ves en el visor del MAX.

Si lo ves muy follón enviame un MP, pero en mi Blog, casi todo estó esta comentado en video.

Un saludo, y gracias por tu interés.

PS: Dos anotaciones, el CAt, viene en versiones del MAX a partir de la 2011, y cuando pases de MAx al Fragmososft, veras que el tiempo total de la animación es algo menor que la mitad de la animación completa en MAX, todavía tengo que estudiar este "problemilla", supongo que es algo del numero de frames. OJO no digo que si tu animacion en MAX dura 50 frames competa, y en fragamsoft dura 25 te deje el muñeco a la mitad de andar, sino que es como si escalase el tiempo de la animación, luego sale totalemte completa en Glbasic, o sea no va a ir como "el cojo los pestiños" :)

Pues nada un saludo.
Iván J.

pinete

Gracias Mentalthink!!
Que 'peazo' contestación! :nw:
te lo agradezco mucho, vas a tope! te mantendré informado de mis avances, que me temo que serán más lentos de lo que me gustaría por el poco tiempo del que dispongo :P
un saludo!!!

mentalthink

Hola Pinete de nada, para eso estamos en el foro.

Si necesitas ayuda sobre el tema de 3D, simplemente me lo comentas o me envías un PM(esto es para todos), y con mucho gusto te contesto las dudas.

Si usas el MAX una fuente de información my importante es el Youtube, bueno y para casi todo, por ejemplo si no sabes muy bien como va el CAT, pones algo como:
CAT tutorial MAX, o algo similar, yo justo el otro día encontre a un "pallo" que aunque está en inglés prestando un poco de atención se entiende bastante bien, y explica el CAT muy bien, yo vi solo el primer video, y explica truquillos muy buenos sobre los nombres de los huesos y tal.

Por otro lado, si no te quieres matar modelando haciendo triangulos, no se si conoces... (disculpa, pero no sé, si eres un usuario asiduo a las 3D, o lo usas como Hobby), tienes aplicaciones de modelado y texturizado, que usas otro tipo de tecnología, en vez de triangulos, está tecnología es llamada Voxels,  en que consiste?¿.

Simplemente imaginate que tienes un trozo de arcilla y empiezas a esculpir, con una tableta gráfica o un ratón, generas modelos alucinantes, yo la verdad, aún no hago cosas en serio con está teconología, y no le he "pillado el truco", pero por ejemplo si miras cosas hechas con aplicaciones como:
ZBrush, MudBox o Coat 3D (el cual mostraré algunas cosas en mi blog, próximamente), verás como puedes hacer mostruos alucinantes con, muchísimo menos tiempo, y con un detalle que poligonalmente es casi imposible, no porque sea demasido complejo (que lo es), sino por el gran número de poligonos que se necesitan para crear esos detalles.

La tecnología de Voxels puede mover tarnquilamente unos 20 o 30 MILLONES de poligonos!!! mientras que una aplicacion o suite 3D convencional, como MAX, LW, MAYA o la que sea, el limite quizás hoy en día sea 3 o 4 millones de poligonos, y no creo que pueda (esté dato es un poco a ojo de buen cubero, pero te digo de entrada que una apliaciónde Voxels, o Pixols en el caso de Zbrush, mueve una cantidad ingente de poligonos). Me dirás, claro con una gráfica super potente, no te preocupes, mi ordenador es un core 2 QUAD de hace 4 años y la gráfica IDEM una GTS 8800, por 100€ hay graficas que sobrepasan a la mia de largo, y te digo que con mi gráfica se mueven muchisimos millones.

Otra apreciación es , si te decantas por usar una herramienta de estás, te recomiendo COAT 3D, simplemente por la facilidad de uso, el precio en la version digámos little son 99$ (su única restriccion, son texturas de 2048x2048 y 7 capas), y la de pago, es que estós dos parametros no están capado y son unos 300€, respecto a los 600 de Zbrush (Realmente es bastante follón la interfaz), y el MUDBOX aunque no me aucerdo del preció, seguramente valdrá 4000 o 5000€ como cada apliación que se quedán los de Autodesk.


Y bien el ultimo punto, me diras pero como voy a poder poner por ejemplo un modelo de 1.000.000 poligonos en Glbasic, bien... estás herramientas tienen una cosa muy útil, llamada retopología, la palabra es muy rara, pero es muy simple, cuando haces un modelo puedes hacer que esa malla tan pesada sea una malla de poligos, muy poco densa, puedes usar un modo automatico, o realizarlo a mano, y quizás puedas hacer un modelo con 1300 poligonos realmente alucinante, porque?¿. Porque el truco de todo esto viene con el mapa de normales, que no es nada más y nada menos que cuando tu en la "malla" de voxels has creado arrugas, endiduras, protuberancias, el dibuja esos saltos de altura en el mapa de normales [una imagen en formato .TIFF .PNG .etc](es como un bump, pero algo más complejo internamente su funcionamiento), y poco más , entonces luego en los motores de tiempo real, le dices que utilizé esté mapa de normales, (OJO en GLBASIC el bumapping no funciona en todas los dispositivos, a mi solo me funciona en WINDOWS). Ahhh, a parte puedes texturizar encima del modelo pintado sobre el y luego exporta una imagen que la la cargas como un LOADSPRITE y ya está.

Luego pasas al MAX o a lo que estés más acostumbrado, lo animas, y ha hacer el proceso que te he comentado en el hilo anterior, y ya está,  el modelo a "tutti pleni" en Glbasic.

De estó ya intentaré hacer un tutorial, lo que pasa que ahora mismo, voy realmente mal de tiempo.

Como os comento, si teneís cualquier dudilla y soy capaz de responderla, pues me la comentaís.

Un saludo.
Iván J.

pinete

Hola Mentalthink ;)
queria hacerte una pregunta, he estado mirando en en el manual, en la seccion de 3D y no he visto ningun comando que haga referencia a padres/hijos, tanto para linkar objetos en una jerarquia como para acceder a la información de los hijos en concreto..
Imagina un mapa, utilizas el max de mapeador situando objetos llamados, por ejemplo "casa1", "casa2", luego lees la posicion de todos los hijos del objeto padre (por ejemplo el root, "suelo", en las posiciones situas los objetos que quieras y el objeto "real" lo ocultas...
Existe algo así? a mi me parece algo vital... :P

mentalthink

Hola Pinete, muy bien no entiendo tu pregunta. Supongo que te refieres a si puedes cojer digamos los sub-objetos de tu modelo 3D, y ocultar el principal.
Yo lo haría de la siguiente forma (en el caso que sea está tú pregunta, ya que no me ha quedado muy clara).
Haria los objetos en el Max por ejemplo, y los exportaria de 1 en 1 para cargarlos en el Glbasic, luego simplemente dibujas el modelo que quieres o no.
Para el tema de exportar solo el objeto que quieres en MAX, fijate que tienes un comando que se llama "export selected", esté comando solo exporta el objeto que has seleccionado, sin embargo el export normal y corriente te exporta toda la escena.

Habría otra manera , que así a "ojo de buen cubero", me parece que no saldría, pero tu un objeto en Glbasic, lo puedes digamos "recrear", me explico un objeto 3D, simplemente es un Array, que tiene unos puntos , y que luego dibuja trangulos entre esos puntos.
En el help, hay un comando, me parece que se llama Getface o algo asi, y veras un ejemplo.
Podrias intentar cojer tu objeto completo y digamos "recrearlo en el Glbasic", y luego decir que parte de esa geometría "ese Array", eliminar  u ocultar, pero realmente creo que es algo díficil y "follon", porque supongo que si borras agún indice, te cargaras parte de todos los objetos, realmente no estoy demasiado seguro de como hacer esto.

Y si no es lo que preguntabas y me "enrollao" de mala manera, "repitame la pregunta po fabo" pero un poquillo mejor "explicá" ;)

Un saludo,
Iván J.

pinete

Gracias de nuevo por tu atención Mentalthink, eres mas majo que las pesetas!  :nw:
basicamente lo que pregunto es la forma de realizar lo que en blitz se conseguia mediante las funciones "entityparent", "entitychild", "getentityparent", "getentitychild", etc...

El ejemplo que comentaba del mapa:
Imagina que tienes un mapa en el que quieres situar, por ejemplo, gallinas, por decir algo, en lugares concretos, pero no quieres hacer un mapeador para eso, y necesitas algo que no "entorpezca" mucho el pipeline de trabajo (mas herramientas, etc)..

La forma en la que yo lo hacia con Blitz era muy sencilla:

- Hay un objeto root que es el padre de todos los demas (son sus hijos), en el propio max. Lo exportas.
- Cuando lo lees, accedes a todos los "childs" de "root", es decir, a todos los objetos de la escena.
- las gallinas son dummies, por ejemplo, que has situado en el max, y se llaman "gallina01", "gallina02", etc...
- Cuando lees el nombre de un objeto que se llama "gallinaXX" accedes a toda si informacion como si de un objeto normal se tratase, coordenadas en el espacio, tamaño, lo que necesites... en este caso, solo su posición.
- Situas en esta posición tus entidades (gallinas animadas, por ejemplo)
- y asi sucesivamente
...
Acceder a "hijos" o "subojetos" como tu decias, es clave si se quiere utilizar el max como editor, y no solo eso, sino para posicionar armas en una mano, por ejemplo, o mil cosas mas..
;)
La verdad es que por lo que veo GLBasic permite solo hacer cosas extremadamente simples y le queda un largiiiiiisimo camino por recorrer para ser una opcion de hacer algo medianamente decente... por desgracia  :'(
... que como decia en otros posts, tiene cosas que son muy chulas, pero vaya, que no entiendo como cosas tan tremendamente basicos en multitud de aspectos no están contempladas...
Un abrazo Mentalthink, y gracias de nuevo por tu ayuda macho! ;)


mentalthink

Hola pinete, te aseguro que si me vieras el jepeto cambiarias de opinion,  =D
Pues lo que me comentas la verdad, ni idea. Yo eso que me comentas de digamos colocar objetos en la escena lo haría con un array, o algo asi.

Como bien dices el Glbasic, le falta mucho camino en el 3D, pero todo se andará, tambien ten en cuenta, que en el foro, entero, no hay demasiada gente que haga cosas en 3D, me parece que el unico es Bigsofty y otro chico que no recuerdo. Pero se pueden hacer cosillas, lo unico que hay que hacer muchos pasos y tal.

Si te das una vuelta por el apartado 3D, hay gente que está portando el Xors y el iXOrs, pero el problema, Xors solo es para Windows y el iXors me parece que solo vale para iPhone (me parce).

Luego si miras por ahí tambien, encontrarás el tema del Entity, que digamos es una librería hecha por Gernoot más completa, pero tienes que tener cuidado, porque es OpenGl, y por ejemplo yo he probado cosas y el Palm Pre, me dice que no se la traga, el  icono de la aplicación aparece con una media luna (supongo que quiere decir Sleep, o algo asi.)

Por otro lado no te ofusques con el tema de las 3D en Glbasic, si me permites el consejo, hacer un juego digamos en 3D super currao es mucho, mucho curro, y a lo mejor luego realmente no es absolutamente rentable, y todo al tiempo, como te comento aunque el Glbasic va por la version 9, yo creo personalmente que empezo ha despegar con el tema del iPhone, y de esto no hace mas de dos años (si no me falla la memoria).

Por otro lado, ya que estoy te/os quería comentar, que ayer de casualidad por el insomio por un exceso de cafeina estuve mirando un programa que es gratuito, y os va encatar para el tema de animar, no hay que hacer nada, cojer un muñeco y colocarle un esqueleto que ya esta animado, hay cientos de movimientos gratuitos, hyper-realistas, yo creo que son MOCAP (Motion Capture), y luego lo exportas en Collada al Blender y de ahí directamente al glbasic con el exportador de este.

Es realmente sencillo, lo unico que no se todavia como hacer para que reconozca un esqueleto de una malla por ejemplo importada desde el MAX.

Os dejo el nombre, por si le quereís hechar un vistacillo.

Animeeple, como os digo es totalmente gratuito, excepto el plugin para exportar a .FBX, pero bueno como el Blender se "traga" el .DAE (Collada), pues no hay que gastarse ni un duro.

Ya iré comentando estó, a ver si me sale, y colocaré un tuto.

Un saludo.