gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS development > [GL] Vertex arrays and .BSP quake 3 maps

#119816 - efegea - Mon Feb 26, 2007 5:23 pm

Aren't vertex arrays supported on libnds' videoGL? If not (as I thought) is there any reason for them not been implemented?

I'm coding a .BSP (quake 3 maps, not the BSP trees) map loader but need vertex arrays to pass all the vertex data.

Has anyone here coded a bsp loader for the ds?

Do you know another map alternative instead of quake 3 maps? I still prefer the bsp but if it's imposible to do, I'll try another format. I'll subdivide it using an octree.

My project a multi-platform 3D engine (currently it's working on linux and GP2X,when finished I'll port to windows,nds,dreamcast. It's made abstract enought to make easy the porting), and with it develop a survival horror + rpg game (something like parasite eve, but with a silent hill ambientation) But the 3D engine must support different kind of genres, not only survival horror, so I need a map format that is suitable for all of them, what do you think? Is better to develop my own format? any tips?

EDIT: and a way to do something similar to vertex arrays but without videoGL, calling directly the hardware?

#119834 - shash - Mon Feb 26, 2007 7:57 pm

I coded a Quake3 map loader and renderer for the DS a while back, and did the vertex send in inmediate mode, which is kind of a hack, I know. Probably, the best way would be to pack everything you can as display lists (for example, bezier surfaces can be easily done like this, the rest might be a bit harder), and then send them to the DS through DMA.

Even if in inmediate mode, converting the vertex, texture coord and visibility data to fixed point got it rendering quite fast (55-60 constant fps) for a two day project. Next that I should do is convert all data to a proper format: lightmaps, for example, are now used almost in their original format (128x128x2 bytes per lightmap!), and later render everything in two passes, a diffuse pass, and later blend it with a lightmap pass.
_________________
http://shashemudev.blogspot.com