Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411597 Posts in 69387 Topics- by 58445 Members - Latest Member: YomiKu_0

May 07, 2024, 10:36:31 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Trixels and Voxels
Pages: 1 2 [3] 4
Print
Author Topic: Trixels and Voxels  (Read 24764 times)
Zaphos
Guest
« Reply #40 on: April 28, 2008, 01:30:05 AM »

Could it be that the reason voxels tend to look bad and are rendered slower is because generations of 3D graphics cards were built with polygons in mind? Wouldn't they potentially be much faster if 3D graphics cards were built with them in mind instead of polygons? I mean there are all kinds of things specific to polygons in graphics cards, and I imagine nothing or almost nothing specific to voxels, even though both are valid ways of representing a 3D world visually.
An issue with "voxels" is that it's a really vague term, so it's hard to say what a hardware 'specific to voxels' would look like.  Typically for old games it was strongly associated with a class of fast ray-casting techniques that rendered cube-voxels, but even for that I think the specific rendering technique used varied a fair amount depending on the game.  In contrast, I think triangles were generally rendered pretty much the same way regardless of the game, so specialized triangle-rendering hardware makes a bit more sense to me.

Assuming we're talking about that sort of raycasting technique, there are some issues like:
1. Many of those methods seemed to increase memory use in order to reduce cpu time, and it's not clear that's always the right trade off to make.
2. Additionally, raycasting seems to scale worse with resolution than rastering.
3. The number of cubes you need per square to look good also scales poorly with resolution: on an R x R dimensional screen the amount of cubes you need scales as R x R x R.  (This is less of an issue for 'heightfield voxels,' which just need to scale as R x R.)
4. In general, you need a lot of cubes to render arbitrary sharp creases and some other shapes that are easy to do with triangles.

So although it's perhaps true that if you had specialized voxel hardware and no specialized triangle hardware, voxels would be better ... well, you probably wouldn't want to develop hardware like that.

On the other side of things, I think you could argue that Cube and Cube 2 are both voxel engines -- one heightfield voxel, one general voxel (with octrees) -- so if you're willing to think of voxels as something other than just 'that ray-casting rendering technique that gives you solid colored squares,' then you can do a pretty nice voxel engine on polygon-centric hardware.



... However, after saying all that, it's worth mentioning that general purpose rendering hardware might make raytraced voxels (in octrees) worthwhile, as we get to a point where typical triangle sizes are less than 1 pixel large.  At least, that's what Carmack apparently thinks ...
« Last Edit: April 28, 2008, 01:57:34 AM by Zaphos » Logged
Eclipse
Level 10
*****


0xDEADC0DE


View Profile WWW
« Reply #41 on: April 28, 2008, 09:51:07 AM »

Also, I found out via wikipedia that Command & Conquer: Red Alert 2 used voxels to render its vehicles, so that may be a counter-example to them always looking bad: http://upload.wikimedia.org/wikipedia/en/9/9e/Nukelaunch.jpg

also for terrains in other rts games, maybe also in c&c Smiley

the Delta Force fps series had voxel terrains too, same for a lot of old flight simulators


nice idea to use voxel-type data for collisions, you organize all that stuff in a tree? maybe an octree type structure?
« Last Edit: April 28, 2008, 09:53:55 AM by Eclipse » Logged

<Powergloved_Andy> I once fapped to Dora the Explorer
postlogic
Level 1
*



View Profile
« Reply #42 on: April 30, 2008, 05:38:47 AM »

... I found a voxel modeling program. I am happy now.

Without sharing? What is this?!
Logged

No animals were harmed during the making of this post. Except one.
bateleur
Level 10
*****



View Profile
« Reply #43 on: April 30, 2008, 01:12:08 PM »

However, after saying all that, it's worth mentioning that general purpose rendering hardware might make raytraced voxels (in octrees) worthwhile, as we get to a point where typical triangle sizes are less than 1 pixel large.
Even if they aren't, the ability to process (or even preprocess) other ways of describing objects into set-of-triangles form opens up all sorts of possibilities. Because so many companies use Maya or Max for various reasons (such as because that's what their artists are used to) I don't think we'll see such approaches explored much in the near future, but the potential is there.
Logged

Hideous
That's cool.
Level 10
*****


3D models are the best


View Profile WWW
« Reply #44 on: April 30, 2008, 02:02:37 PM »

... I found a voxel modeling program. I am happy now.

Without sharing? What is this?!

http://www.ppmsite.com/index.php?go=vxlseinfo

Found one other program, but that wasn't free and sucked anyway.
Logged

Zaphos
Guest
« Reply #45 on: April 30, 2008, 02:37:07 PM »

However, after saying all that, it's worth mentioning that general purpose rendering hardware might make raytraced voxels (in octrees) worthwhile, as we get to a point where typical triangle sizes are less than 1 pixel large.
Even if they aren't, the ability to process (or even preprocess) other ways of describing objects into set-of-triangles form opens up all sorts of possibilities. Because so many companies use Maya or Max for various reasons (such as because that's what their artists are used to) I don't think we'll see such approaches explored much in the near future, but the potential is there.
What possibilities are you talking about?

Carmack was talking about terrain / level geometry, which is something I think studios often use their own custom tools to create.
Logged
jwaap
Level 9
****


View Profile WWW
« Reply #46 on: May 01, 2008, 10:24:06 AM »

Red alert 2 used voxels, and that game looks sweet... But well, just voxels to model their units.
Logged

___
Vice President of Marketing, Romeo Pie Software
Level 10
*


View Profile
« Reply #47 on: May 01, 2008, 12:23:21 PM »

Red alert 2 used voxels, and that game looks sweet... But well, just voxels to model their units.

Holy shit are you serious?

... I now love Voxels.
Logged
Annabelle Kennedy
Awesomesauce
Level 8
*


♥Android Love♥


View Profile
« Reply #48 on: May 01, 2008, 12:26:12 PM »

my question is though, in red alert 2.. were the units that used voxels, rendered in real time, software, with voxels?  somehow i doubt that.

or were they pre-rendered with voxels and then just raster images.

and if theyre pre-rendered.. whats the point?

maybe im crazy.. but like, wouldnt that defeat the purpose?
Logged
Zaphos
Guest
« Reply #49 on: May 01, 2008, 12:45:37 PM »

I haven't seen it written up anywhere, but I assumed they use raycasting to render units that use voxels in real time, to get a bit of 3D in software and augment an otherwise-2d experience.  If they just did it per-unit, it could be pretty efficient.

Pre-rendering wouldn't defeat the purpose, though, as it could still save them drawing the same objects from a whole lot of different angles.  It would just be a bit strange for them to have used voxels instead of ordinary 3D meshes in that case.
Logged
Shoot-em-upper
Guest
« Reply #50 on: May 01, 2008, 02:39:57 PM »

voxels always look like s***.

Let's see here.  Now, how did voxels compare to polygons back in 1992?

Polygons(keep in mind that everything except for the girl and rocking horse is pre-rendered):



Voxels:



I really don't think that this is worth debating.  Long live ELLIPSOIDS!

« Last Edit: May 01, 2008, 06:52:58 PM by Metroidvaniac » Logged
Annabelle Kennedy
Awesomesauce
Level 8
*


♥Android Love♥


View Profile
« Reply #51 on: May 01, 2008, 02:49:01 PM »

It would just be a bit strange for them to have used voxels instead of ordinary 3D meshes in that case.

thats what i meant be defeating the purpose.

as in

"why use voxels??"

if they really are raycasted and rendered in real time im impressed.. i never wouldve thought the hardware back then capable
Logged
Zaphos
Guest
« Reply #52 on: May 01, 2008, 03:22:09 PM »

if they really are raycasted and rendered in real time im impressed.. i never wouldve thought the hardware back then capable
Voxel raycasting is pretty fast as long as your grid is coarse enough, though, and 2001 wasn't that long ago ... I hope you're not thinking of raytracing?

One easy optimization they might have done, since they're just raycasting the units, is to do a hybrid of pre-rendering and per-frame rendering: since the units are probably often not changing orientation, or are moving through the same range of orientations, you can keep a cache of renderings from common orientations.  Then the number of objects that require raycast rendering in a typical frame is quite small.  This should be especially useful when you have a whole lot of units which are identical, which is the typical case for RTSes ...
Logged
___
Vice President of Marketing, Romeo Pie Software
Level 10
*


View Profile
« Reply #53 on: May 01, 2008, 03:52:19 PM »

I thought Red Alert 2 was all raster images, sprite sheets for all the units... at least I think I remember seeing sprite sheets.
Logged
Zaphos
Guest
« Reply #54 on: May 01, 2008, 04:00:41 PM »

Assuming it's the same as Tiberian Sun (since it used an updated version of that engine), they used a hybrid approach of voxels for some buildings and armored units, but sprites for infantry.
Logged
moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #55 on: May 02, 2008, 01:19:33 PM »

Yeah Ellipsoids! too bad that technology never caught on.
I think you could do a whole game with ellipsoids nowadays (Ecstatica only used it for the characters).
It is the best of both worlds.
Logged

subsystems   subsystems   subsystems
Shoot-em-upper
Guest
« Reply #56 on: May 02, 2008, 01:26:06 PM »

Ecstatica only used it for the characters

And the floor and walls look all nubbly, because..?
« Last Edit: May 02, 2008, 10:06:47 PM by Metroidvaniac » Logged
moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #57 on: May 02, 2008, 01:49:14 PM »

I think it's because it only used 256 colours. And 3D rendering wasn't exactly stellar quality back then.
In any case, only the characters were animated.

[EDIT] I think the best tech would be to mix techniques: Polygons for walls and square stuff, ellipsoid for organics stuff and liquids and voxels for terrain.
« Last Edit: May 02, 2008, 01:52:34 PM by moi » Logged

subsystems   subsystems   subsystems
Ivan
Owl Country
Level 10
*


alright, let's see what we can see


View Profile
« Reply #58 on: May 02, 2008, 02:42:56 PM »



Logged

http://polycode.org/ - Free, cross-platform, open-source engine.
Zaphos
Guest
« Reply #59 on: May 02, 2008, 02:55:32 PM »

Ellipsoids are not a good general solution.  You can't express negative or zero curvature except by packing the ellipsoids closer than triangles, and you can't get the expected benefits of positive curvature unless the surface has enough room under it to hide the portion of the ellipsoid you're not going to use.  Additionally there are seams at the border between ellipsoids that will start to look quite bad as you add texture and animation, and ellipsoid rendering is more costly per element than triangle rendering.

Ellipsoids are actually kind of the opposite trade off from voxels -- the ideal case for voxels is when you have so many elements that typical elements are pixel or subpixel size, so you don't care about their shape.  In contrast, ellipsoids are only good when you can't process more than a few elements, and so have to carefully pick the element shape.

If you really want smooth surfaces, you probably want something more like NURBS or perhaps some LOD rendering of subdivision surfaces?  edit: Relatedly, I just found this 2006 paper by Loop and Blinn on using the GPU to render piecewise algebraic surfaces, which shows examples of objects made from Bezier tetrahedra: http://research.microsoft.com/~cloop/LoopBlinn06.pdf.
« Last Edit: May 02, 2008, 03:03:22 PM by Zaphos » Logged
Pages: 1 2 [3] 4
Print
Jump to:  

Theme orange-lt created by panic