Jump to content


Photo

Voxel Graphics


  • This topic is locked This topic is locked
57 replies to this topic

#1 3D2DGAMES

3D2DGAMES

    GMC Member

  • GMC Member
  • 859 posts
  • Version:GM:Studio

Posted 06 December 2007 - 02:22 PM

What is a voxel?
A voxel is basically a 3d sprite.

Whats the whole point?
An actual voxel has some advantages over polygons. however im uncertant that gamemaker can emulate a voxel with the same rendering speed. but if you are trying to make a game that has rough terrain or if you are in a hurry to make a model, and you absolutely stink at making 3d models, a voxel would come in handy. i dont know about you but i can make better sprites than i can 3d models.

i quote wikipidia on the article Outcast (Game) on the section Graphics Engine:

"The game uses a voxel engine to render its objects and textures. This method is purely software-based; it does not rely on any hardware-acceleration via a graphics card. A voxel engine was chosen because there is no performance hit when rendering round or curved surfaces, thus allowing for a much more detailed landscape. Had the same level of detail seen in Outcast been attempted on a hardware-accelerated polygon engine, there would have been a significant drop in performance."

"Voxels offered good picture quality without requiring advanced graphics hardware, a happy medium between software rendering and hardware-acceleration. As a result, the graphics were considered beautiful and well ahead of their time upon Outcast's release, thanks to effects such as depth of field, bump-mapping and anti-aliasing, all of which would have crippled even the most advanced graphics card of that era."

"The disadvantage of this type of CPU-intensive software-rendering was that Outcast required an extremely powerful CPU (nothing but the most powerful Intel Pentium III processors of the time, in the 500-600 MHz range) and massive amounts of RAM (128 megabytes were recommended) to run at full speed and maximum resolution (512x384). However,: these considerations can now be safely ignored, as even low-budget PCs of today fulfill those requirements."

Populer games that use voxels:
Command & Conquer: Tiberium Sun
Command & Conquer: Red Alert 2
Outcast
Master of Orion 3
Comanche
Comanche Gold
Comanche Maximum Overkill:the terrain is voxel based http://www.youtube.c...feature=related
Crysis
Delta Force
Delta Force 2
Sid Meier's Alpha Centauri
Amok
Worms 4 Mayhem uses a "poxel" (polygon and voxel)
Blade Runner


To sum it all up:
The advantages of having voxels in gamemaker are great since gamemaker has a hard time rendering full scale 3d games. also.. the appearence of the terrain isnt that bad and in Delta force 2 you are able to see very far(the terrain is voxel based).

im not completely attacking gamemakers 3d ability. though it is almost impossible to make a fully functional 3d game in gamemaker that is actually worth while it is possible. many of the 3d Dll's and 3d extentions for gamemaker expand its ability even more. however it can be hard for novices to use those abilities to make a game.

the questions:
1--if a programmer could make a 2d sprite and make another and another, ect ect then have those sprites be converted into a voxel(x and y points are on the sprite the subimg is the z value) it would help the novice 3d programmers greatly i think.

2--if it is possible to get a true voxel to work in gamemaker it could speed up its 3d ability

3--the graphics a voxel provides isnt bad. it is actually relatively good. though it doesnt compare to Halo or those really recent games it does have some potential.






note: if i was unclear on something please specify what. i wrote this post in a hurry and i got to go to school.
  • 0

  My Twitter: @Salvakiya

 

#2 xot

xot

    GMC Dismember

  • GMC Elder
  • 4780 posts
  • Version:GM:Studio

Posted 06 December 2007 - 04:52 PM

Creating a real-time marching cubes algorithm in GML is not practical. Just drawing to every pixel in the window with only draw_pixel() should clearly demonstrate that GML is FAR TOO SLOW for anything like voxels.

http://en.wikipedia..../Marching_cubes
  • 0
GMLscripts.com, rise from your grave!

#3 3D2DGAMES

3D2DGAMES

    GMC Member

  • GMC Member
  • 859 posts
  • Version:GM:Studio

Posted 06 December 2007 - 11:08 PM

would it be possible to emulate a voxel though? say drawing a face that faces the camera? i say this thinking the scale not to be one pixel on the screen but rather 5-20 for one face.
  • 0

  My Twitter: @Salvakiya

 

#4 Games

Games

    GMC Member

  • Banned Users
  • 2968 posts

Posted 07 December 2007 - 02:08 AM

The only way this would work would be if gm was pre-programmed with this instead of its current method. I did a topic about this a while ago, and I got the same reply. It's a lot better, you don't have depth problems, there are tonnes of benefits, but it's just not how gm is made.
Click to visit Toydaker.com
For Sale: 3 Editables, 40 dollars (demo on site above). Click to purchase.

#5 Yourself

Yourself

    The Ultimate Pronoun

  • GMC Elder
  • 7352 posts
  • Version:Unknown

Posted 07 December 2007 - 02:21 AM

It's a lot better, you don't have depth problems, there are tonnes of benefits


None of that is true. I would like to know where you came up with this, though. If this was really true, then voxel representations would be the standard method of rendering 3D objects. Seeing as this is overwhelmingly not true, they must not be nearly as good as you seem to think.
  • 0

#6 GearGOD

GearGOD

    Deus Verus

  • GMC Member
  • 2153 posts

Posted 07 December 2007 - 03:11 AM

Gotta admit though, interest in isosurface rendering and other alternatives is increasing because the current approach is not going to be efficient for much longer with the mesh resolution growing as it is.
  • 0
Engineers are not programmers. Stop thinking that you can save a few bucks by writing code yourself instead of hiring a programmer. Your code sucks.

#7 Games

Games

    GMC Member

  • Banned Users
  • 2968 posts

Posted 07 December 2007 - 03:21 AM

It's a lot better, you don't have depth problems, there are tonnes of benefits


None of that is true. I would like to know where you came up with this, though. If this was really true, then voxel representations would be the standard method of rendering 3D objects. Seeing as this is overwhelmingly not true, they must not be nearly as good as you seem to think.

<{POST_SNAPBACK}>


I know I'm going to lose this argument, but here's my thoughts backing up those ones..

There would be no depth problems, because like sprites, you could only have 1 voxel occupying a space. How it is right now, each face of each polygon is drawn. However, if each voxel of space was filled in, then all drawn afterwards, there would be no real overlapping at all, just a bunch of 1x1x1 cubes in space..

Maybe I don't know what Voxels are. Maybe I'm just stupid for arguing with Yourself, whom is obviously a lot smarter than I will ever be.
Click to visit Toydaker.com
For Sale: 3 Editables, 40 dollars (demo on site above). Click to purchase.

#8 GearGOD

GearGOD

    Deus Verus

  • GMC Member
  • 2153 posts

Posted 07 December 2007 - 03:24 AM

There would be no depth problems, because like sprites, you could only have 1 voxel occupying a space.

What, you've never seen sprites overlap? Culling is especially important with voxel rendering. Depth sorting is just as much of an issue as it is for any other primitives. Voxels as you said, are just cubes in space. The cubes are rendered using the same rules as any other geometry and have the same issues.
  • 0
Engineers are not programmers. Stop thinking that you can save a few bucks by writing code yourself instead of hiring a programmer. Your code sucks.

#9 Games

Games

    GMC Member

  • Banned Users
  • 2968 posts

Posted 07 December 2007 - 03:29 AM

Yes, but unlike 3d, sprites never combine. They go 1 behind the other. But in a lot of 3d games I see, two walls would be in the same space and do that weird like... scratchy glitchy thing where you can see both of the walls.

Not only that, but if you draw two floors, one smaller than the other, the voxels from the smaller should replace the ones of the bigger. That's how I imagine it...
Click to visit Toydaker.com
For Sale: 3 Editables, 40 dollars (demo on site above). Click to purchase.

#10 Yourself

Yourself

    The Ultimate Pronoun

  • GMC Elder
  • 7352 posts
  • Version:Unknown

Posted 07 December 2007 - 04:37 AM

Not only that, but if you draw two floors, one smaller than the other, the voxels from the smaller should replace the ones of the bigger. That's how I imagine it...


Why should the size the floor matter at all? If I draw a small sprite on the screen does it appear over all the other sprites?
  • 0

#11 3D2DGAMES

3D2DGAMES

    GMC Member

  • GMC Member
  • 859 posts
  • Version:GM:Studio

Posted 10 December 2007 - 01:17 PM

what if you were able to do a fake voxel in 2d. but were able to make it rotate as if it were 3d? is that possible?
  • 0

  My Twitter: @Salvakiya

 

#12 xot

xot

    GMC Dismember

  • GMC Elder
  • 4780 posts
  • Version:GM:Studio

Posted 10 December 2007 - 03:01 PM

Only possible in realtime for a small number of "voxels". Doing it in D3D with a bunch of cube primitives or camera-facing sprites would be much, much faster.
  • 0
GMLscripts.com, rise from your grave!

#13 WarriorArtiste

WarriorArtiste

    3d Creator

  • New Member
  • 1032 posts

Posted 10 December 2007 - 04:52 PM

Voxels just aren't practical. GM is very slow at processing trigonometric operations (ie. sine and cosine) and with say, a smallish environment with about 30,000 voxels, that's an enormous burden on the CPU. Not to mention the GPU (d3d_pr_pointlist isn't that fast.) Secondly, voxel graphics aren't that great (unless you consider Delta Force 2 having cutting edge graphics.) And I don't think Crysis uses voxels (though I could be mistaken.)

Edited by WarriorArtiste, 10 December 2007 - 04:55 PM.

  • 0
Ultimate 3D 2.1 April 2, 2008!

-33% of the population are Zoogles, 34% of the population are Yoodles, and 100-(34+33)% of the population are noodles. If you put this in your signature, I'm alright with that, if not, that's fine too.

#14 3D2DGAMES

3D2DGAMES

    GMC Member

  • GMC Member
  • 859 posts
  • Version:GM:Studio

Posted 10 December 2007 - 07:56 PM

although my next question eliminates the easy factor. do you think that gamemaker could handle voxels with the help of Xtreme3D or Ultimate3D?
  • 0

  My Twitter: @Salvakiya

 

#15 WarriorArtiste

WarriorArtiste

    3d Creator

  • New Member
  • 1032 posts

Posted 10 December 2007 - 08:24 PM

although my next question eliminates the easy factor. do you think that gamemaker could handle voxels with the help of Xtreme3D or Ultimate3D?

<{POST_SNAPBACK}>


Even with those DLLS, voxels would still remain a tremendous waste of CPU. Maybe someone should make a GM DLL entitled: "Voxel3d"? (It would most likely still be much slower than built in d3d.)

Edited by WarriorArtiste, 10 December 2007 - 08:26 PM.

  • 0
Ultimate 3D 2.1 April 2, 2008!

-33% of the population are Zoogles, 34% of the population are Yoodles, and 100-(34+33)% of the population are noodles. If you put this in your signature, I'm alright with that, if not, that's fine too.

#16 Torthane

Torthane

    GMC Member

  • New Member
  • 164 posts

Posted 02 January 2008 - 04:58 AM

(unless you consider Delta Force 2 having cutting edge graphics.)

<{POST_SNAPBACK}>


It's true that Delta force 2 doesn't have incredible graphics for modern standards, but consider that its an old game and with modern processers, it could have beautiful terrain graphics.

For a better example, look at Outcast. It was made in 1999 and has better grapics and larger levels than some games that were made three years after. If you were to take the same engine and put it on the top end systems today, you could have some breath taking graphics.

The last thing to take into consideration (although this can't be taken advantage of right now) is hardware that's designed for rendering voxels. Like videocards with built in environment mapping sustems and such.
  • 0

#17 HaRRiKiRi

HaRRiKiRi

    GMC Member

  • GMC Member
  • 1364 posts

Posted 02 January 2008 - 11:52 AM

Yeah, voxels can make some good graphics relative to bad hardware. For example, Outcast ran on 600mhz CPU with 128mb of ram and without hardware accelerated video. And it had bloom, bump mapping, real time shadows, reflective water and high quality terrain. It had things that was not in games till 2003. And the games in 2003 didn't run on that quality on 600mhz, 128ram PC. Even half-life had much worse graphics but the requirements were the same. I agree that is can't be used in todays games because of the optimizations made just for polygon drawing and that higher quality models would ask higher number of voxels, but still, its a lot better than GM can do now.
  • 0

#18 Kirfew

Kirfew

    GMC Member

  • New Member
  • 27 posts

Posted 02 January 2008 - 01:13 PM

The 97 computer game Blood also used voxels to render certain objects such as pickups and tombstones. Maybe you can combine the two like in Blood to balance the load on the CPU and GPU
  • 0

#19 Torthane

Torthane

    GMC Member

  • New Member
  • 164 posts

Posted 03 January 2008 - 06:49 AM

In most voxel engines, there's one object (the map) that contains all the information and has a single array. But in 2D engines, there are multiple objects each with a position and an image (or put in the same terms as voxels, an individual array that contains all the information about the 2D voxels, or pixels.) And (of course) in a 2D game, the pixels for each object are drawn relative to that object's position and rotation, whereas in a voxel engine, it's one object, so every voxel has it's position relative to the same location and has the same direction as all the other voxels do.

To make more than 1 voxel object would be more taxing, but could fix many of the graphical issues (especially with straight lines that aren't at a right angle), making them even a little bit more powerful than they currently are.

Although I don't think that voxels are a practical method of drawing things in 3D for Game Maker, I do believe that they could be made more practical than polygons, if some work was put into it, and some time was given for it to catch on.
  • 0

#20 3D2DGAMES

3D2DGAMES

    GMC Member

  • GMC Member
  • 859 posts
  • Version:GM:Studio

Posted 26 February 2008 - 08:31 PM

holy cow look what i found! someone has made a voxel engine in gamemaker. unfortunately its an exe. if you were to shrink the view scale im sure you could speed it up a little. it only got 1 frame a second on my comp :).

http://forum.thegame...ew&t=121363&b=8

thats the link. NOTE: the screenshots arent from the gm version however the gm version is pretty nice
  • 0

  My Twitter: @Salvakiya

 

#21 Solidus

Solidus

    GMC Member

  • GMC Member
  • 556 posts
  • Version:GM:Studio

Posted 27 February 2008 - 03:40 AM

There's no way you could get voxel graphics to run fast enough in GM to utilize them effectively. I think that kind of ends the discussion, unless you can find a way to make them run quickly...

Edited by Solidus, 28 February 2008 - 03:20 AM.

  • 0

#22 Yourself

Yourself

    The Ultimate Pronoun

  • GMC Elder
  • 7352 posts
  • Version:Unknown

Posted 27 February 2008 - 03:58 AM

There's very few places where using voxels would actually ever be a good idea. What voxels allow you to do is describe how some scalar quantity varies over space. For example, temperature, pressure, or density. Using it to represent 3D models or terrain is usually a waste since you don't care about what's "inside" the model, which voxels tell you about. What you care about with a model is its boundary.

For the same quality of a model, a voxel representation will always take up more memory and processing (since graphics hardware is not optimized for them) than its polygonal counterpart.

The only place I can imagine them actually being a good idea is for things like volumetric fog. Voxels could store the density (and various other properties perhaps) throughout space. A voxel representation is ideal here because fog doesn't really have any sort of boundary.

Voxels are not this great new thing that will open up new possibilities for your games. Their uses are limited.
  • 1

#23 xot

xot

    GMC Dismember

  • GMC Elder
  • 4780 posts
  • Version:GM:Studio

Posted 27 February 2008 - 07:15 AM

Fez, GDC winner for Excellence in Visual Art, uses voxels in a fresh and utterly gorgeous way. Because the game is 3D, but is designed to look like 2D pixel art, they developed something they call Trixels. The 3D elements were designed with voxels and then processed into polygonal models for use inside the game. They don't use a typical isosurface approach, but more of an orthogonal wrapping that preserves the shape and look of 2D pixel art when viewed with an orthogonal camera.

You can get a much better idea of the gameplay and Trixels from the 1Up.com GDC / IGF coverage starting at around the 13:30 mark:
http://www.1up.com/d...ite?cId=3145462

Stay tuned for a brief appearance by GMC's own cactus, who was an IGF finalist with his game Clean Asia!.

Edited by xot, 27 February 2008 - 07:28 AM.

  • 0
GMLscripts.com, rise from your grave!

#24 Solidus

Solidus

    GMC Member

  • GMC Member
  • 556 posts
  • Version:GM:Studio

Posted 28 February 2008 - 03:19 AM

It's less about how you can use voxels and more about how they appear in-game. They give the appearance of intricate pixel art. It would be incredibly difficult and time consuming to create the art that the previous executable showed.
  • 0

#25 yellowsix

yellowsix

    GMC Member

  • New Member
  • 315 posts

Posted 29 February 2008 - 07:36 PM

Aw, darn. I spent half an hour trying to use sprites in combination with surfaces and surface_getpixel() in D3D to be remembered of the fact surfaces don't work in D3D mode. :( One of the typical stupid mistakes I always make.
I think I'm going to make my own voxel file format right now to try again... ;)
Would be a heck of a lot work to make proper looking files, but I can't come up with a better solution right now.
Anyway, I'm planning to make a small "Fez"-clone. Platform mixed with 3D has always been one of my biggest game-making fantasies.
It makes a platformer WAY more challenging. ;)

Anyway, thanks for the resources. I'll stay tuned! A voxel platformer in Game Maker would be really awesome. I like the simple style of it.

Yellowsix

PS: Don't Pokémon Pearl and Diamond use voxels? All the 'models' look pretty jaggy sometimes. The simple structure of voxel graphics is perfect for RPGs, so who knows?

[EDIT]

I was thinking: wouldn't be voxels the ultimate solution for all the collision problems in Game Maker? I mean, they're just pixels with a new dimension. That's way less difficult to check than polygons. Just an idea. :D

@Solidus: C&C Tiberian Sun and Red Alert 2 use voxels, and still they look pretty decent. (always a matter of taste, of course)

Edited by yellowsix, 29 February 2008 - 08:09 PM.

  • 0
"Go thy way, eat thy bread with joy, and drink thy wine with a merry heart; for God now accepeth thy works." - Ecclesiastes 9:7

English is not my native language. Please keep this in mind.

"The ruling class has the schools and press under its thumb. This enables it to sway the emotions of the masses." ~Albert Einstein

#26 xot

xot

    GMC Dismember

  • GMC Elder
  • 4780 posts
  • Version:GM:Studio

Posted 01 March 2008 - 02:00 AM

No, Pokemon games just use scaling tricks as part of the animation. That's why they look jaggy. Most games that use voxels only use them for terrain, in which case they are not usually voxels, but rather are height-maps which much lower memory requirements and much less flexibility (only surface data with no overhanging terrain). There are some notable exceptions, such as C&C and other games. Voxel rendering can be made very fast through highly optimized assembly and highly constrained specs, but I'm afraid doing them GML is going to be slow no matter how you approach it. I think the layered sprite technique is the only viable cheat.

http://gmc.yoyogames...howtopic=349959
http://gmc.yoyogames...howtopic=268526
http://gmc.yoyogames...dpost&p=1860718
  • 0
GMLscripts.com, rise from your grave!

#27 yellowsix

yellowsix

    GMC Member

  • New Member
  • 315 posts

Posted 01 March 2008 - 10:55 AM

@xot: I meant only the 4th generation games. They have lots of 3d elements like terrain and buildings.
I assure you: those are NOT sprites. Their angles tilt a bit when you walk. Since its an RPG, and everything looks so jaggy, I got the idea that they use voxels.
But, like I said, just an idea. ^_^

[EDIT]

I'm writing a C&C vxl Dll right now. There are some pretty decent vxl editors around, so using this format spares a little time.

[EDIT]
^^^^^^^^^^^^^^^

Forget about that. Game Maker is throwing "Unexpected errors" all the time, and debugging in Visual Studio didn't help a lot.
I guess I'll have to do with standard binary functions or a fast IO dll.

Edited by yellowsix, 01 March 2008 - 05:37 PM.

  • 0
"Go thy way, eat thy bread with joy, and drink thy wine with a merry heart; for God now accepeth thy works." - Ecclesiastes 9:7

English is not my native language. Please keep this in mind.

"The ruling class has the schools and press under its thumb. This enables it to sway the emotions of the masses." ~Albert Einstein

#28 xot

xot

    GMC Dismember

  • GMC Elder
  • 4780 posts
  • Version:GM:Studio

Posted 01 March 2008 - 05:35 PM

Yeah, you are right, the DS games Pokemon Diamond and Pearl use 3D, but not voxels. Buildings, sign posts, and many props are 3D polygonal constructions, while characters, trees, grass, and some objects are 2D billboard sprites in a 3D world. Stuff looks jaggy because of the low resolution display and lack of antialiasing.
  • 0
GMLscripts.com, rise from your grave!

#29 yellowsix

yellowsix

    GMC Member

  • New Member
  • 315 posts

Posted 01 March 2008 - 10:31 PM

Yeah, I justed played for a few minutes and realized everything has way too much detail to exist from voxels. Still a nice render engine, though. I like the thin grey outlines models have. Nintendo really knows how to get the max out of their system.
  • 0
"Go thy way, eat thy bread with joy, and drink thy wine with a merry heart; for God now accepeth thy works." - Ecclesiastes 9:7

English is not my native language. Please keep this in mind.

"The ruling class has the schools and press under its thumb. This enables it to sway the emotions of the masses." ~Albert Einstein

#30 apegomp

apegomp

    GMC Member

  • New Member
  • 2 posts

Posted 04 March 2008 - 05:54 PM

BUMP FOR GREAT JUSTICE.
Voxels render polygons obsolete.
Try my voxel map, powered by Ken Silverman's awesome voxel engine:
http://voxelstein3d.blogspot.com/

DEATH TO POLYS!! >:lol: >:)
  • 0

#31 Yourself

Yourself

    The Ultimate Pronoun

  • GMC Elder
  • 7352 posts
  • Version:Unknown

Posted 04 March 2008 - 06:35 PM

If you're willing to have a game that looks like it's from the early 90s, then yeah, I guess polygons are obsolete.

Polygons:

http://www.unrealtec...rendering-7.jpg

Voxels:

http://bp2.blogger.c...-h/KVX50007.PNG

Yeah, though choice.
  • 0

#32 xot

xot

    GMC Dismember

  • GMC Elder
  • 4780 posts
  • Version:GM:Studio

Posted 04 March 2008 - 07:03 PM

Moore's Law will probably make voxels more viable and attractive than polygon rasterization in the future, much like what is beginning to happen with real-time ray tracing (which is where I'd put my zorkmids).
  • 0
GMLscripts.com, rise from your grave!

#33 Yourself

Yourself

    The Ultimate Pronoun

  • GMC Elder
  • 7352 posts
  • Version:Unknown

Posted 04 March 2008 - 07:27 PM

I don't know. There's a slight difference there. In the 2D case, the projection is something that's fixed. A rasterized graphic will look the same everywhere. In 3D, that's no longer the case. Voxels would be great for something like a 3D printer, but I really don't see it happening in games outside of specialized uses such as fog or other volumetric effects. Voxels can more concisely represent things like that than polygons can.

In 2D, vector graphics have to get rasterized into a 2D image anyway. In 3D, all graphics, vector or voxel, have to be rasterized into a 2D image. Admittedly I haven't looked into any algorithms for voxel rendering, but it certainly isn't as simple as memory copying like in 2D.

What leaves me so skeptical is that I have yet to see a voxel implementation, no matter how slow it might be, that actually demonstrates them as a replacement for polygons. The result would actually have to look better and, so far, I've never seen anything done with voxels that looks even as good as what's been done with polygons except for some special cases.

For most geometry, what's important to you is its boundary. Why waste memory on its interior if you're never going to see it?
  • 0

#34 apegomp

apegomp

    GMC Member

  • New Member
  • 2 posts

Posted 04 March 2008 - 07:52 PM

For most geometry, what's important to you is its boundary.  Why waste memory on its interior if you're never going to see it?

Yeah, and why waste memory on freedom? :lol: In a voxel world, you can interact with everything, you can destroy walls, dig deep tunnels underground, chop down trees (and see their interior)

Real-time 3D Raster ray tracing engines will eventually replace those obsolete boring lifeless and static polygon engines when the memory bus/bandwidth speed bottleneck problem has been solved.

VIVA VOXEL! :)

Edited by apegomp, 04 March 2008 - 08:00 PM.

  • 0

#35 Yourself

Yourself

    The Ultimate Pronoun

  • GMC Elder
  • 7352 posts
  • Version:Unknown

Posted 04 March 2008 - 09:15 PM

In a voxel world, you can interact with everything, you can destroy walls, dig deep tunnels underground, chop down trees (and see their interior)


At the expense of memory and processing power, which is true of anything. You could do these things in a polygon based setting given the memory and processing power. Voxels just make it easier at the expense of wasting memory on things you may never see or interact with. The availability of memory will never change the fact that it's a waste of memory.

Both ways have their merits and applications and it's unlikely that one could ever supersede the other. Despite the move to raster graphics, people still use vector graphics because they have advantages over raster graphics.
  • 0

#36 GearGOD

GearGOD

    Deus Verus

  • GMC Member
  • 2153 posts

Posted 05 March 2008 - 07:28 PM

For most geometry, what's important to you is its boundary. Why waste memory on its interior if you're never going to see it?

There's a whole range of phenomena that current graphics hardware is ill-equipped to deal with. Very prominent ones are transparency and relatives like subsurface scattering. Then there's volumetric effects of any sort. Yes its not a huge issue today but in the future it certainly will be (if you work with dx10, it already is), and polygons will not be the answer. If I want to render smoke, I can either simulate the volume and then plop samples from it into a geometry shader to make a bunch of particle polygons to render with massive overdraw, or I can drop the whole polygon notion and render it as a volume straight from the sim.
Posted Image
or
Posted Image
Your choice.

At the end of the day, we're starting to ask for more than polygons can offer and have to use trickery to reduce the load on the graphics bus like subdivision directly on the gpu to get more detail. I think their days are numbered.
  • 0
Engineers are not programmers. Stop thinking that you can save a few bucks by writing code yourself instead of hiring a programmer. Your code sucks.

#37 Yourself

Yourself

    The Ultimate Pronoun

  • GMC Elder
  • 7352 posts
  • Version:Unknown

Posted 05 March 2008 - 11:57 PM

Very prominent ones are transparency and relatives like subsurface scattering. Then there's volumetric effects of any sort.


And I've mentioned things like this previously.

I think their days are numbered.


And what we especially need to do is stop treating all of this as a one or the other but not both thing. One will never replace the other because they have completely different strengths and uses.

Look at the 2D situation. Vectors were never completely replaced with raster methods. Vectors are still popular in 2D games. Why can't this be the case with 3D games?
  • 0

#38 GearGOD

GearGOD

    Deus Verus

  • GMC Member
  • 2153 posts

Posted 06 March 2008 - 02:06 AM

I really do start to question the value of polygons when we're employing techniques where we pass the majority of the detail to the gpu as images which are unpacked to represent the detail on the fly, whether as generated subdivision polygons or per-pixel solutions like displacement mapping.
Research isn't going so much into pushing more polygons through the bus as into using low polygon geometry to represent per-pixel detail. I guess this isn't an argument for voxels, but certainly against polygons.
  • 0
Engineers are not programmers. Stop thinking that you can save a few bucks by writing code yourself instead of hiring a programmer. Your code sucks.

#39 yellowsix

yellowsix

    GMC Member

  • New Member
  • 315 posts

Posted 06 March 2008 - 08:59 AM

Voxels are closer to reality than polygons. I mean, your arm, for example, isn't made of a whole bunch of 'vertexes' connected to each other. Cells or crystals affect the color of an object, not a texture.
On the other hand, voxels seem to put more weight on your graphics card than polygons, but I think thats just because the hardware is optimized to display polygons, not voxels.
If someone ever finds a 'perfect' way of shading and projecting voxels, I think it would become a pretty good alternative. C&C games Tiberian Sun and Red Alert 2 have a pretty good way of shading. It works with a seperate normals channel, which determine on what angles they reflect light. The voxels still look pretty jaggy, but hey, those things are like 20x20x20 big.

The problem is that almost the whole rendering/modeling part of computer science is based on polygons, so bringing back voxels needs a heck of a lot research. It will take years to get it to the same level as polygons are right now.
Voxels are used more than most people think, though. 3D scanning of real-life objects for movies, games, etc. is usually done with voxels. After that, its being smoothed to polygons.
Logical choice, since digital camera's use pixels, not vectors.

Who knows, voxels might shed a new light on the whole 3D concept! :P

Edited by yellowsix, 06 March 2008 - 09:02 AM.

  • 0
"Go thy way, eat thy bread with joy, and drink thy wine with a merry heart; for God now accepeth thy works." - Ecclesiastes 9:7

English is not my native language. Please keep this in mind.

"The ruling class has the schools and press under its thumb. This enables it to sway the emotions of the masses." ~Albert Einstein

#40 WarriorArtiste

WarriorArtiste

    3d Creator

  • New Member
  • 1032 posts

Posted 09 May 2008 - 12:25 PM

Voxels are closer to reality than polygons. I mean, your arm, for example, isn't made of a whole bunch of 'vertexes' connected to each other. Cells or crystals affect the color of an object, not a texture.
On the other hand, voxels seem to put more weight on your graphics card than polygons, but I think thats just because the hardware is optimized to display polygons, not voxels.
If someone ever finds a 'perfect' way of shading and projecting voxels, I think it would become a pretty good alternative. C&C games Tiberian Sun and Red Alert 2 have a pretty good way of shading. It works with a seperate normals channel, which determine on what angles they reflect light. The voxels still look pretty jaggy, but hey, those things are like 20x20x20 big.

The problem is that almost the whole rendering/modeling part of computer science is based on polygons, so bringing back voxels needs a heck of a lot research. It will take years to get it to the same level as polygons are right now.
Voxels are used more than most people think, though. 3D scanning of real-life objects for movies, games, etc. is usually done with voxels. After that, its being smoothed to polygons.
Logical choice, since digital camera's use pixels, not vectors.

Who knows, voxels might shed a new light on the whole 3D concept! :P


Whose going to define each cell of a "voxel mesh"? Texturing polygons is a lot easier. I think what where going to see in the near-future is quantum-standard computing fusions, along with dual voxel-polygon accelerated graphics devices.
  • 0
Ultimate 3D 2.1 April 2, 2008!

-33% of the population are Zoogles, 34% of the population are Yoodles, and 100-(34+33)% of the population are noodles. If you put this in your signature, I'm alright with that, if not, that's fine too.

#41 yellowsix

yellowsix

    GMC Member

  • New Member
  • 315 posts

Posted 09 May 2008 - 12:43 PM

Whose going to define each cell of a "voxel mesh"? Texturing polygons is a lot easier. I think what where going to see in the near-future is quantum-standard computing fusions, along with dual voxel-polygon accelerated graphics devices.

It is a heck of a lot faster, but less closer to reality.
Rendering each 'cell' wouldn't make sense though.
I get your point. :P
Polygons kick voxel ass! :D (not sure voxels have asses, though)

Edited by yellowsix, 09 May 2008 - 12:44 PM.

  • 0
"Go thy way, eat thy bread with joy, and drink thy wine with a merry heart; for God now accepeth thy works." - Ecclesiastes 9:7

English is not my native language. Please keep this in mind.

"The ruling class has the schools and press under its thumb. This enables it to sway the emotions of the masses." ~Albert Einstein

#42 CrazyIvan/Beaker

CrazyIvan/Beaker

    GMC Member

  • GMC Member
  • 54 posts

Posted 23 January 2011 - 03:11 PM

Red Alert 2 and Tiberian Sun both use pre-made voxels, probably imported and drawn as a single model instead of a thousand single points. If there was one, a .dll could be used to load voxels, and then you'd have a game using voxels at a practical speed.
  • 0

#43 Rani_sputnik

Rani_sputnik

    GMC Member

  • GMC Member
  • 456 posts
  • Version:GM:Studio

Posted 02 February 2011 - 08:58 AM

And what we especially need to do is stop treating all of this as a one or the other but not both thing. One will never replace the other because they have completely different strengths and uses.


So true! There is an example on this community of Tebe doing just that (granted it is 2d but he also made a 3d version in C++ I believe, view it here.)
It is a cross between voxels and models. Instead of simply using blocks, all the terrain values are interpolated so that the terrain data can be reduced while still maintaining a high level of quality.

Obviously there are problems, namely in the way triangles are wasted and some minor issues with LOD, and certainly THIS isn't the future of rendering but it would be a great engine for destructable terrain, (Imo that is the biggest advantage of voxels over polys)
  • 0

My games - In DecemberBoy Goes to Space, Proleague (Facebook & Kongregate), Making WayJam Tart (GMCJam#14)

Currently working on FloxGM - All-in-one backend for leaderboards, scores, cross device saves and analytics

Check out my website: ryanloader.me, or follow me: twitter.com/RaniSputnik


#44 Ultimate Omicron

Ultimate Omicron

    one more time

  • GMC:Member
  • 863 posts
  • Version:GM:Studio

Posted 02 February 2011 - 07:03 PM

As it has been aready said, voxels may be useful in realtime fluid simulations. Recently i found an nVidia fluid example which was clearly made of individual shaded particles. It looked quite right, except for the fact that the shader ignored the depth and mixed close drops with far ones. And it was laggy with increasing water volume. So that is an area where voxels are in fact useful, for the surface of the fluid is a very hard thing to triangulate.

I just thought that voxels are, in some way, a tridimensional shader, for they assume polygonal shapes depending on the actual shape they try to represent. So what they do for the 3D space is similar to what a shader does for 2D space. Like if you can have a 3D shader that antialiases a shape.

And i agree that it would be a waste to explore voxels in Game Maker. At least for now. Implementing a BSP architecture seems much more interesting, and it it a vectorial system, opposed to cubes. I admit i like the control of the 2D space that is achieved through pixelation, but still, it certainly does not apply to 3D space unless the rate of rendered cubes/screen pixels can be approximated to 1. In a perfect rate of 1 cube per pixel, the level of detail of the environment would be superior to anything ever seen in realtime graphics. even better, it would open possibility to an atomic engine, where voxels are 'atoms' that build all seen objects, allowing for realtime modification of the scene through actual physics. However, with current hardware, that is an utopic situation.

I believe the ultimate scenario for computer graphics does not mean smaller pixels or more polygons. It would mean using a mathematical engine for natively drawing surfaces of any shape, without having to decompose it in triangles to be rendered. I mean, it is the same thing as if the rate poly/pixel is 1: every polygon becomes a pixel, which makes polygons useless compared to point particles, which is a voxel-atom engine.

Still, that is a thing to be explored in hardware of the future. and possibly never in Game Maker.

new-game-plus.com


#45 Yourself

Yourself

    The Ultimate Pronoun

  • GMC Elder
  • 7352 posts
  • Version:Unknown

Posted 02 February 2011 - 07:41 PM

So that is an area where voxels are in fact useful


Except what you're talking about isn't voxels, you're talking about discrete particles.

I just thought that voxels are, in some way, a tridimensional shader


Just as pixels are a 2D shader? No. Voxels are the 3D extension of pixels: a regular grid of values in 3D. That's all they are.

It would mean using a mathematical engine for natively drawing surfaces of any shape, without having to decompose it in triangles to be rendered


Something has to be discretized for it to be displayed. Either the surface itself (rendering as triangles or voxels) or the screen space (the way ray-tracers work). Either way, something is working in the discrete domain.
  • 1

#46 Ultimate Omicron

Ultimate Omicron

    one more time

  • GMC:Member
  • 863 posts
  • Version:GM:Studio

Posted 02 February 2011 - 10:41 PM

I think i'm confusing the concept of voxel and marching cubes.
so i meant Marching Cubes for all that.

i called it a 3D shader because the marching cubes have different 'typefaces' that can be applied to represent shapes, so if the typefaces are customized, it can change the appearance of a model as some sort of cheap tesselation.

and the last quote, i meant that you can define a model composed of shapes, and the rendering system is responsible to accurately represent that volume using pixels (edit: like vectorial drawing programs). i assume that's not clear the way i wrote it.

edit: i'm not native to english, so i only spot inconsistences the fifth time i read what i wrote.

Edit:
i just remembered a method that i used to make fake 3D out of sprites, that with some adaptation, may be applicable to 3D perspectives aswell. I used to call it slicemodel. It was a sprite with several subimages corresponding to XY slices of the model, which i would draw slightly translated to make it feel like there was volume. seemed very promising, i almost made a game out of it. i could even make animated models with that system.

so how that applies to this topic?

well, we could make a script that runs once at the beginning and precompiles a voxel model into such slices. but not only XY slices, for that would be insufficient. it would need 3 sets of slices, XY, XZ, and YZ slices. then, drawing those slices is certainly faster than drawing individual cubes, and the final result should not be much different. however, that requires all models to be static... unless, we can use a global 'voxelation' model, composed of lots of orthogonal surfaces, in which a tiled surface can be used as a changing texture. it's a very complicated engine, but it should reduce the code overhead by a square root, since it groups voxels in planes to be drawn. made a siple scheme to describe the method:
Posted Image

Edited by -=ReNeX=-, 03 February 2011 - 03:52 PM.

new-game-plus.com


#47 Manuel777

Manuel777

    InvaderGames

  • GMC Member
  • 3554 posts
  • Version:GM:Studio

Posted 04 February 2011 - 03:31 PM

@Renex; I tried that few times with no success at all, can you provide a simple example? the problem i had was the crappy way GM handles depths in 3d (wich, appeareantly, is handled in the same way as 2d )
  • 0

#48 Ultimate Omicron

Ultimate Omicron

    one more time

  • GMC:Member
  • 863 posts
  • Version:GM:Studio

Posted 04 February 2011 - 07:03 PM

Actually, that was just an idea. it's such an amount of work to put that together that only someone which is going to actively use it should start working on it. Still, after the system is done, it can be reused indefinitely.
Anyways, i'll try to come up with something.

Edit: now that i read your post 3 times, i noticed you're having depth issues with 3D and surfaces. Did you include SurfaceFix in your test?

Edit: i think i will name this method 'plaxels' for the planes.

Edit: i was going to make fully closed cubes, but to cut poly count in half i will make 3-sided open cubes.
i'm making the example now, there will be a sphere model and a weirdly-shaped mech thing to test.

Edit: it's almost done now...

Edit: it's done! here's the download: Mediafire

Edited by -=ReNeX=-, 04 February 2011 - 09:46 PM.

new-game-plus.com


#49 Ultimate Omicron

Ultimate Omicron

    one more time

  • GMC:Member
  • 863 posts
  • Version:GM:Studio

Posted 07 February 2011 - 05:43 PM

Anyone tested it? i spent 2h30 to do that. Please comment on the example, i really think it is a valid technique.

new-game-plus.com


#50 Greenblizzard

Greenblizzard

    GMC Member

  • GMC Member
  • 415 posts
  • Version:GM:Studio

Posted 07 February 2011 - 07:26 PM

I wanted to test it, but only have Pro for my GM7. Your technique sounded very familiar to something I was working on around the summer of last year.
http://www.host-a.ne...tetovoxels4.gmk
It's all a bit messy, and done inside objects and not in scripts, but it creates the other axis planes by using a surface. I also tried to do a real time paint function, but I wasn't able to make it work properly, too confusing.
Some pictures:
The basic idea
Dirt, grass, tree, 16^3
Man in cube, 16^3
8-bit Link. Fail-ish, 16^3 Link was done with my real-time painting :)
Grass, tree, 64^3
Grass, tree, 32^3

Edited by Greenblizzard, 07 February 2011 - 07:29 PM.

  • 1

2a7ubuv.jpg





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users