Howdy all! I started working on a little hobby project and then ran into all this and it caused me to wanna rethink everything im doing. If im to understand correctly, the main benefit of voxels is that everything is dynamic but nobody seems to be taking much advantage of that. Im personally a little sick of playing games where majority of the game content has no interaction whatsoever.
Any of you guys played Tribes 2 Construction mod? Basicly it was just scaling and translating of all the original tribes 2 objects (platforms and whatnot) but what it really meant was that people could build virtually anything in real time using beams and walls. The problem with tribes 2 construction is that the engine was never really designed for that purpose. There is no way to use a bsp tree or any way to reduce the number of visible objects being rendered based on occulsion....on top of that, it had no physics with anything actually created. The thing ran great until you start making too many objects and it chugs the game. Its kinda the same idea with the halflife 2 mod except this one was more towards building structures then making rocket powered couches.
Anyways I started this project a while back using tokamak physics (before it was abandoned and because it was free) and have a simular build system as t2 construction but in space and with physics. So you can build a space ship out of all the little bits..the floors, walls, the engines....all completely destructible but kinda stopped working on it because i realized i wouldn't be able to render the extremely MASSIVE amount of objects i wanted. I tried looking at ken's voxlap code but im not fluent in x86 assembly. How viable would it be to use voxels for this?
ConsistentCallsign at
Re: Voxels in space!
IndependentHat said at
nobody seems to be taking much advantage of that.
That's because the nobodies/polygonists love playing non-interactive, static, lifeless games.
IndependentHat said at
Im personally a little sick of playing games where majority of the game content has no interaction whatsoever.
Join the club.
IndependentHat said at
How viable would it be to use voxels for this?
the-credible-and-charismatic-R&D-man said
Very viable. (3D) Raster graphics is practically insensitive to scene and object complexity, unlike vector graphics that literally rapes and then kills the framerate (fps murder). Also, raster graphics is superior at boolean operations (interaction and destruction).
Edited by apegomp at
IndependentHat at
well i know that fact apegomp, but what i mean is more object oriented rendering. Your game, the voxlap engine seems to be a large dataset of voxels representing the game world, then some other objects such as enemies, weapons, doors and such. My game would have to be entirely object oriented...there would be no world. So how viable is that? Id imagine that each ship might be its own dataset if it would speed up raycasting/raytracing or whatever. Right now im just using simple models in opengl to display the actual physical pieces of the ship that are represented in the physics engine which only uses spheres, boxes and capsules. It can use convex haul but i dont want to sacrifice performance. I dont want to restrict what people would be able to build...if they had the time they could make a mothership...or an orbiting space station. And wouldn't it be fun to start shooting up someone else's property?
I think Ken is one of the few people that could really answer the question that im probably not communicating very well.
Awesoken at
If you use sprites (or a soup of voxel grids) for everything, things will certainly slowdown as you increase the number of objects. If you render with splatting (i.e. your inner loop visits each voxel one at a time), you can use mip-mapping (store half size, quarter size, etc.. resolution) to speed up the rendering. If you render by raytracing, farther objects will render faster naturally. The reason I have sprites in Voxlap is because it is faster to do extra rendering than to modify the world's voxel grid on every frame for every moving object.
IndependentHat at
Hmm, ok... what would you do with the same problem?
Here are some parameters: Objects in the game have full physics and position in space is true and not on a grid. Every object contains at least one basic geometric shape. Something complex such as a space ship would consist of hundreds if not thousands of geometric shapes which could all share the same voxel grid as other geometries on the same object. The Ships or objects in the scene might be inside of each other, such as a free floating box in the cargo of a ship...or they might be seperated by large distances such as 2 large ships orbiting a planet.
So what would you do to render that? I thought raytracing was the only real option with voxels
Also, if it is the only real option, what could be done to speed up raytracing? Keep in mind I dont know much about ray tracing but i assume its basicly like following a line outwards from the camera's specific pixel to determine which voxel it collides with. Correct me please! :D