Yeti3D (nesecito ayuda con las paletas graficas)

Started by l1nk3rn3l, January 03, 2010, 06:12:05 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

l1nk3rn3l

 ;D

http://www.mediafire.com/?nndcmmnzynz
http://rapidshare.com/files/329820078/Yeti3D.rar.html

yo de nuevo , mirando por ahi los primeros motores 3d que uso fenix
desearia que me echaran una mano que con las paletas y mascaras graficas
no tengo idea...

intento cargar los graficos desde un fpg al motor pero no se ve bien
test13.prg y test14.prg
las funciones en cuestion son:


fenix3d.c
-----------------
fx_CargarSpritesFenix
fx_CargarTexturaFenix




investigando por ahi , ahi una version del motor mas actualizada que carga las pieles de los modelos md2
usando la sdl_image , con la funcion IMG_Load, de pronto este codigo puede servir de referencia para cargar correctamente las texturas y sprites del motor
desde un FPG:
tomado del proyecto http://code.google.com/p/yeti3d-pvr/

yeti pvr
----------------
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
//int main(int argc, char *argv[])
{

Uint8* keys;  // to keep track of keypresses later on.
SDL_Surface *temp_skin;
SDL_Surface *convert_skin;
int i, j;
u16 *skinsrc;

  //Initialize SDL video.
  if ( SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER) < 0 )
  {
    printf("Unable to init SDL: %s\n", SDL_GetError());
    exit(1);
  }
  atexit(SDL_Quit);

  testmd2 = (model_t *)yeti_load_file("test.md2");
  printf("Opened test.md2 successfully.\r\n");
  temp_skin = IMG_Load("test.pcx");
  if (temp_skin) printf("Opened test.jpg successfully.\r\n");

  // set up our video surface to have the same width and height as our viewport
  screen=SDL_SetVideoMode(YETI_VIEWPORT_WIDTH,YETI_VIEWPORT_HEIGHT,16,SDL_HWSURFACE|SDL_DOUBLEBUF);
  if ( screen == NULL )
  {
    printf("Unable to set %d, %d 16-bit video: %s\n",YETI_VIEWPORT_WIDTH,
               YETI_VIEWPORT_HEIGHT, SDL_GetError());
    exit(1);
  }
  convert_skin = SDL_CreateRGBSurface (SDL_SWSURFACE, 256, 256, 16,
         31, 31 << 5, 31 << 10, 1<<15);
  SDL_BlitSurface(temp_skin, NULL, convert_skin, NULL);
  skinsrc = (u16 *)convert_skin->pixels;
  for (i=0; i< 256; i++)
  {
    for (j=0; j< 256; j++)
      skin[j] = skinsrc[j];
     skinsrc+=256;
  }
  SDL_FreeSurface(temp_skin);
  SDL_FreeSurface(convert_skin);
#ifndef _arch_dreamcast //SDL on the Dreamcast doesn't use a Window manager, so...
  SDL_WM_SetCaption(title, NULL); // Write something a bit more interesting than "SDL App" on our window.
#endif
  yeti_init(&yeti, &framebuffer, &framebuffer, textures, palette, lua);

  game_init(&yeti);



  while(done==0) // While we're not done playing, keep looping.
  {

  d3d_flip();

    while ( SDL_PollEvent(&event) ) // Here, if the user presses ESCAPE, we quit.
    {
      if ( event.type == SDL_QUIT )  {  done = 1;  }

      if ( event.type == SDL_KEYDOWN )
      {
        if ( event.key.keysym.sym == SDLK_ESCAPE ) { done = 1; }

      }

    }
  /* Check the state of the keyboard keys. This could just as easilly be changed
  to use KOS controller code in place of the keyboard on Dreamcast, or probably
  SDL_Joystick would work although I've not tried that.
  A mouse might work for some of this, too. */
  keys=SDL_GetKeyState(NULL);
  yeti.keyboard.up     = keys[SDLK_UP];
  yeti.keyboard.down   = keys[SDLK_DOWN];
  yeti.keyboard.left   = keys[SDLK_LEFT];
  yeti.keyboard.right  = keys[SDLK_RIGHT];
  yeti.keyboard.a      = keys[SDLK_RCTRL]; /* Uncomment the line below if RCTRL doesn't do anything on your system. */
/*  yeti.keyboard.a      = keys[SDLK_RETURN]; */
  yeti.keyboard.b      = keys[SDLK_SPACE];
  yeti.keyboard.l      = keys[SDLK_a];
  yeti.keyboard.r      = keys[SDLK_z];
  yeti.keyboard.select = keys[SDLK_RETURN]; /* Use this to change the model animation? */

  }

  return 0;
}

Windgate

Lo de guardar las texturas en un FPG me parece muy interesante y ya estuve hablando con Prg sobre el asunto. Desgraciadamente no sé qué puedo aportar al respecto, veo el código que pones y lo entiendo, ¿Tu idea es modificar ese código e introducir en él algo de código Bennu que se encargue de extraer un gráfico en cuestión de un fpg y cargarlo como textura usando IMG_Load?

Desde Bennu se me ocurre con algunas de las funciones de map_get_pixel, leer el gráfico del fpg, crear un mapa en memoria donde copiarlo y guardarlo como png en un directorio temporal, luego desde ahí cargarlo con IMG_Load. Todo eso usando Bennu, aunque veo que tú propones escribirlo en el "C" con el que está escrito Bennu, ¿No?
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

l1nk3rn3l

#2
necesito cargar las texturas del motor desde un fpg , no crear un FPG !!!

asi que actualmente el motor funciona pero con texturas externas, me gustaria usar texturas desde un fpg..
pero la paleta no me carga bien.. asi el motor funcionaria nativamente desde Bennu, este seria el motor
ideal para usar desde la GP2X WIZ...  ya que no requiere aceleracion por harrdware como bennu3d


Windgate

Sí, te entiendo, hablaba de cargar las texturas desde un FPG, pero de una forma algo sucia: Con map_get_pixel se podrían leer los píxeles de cada imagen del fpg, generar con ellos un nuevo map y luego guardarlo como png en un directorio temporal, luego desde allí cargarlo como un png "normal".

Bajo el Yeti3D.rar a ver qué tiene dentro por si te puedo echar un cable :P
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

Yo hablo desde lo que sé hacer en Bennu con las funciones que tiene Bennu, los códigos de esas funciones son cosas de las .dll correspondientes, con eso ya sabéis que no me he metido aún, ¿Crees que podría servir Splinter?
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

Oh ;D, la verdad, si se trata de hacerlo desde el fuente de Bennu poco puedo ayudar, pero si puedo inspirar con algo a partir de lo que ya hay hecho en Bennu... Todo sea por el Bennu 3D.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

l1nk3rn3l

#8
El codigo de las funciones en mencion estan en el post ppal...

fenix3d.c
-----------------
fx_CargarSpritesFenix
fx_CargarTexturaFenix

hay msimo descargass ... y el codigo que podria ayudar , el de sdl_image,
no soy guru en graficos y paletas asi que si alguna alma generosa.. me echa una mano
prometo terminar este motor...

lo que se puede hacer con el motor,(actualmente disponible en bennupack - DLLs)






en IPHONE :




a simple vista parece un quake pero no lo es solo aguanta niveles de un piso..
como no es tan complejo , corre muy bien incluso en celulares con windows mobile..



hay mismo se incluye el motor original para diferentes plataformas(psp,sdl,win32,opengl,etc ...)
que podrian servir de referencia..

SplinterGU

decime que queres que haga para probarlo en la wiz, y te hago el video.

saludos.

esto seria Bennu3D usando Yeti3D?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

ahhh, otra cosa... WIZ lleva acceleracion por hardware... tiene "Opengl ES", creo que 1.0.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

l1nk3rn3l

#11
cORDIal saludo,

si la caballeria en camino..!!!! ;D


esto seria Bennu3D usando Yeti3D?
no bennu3d es mas pesado(motor irrlicht), y creo que requiere OpenGL 1.2-3.x
aunque correr , yo si creo  , pero no se a que velocidad,
aqui algunos intentos:
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=35704&highlight=gp2x
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=14256&highlight=gp2x
http://www.gp32x.com/board/index.php?/topic/49973-3d-engines/page__p__763353__hl__irrlicht__fromsearch__1&#entry763353

Claro estoy pensando en el motor YETI3D por el momento ya que es el que uso fenix
hace tiempo(fenixpack),
aqui un juego hecho con fenix
http://booleansoup.org/index.php?p=gallerygames&mode=view_item&type=full&id=89

y porque corre bastante bien, incluye ejemplos en bennu, pero
hay que usar herramientas externas(java) para cargar las texturas en un archivo pak(incluido en bennupack DLLs)

actualmente creo que se puede compilar en wiz sin ningun inconveniente
claro solo basta tenerla!!  asi para los que poseen una , compilen esta libreria
y corran uno de los demos prg incluidos ...

y me pasan los fuentes(si hubieron cambios) , y un video corriendo si no es mucho pedir,

ademas este motor corre en consolas sin aceleracion , como la gp32 donde tambien esta bennu...



Muchas gracias..!!!  

SplinterGU

bien, no te digo hoy, pero este finde o en algun momento libre me pongo y lo hago.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

¿Bennu en GP32? ¿y quien la ha portado, y cuando? porque es la primera noticia que tengo O.O
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2