Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Ghostpilot

Voxels (are they the future?)

Recommended Posts

That cave demo was very impressive. But it seemed so blurry.

Maybe if it was scaled larger and we had a more zoomed out view it'd fit into the polygonal world.

I dunno if it'll fit doom or not.

edit: I totally agree with you ultra.

Share this post


Link to post

The only possible problem is the size of the files. Although it reduces the number of directional frames, we would still need 1 voxel image for every frame of animation.

Share this post


Link to post
Ultraviolet said:

So voxel-based deformable terrain with a dynamically generated polygon layer intersecting at the surface-points (any point that is not shared by pieces of other voxels I think) in order to cover up the blockiness with a nice smooth surface might be an abso-fucking-lutely marvelous solution for deformable terrain in "modern" polygon-based games! THINK ABOUT IT.

Absolutely! However, does this look "blocky"?

http://www.flipcode.com/voxtut/voxtut-engine.shtml

There are also many other examples to show-case - just GOOGLE "voxel".

One should always do their own research on a subject vs accepting something posted as fact.

Voxels are not diagonal lines.

Share this post


Link to post
Ultraviolet said:

So voxel-based deformable terrain with a dynamically generated polygon layer intersecting at the surface-points (any point that is not shared by pieces of other voxels I think) in order to cover up the blockiness with a nice smooth surface might be an abso-fucking-lutely marvelous solution for deformable terrain in "modern" polygon-based games! THINK ABOUT IT.

Hey hey hey!
Don't jump ahead of things.
We are still talking voxels and DooM here.
Not some super-ninja-mega-soon-to-be-made-future-voxel-engine.

But I must say that I agree with you 200%.
That's why I will write my final graduation essay at university about voxels. It will be a study of polygons vs. voxels.

The problem with voxels is that is's hard if not impossible to use Z-buffer.
AND... On top of that it require huge amounts of memory and computing power from the CPU.
I have been thinking VERY hard about this.
I still lack enough knowledge about HOW voxels work to say for sure that this will or will not work.

My idea is this:
A voxel isn't the smallest object... A half voxel is.
Let me try to explain. A voxel is a cube, right?
If you cut that cube in half from the top right corner to the bottom left corner you get some sort of distorted pyramid shape.
What if that could be used to remove the blockyness in curved and sloped voxelsurfaces?
A polygon/voxel hybrid engine.

Imagine this: Hardware accelerated double matrix calulations for voxels in graphic cards. Now THAT would be something.

Share this post


Link to post
Fredrik said:

Yeah the Doom monsters (and other sprites) should be converted to voxels.

I agree.
Randy said on the ZDooM forums that he had no plans on implement voxel support.

But if someone (maybe me or we) made some voxelmodels of things in DooM and showed him that it actually looks better than Md2 models, he might reconsider.

There is another option, to code it by myself.
But then I need to fully understand how voxels work.
And then it will be a sparetime project. And the thing is that I don't have so much spare time now when I'm closing in on graduation from university.

Share this post


Link to post
Ghostpilot said:

But if someone (maybe me or we) made some voxelmodels of things in DooM and showed him that it actually looks better than Md2 models, he might reconsider.



I don't think creating the models is the biggest problems. Rendering them in the context of Doom's engine might be much more problematic.

Share this post


Link to post

Using the marching cubes algorithm, you can transform volumetric data (ie, voxels with a density information in them) into polygons. I use voxels organized into an octree heavily in my phd thesis (3D reconstruction).

Share this post


Link to post
Julian said:

Using the marching cubes algorithm, you can transform volumetric data (ie, voxels with a density information in them) into polygons. I use voxels organized into an octree heavily in my phd thesis (3D reconstruction).

Do you have a report or maybe a demo to show me. I'm really interested in this.

Share this post


Link to post
Ghostpilot said:

Do you have a report or maybe a demo to show me. I'm really interested in this.


Google is your friend

Share this post


Link to post
Julian said:

Exactly my thought.

First you tell me that you know something about these things, then you tell me to use google.
If you know something about this, don't you want to share your knowledge?

Share this post


Link to post
Ghostpilot said:

My idea is this:
A voxel isn't the smallest object... A half voxel is.
Let me try to explain. A voxel is a cube, right?
If you cut that cube in half from the top right corner to the bottom left corner you get some sort of dirtorted pyramid shape.
What if that could be used to remove the blockyness in curved and sloped voxelsurfaces?


I don't think that's possible. It would be like trying to cut a pixel in half. All you can do is increase the resolution.

Share this post


Link to post

It is kinda possible, but you'd need some sort of 2d rendering pass to smooth out the steps. For instance you could write pixel shader to do that but you'd end up with rounded edges on every part of the voxel object.

Voxels SHOULD have been the future. The problem is no hardware acceleration.

Share this post


Link to post
BlackFish said:

Well, it does explain why the cavedemo didnt have hardware support.

Imagine how drastically different the system requirements would be if there was some offloading onto the GPU...

Share this post


Link to post

Delta Force II used voxel based terrain and used Direct3d, and it says in that 'voxeltut' article that its possible, but I doubt you can use filters on a single voxel, let alone a voxel model. I dont understand how trying to do that would even work.

Share this post


Link to post
DaniJ said:

...but you'd end up with rounded edges on every part of the voxel object.

This give me yet another idea.
A voxel is a cube. A cube has 8 corners.
What if you could use spheres instead. A sphere only has a centerpoint and a radius.

There was an example of dot-cloud rendering in an article I saw once.
If the dots was small enough and the resolution high, the result was a VERY VERY smooth surface.

Share this post


Link to post

Why not? (Think I'm missing something).

There is not much that can be accelerated. Voxels require pure processing power.

You can use a pixel shader to do the rounding of edges. The way I'd do it is with a second rendering pass. On the second pass I'd omit every voxel that wasn't forming the silhouette then apply a gausian blur pixel shader. Then just blend the two frames together.

Not that I'm a programmer or anything but it works in theory. And they used a similar technique in Tron 2 for the volumetric lighting...

Share this post


Link to post
DaniJ said:

There is not much that can be accelerated. Voxels require pure processing power.

True.
But what if there was some sort of hardware accelerated way of doing double matrix calculations on voxel volumes.
Most of the load will be put on the CPU and memory though.
There must be a better datastructure than a double matrix to represent voxel volumes. Or at least a optimized one.

Share this post


Link to post

Has anyone found a program to convert several directional sprites into a voxel yet?

I've been looking, but haven't had any luck. I really want to see how the DooM enemies would look as voxels.

Share this post


Link to post

Well, graphics cards do little more than store textures, right?(in terms of what's applicable here...) And voxels store height information? What about storing heightmaps? There are tons of polygon-based terrain generators that read from greyscale pictures. Try doing the same using voxel technology. Now, there are a few more steps:

Find out how many camera angles are required to accurately model, say, a demon. Put simply, let's say six(top, bottom, left, right, front, back). You now take heightmap pictures at each of the six angles. So now you have what is basically six greyscale textures, each showing a side of a demon in "topograph" view.

From here, you are basically defining the min/max coordinates of the model, and "shaving" voxels(try to imagine using a cookie cutter) off of a block model to render the demon. Obviously, more complex models will need more angles for reference, but here we have the most simple solution. The idea is that the graphics card can manage all your textures that you are using for heightmaps(which, if you use your own filetype, can store extra information like the angle at which it should be viewed, and if it's part of an animation). Which is basically the same thing as storing player models.

Lots of games already do this with terrain-- it's only a step further to realize something like this.

Share this post


Link to post
Mordeth said:

When I get home I'll try and dig up some of this stuff you're looking for, Ghostpilot. As encouragement, the filename "slabspri" does ring a bell here.

If you could try to remember the link or the name of that article, I would give 25% of my soul to you.
Well, not exactly, but I would be very happy.

I bought Shadow Warrior on tradera today.
It hasn't been delivered yet, but I'll get it soon enough.
I really hope that it contains that elusive "slabspri.exe"

Share this post


Link to post

I have SLABSPRI.... and Ive spent hours trying to do it the easy way, importing the rotated frames and the palette into EDITART. That part was easy, but the output in slabspri is very shitty, its like a very twisted chopped up version of its sprite. Youre better off making the voxels by hand.

The sprite you want to import HAS to be have perfect rotations, like I mean perfect, and even then, for some fucked up reason the palette doesnt import properly into SLABSRI, even though its fine in EDITART. I cant believe I just wasted 4 hours of my life on this bullshit. That, or im just pissed because I cant for the life of me get it to work properly. And YES, I know what im doing...

Although you didnt waste your money GhostPilot, Shadow Warrior is an awesome game. Heh.

If someone DOES get it to work properly, please PM me (if you can do that here), or email me. Thanks.

Share this post


Link to post
iori said:

I cant believe I just wasted 4 hours of my life on this bullshit. That, or im just pissed because I cant for the life of me get it to work properly. And YES, I know what im doing...

I got my Shadow Warrior through the mail today. It's the "first edition" with the paper box and the label "not for sale in the UK" on it.
It had slabspri.exe in the goodies folder.
I have tried to do exactly the same things as you did.
Well... I think you did better than me.
The output did look like monster, allright. But the input was an imp.
I think I'll go back to "ye old drawingboard" and do the voxels by hand.

iori also said:
Although you didnt waste your money GhostPilot, Shadow Warrior is an awesome game. Heh.[/B]

Yes I know. Now I need Blood and Cryptic Passage to make my collection of buildengine games bigger.

Share this post


Link to post
Guest
This topic is now closed to further replies.
×