Allegro.cc
Projects
Action252
Adventure22
Arcade216
Board Games30
Demos24
Emulators10
Other68
Puzzle139
Role Playing40
Sports25
Strategy58
Utilities46
Resource Directory
Code Gallery3
Compilers12
Help & Documents13
Libraries63
Media2
Tools8
IOTD: VoxRend, again...
VoxRend, again...
VoxRend, again..., by Niunio

Here you have, some screenshots from my VoxRend graphic engine. I know they aren't so spectacular than Ken Silverman's Voxlap ones (http://www.advsys.net/ken/voxlap.htm) but, as far as I know, VoxRend is the only one 3D full-voxeled engine for Allegro ;).

I want to release the unfinished version 0.2 before September, because I'll be too bussy the next months and I want to know what do you think about it and get some feed-back and sugestions from the Allegro's Gaphic Gurus before release the full 1.0.

The current version uses two tilemaps to build the roof and the ceiling (top images), using 8 bit bitmaps to define the height of each voxel (this would change on future versions). This allows 256 values, but each tile can be raised from -65536 to 65535. It's allowed to put 'gaps' in the tilemap to build abyss and outside scenaries. The render algorithm was hacked from my UOVLR demo, published at Pixelate #14
(http://www.pixelate.co.za/issues/14/articles/voxel/voxel.html) so you should read it.

The last code I added allows to put and render full-voxeled objects (bottom-left image). The library can load and save VOX files, the file format used in games as Blood, Shadow Warrior or the latest ports of Duke Nukem 3D.

I've wrote an small tool that creates VOX objects using several bitmaps as environment-map and an utility to browse VOX files (bottom-right image).

Before to release it, I'll put code to spin objects arround his vertical axis
and some simple optimization, currently working on paper :).

In version 1.0, I want to add customizable fog effect, sprite-sprite collision, ray-sprite/voxel collision, paralaxed background/ceil effect and better optimised renderer code, specially at object render. I know it won't be so fast, spectacular or flexible than other 3D engines, but I'm learning and amusing a lot writting it and I hope you'll amuse a lot using and hacking it.

And, please, don't tell me voxels are dead: they aren't }:-).
Looking very cool. Are you planning on making an actual game with it? - 23yrold3yrold
Michael Jensen: Voxels in Blood, yes. Voxels in Doom, no.

Mmm...voxels are nearly as tasty as pixels.

Is this capable of handling higher resolution voxel models, such as those in Red Alert 2? - Carl Olsson
Michael: Voxels != Pixels

Quote:
Is this capable of handling higher resolution voxel models, such as those in Red Alert 2?

Yes Yes!
I must know this too! - Gnatinator
I was writing a voxel engine in allegro about a year ago, but I gave up when I tried to do the rotation matrixes. Good job! - Mandrake Root Produc
Ray tracing or not, for a decent 3D game you need some way to rotate objects. So even if you can get away without matrices for a rotated camera, rotating objects is hard to do without them. - Tobias Dammers
Is the chair supposed to look like that?
Quote:
VoxRend is the only one 3D full-voxeled engine for Allegro
Congrats. It's cooler than anything 3D I've done...

Quote:
And, please, don't tell me voxels are dead: they aren't }:-).
As long as people are still playing blood & doom, they're not dead, hope you have time to build a game with this tech, and I hope it rocks ;) Keep it up! - Michael Jensen
Whow! 8^) You're interested, aren't you? Fast answers:

Yes, I want to do a game, but not before next year: I'll be too bussy.

The chair is a model: the look depends on resolution, number of colors, etc...

There aren't a limit on the resolution of tiles or voxel models: just change some defines and recompile it ;)

My engine doesn't use matrix because is ray tracing.

When I release the code I'll send a news to the Allegro's home page. - Niunio
This section is only available to registered Allegro.cc members.



The Gallery | Add your own image!
Poll
Is grammer and spelling important?
View Results