A new idea...i think
by Jeff Raab · in Torque Game Engine · 09/26/2004 (11:25 am) · 23 replies
I have decided to take a (rather) ambitious project into my hands.
In an effort to see what Torque is capable of(as well as myself) ill shall work to make a alternate system for rendering terrain. It shall use voxels. the voxels will follow a height map(which is what torque uses as i understand) so it shouldnt be too far off from the current style.
Now dont go telling me this cant be done, cause i know it can, and i have the free time to make it.
I just want your general opinions on this.
So: What do you think of this project, im curious what the more veteran peoples here think.
In an effort to see what Torque is capable of(as well as myself) ill shall work to make a alternate system for rendering terrain. It shall use voxels. the voxels will follow a height map(which is what torque uses as i understand) so it shouldnt be too far off from the current style.
Now dont go telling me this cant be done, cause i know it can, and i have the free time to make it.
I just want your general opinions on this.
So: What do you think of this project, im curious what the more veteran peoples here think.
#2
thats one of the main reasons for this. :)
i would have to say that the biggest downer of voxels are the blockyness, and i have seen(on other engines) that by adding antisopering(baad spelling) and bilinear filtering(or tri, havent seen that yet though) it smooths it amazingly.
09/26/2004 (11:37 am)
Well, i know for a fact that voxels have benifits, such as a lower render time than polygons(because they dont need to be ordered and all the fun matrix calculations :s) plus another thing you wont get with polygonal terrain is destructability. with voxels you can have completely destructable terrain, carving tunnels and more :)thats one of the main reasons for this. :)
i would have to say that the biggest downer of voxels are the blockyness, and i have seen(on other engines) that by adding antisopering(baad spelling) and bilinear filtering(or tri, havent seen that yet though) it smooths it amazingly.
#3
advsys.net/ken/voxlap/voxlap03.htm <- voxlap page
advsys.net/ken/ <- ken's page
EDIT: oh yeah, I believe these demos are all done in software. Hardware is not really built for voxel engines, so you might run into some problems making the engine actually run at a respectable rate. I read that the RTS "Perimeter" used a poly/voxel hybrid method for their (really nice looking) terrain, unfortunately I've also heard that the game runs like crap :)
09/26/2004 (12:03 pm)
If you haven't seen it, you should look at Ken Silverman's (of BUILD engine fame) voxel work. The voxlap demo is incredibly cool.advsys.net/ken/voxlap/voxlap03.htm <- voxlap page
advsys.net/ken/ <- ken's page
EDIT: oh yeah, I believe these demos are all done in software. Hardware is not really built for voxel engines, so you might run into some problems making the engine actually run at a respectable rate. I read that the RTS "Perimeter" used a poly/voxel hybrid method for their (really nice looking) terrain, unfortunately I've also heard that the game runs like crap :)
#4
wish me luck ill get cracking on this shortly.
09/26/2004 (1:27 pm)
Actually, i was talking to him, and he's willing to work with me to some degree, and he's letting me use parts of voxlap to get it done :)wish me luck ill get cracking on this shortly.
#5
09/26/2004 (2:25 pm)
Cool! Good luck! Be sure to post some screenshots once you get some stuff working.
#6
if i can, i want to make a fall back so if you choose to, you can use good old ploygonal terrain.
about hybrid system: im planning for most objects and the terrain to be voxel based, but people and certain objects shal remain polygon based.
part of it will depend on the material system that ill be implementing as well.
09/26/2004 (3:16 pm)
Heh, thx, but make no mistake, this is a doozy of a project.if i can, i want to make a fall back so if you choose to, you can use good old ploygonal terrain.
about hybrid system: im planning for most objects and the terrain to be voxel based, but people and certain objects shal remain polygon based.
part of it will depend on the material system that ill be implementing as well.
#7
Awesome isn't it? Actually working out some details in your head instead of jumping right in and seeing what happens? Thinking is da bomb.
We need more people around here that think.
09/26/2004 (3:42 pm)
Quote:A new idea...i think
Awesome isn't it? Actually working out some details in your head instead of jumping right in and seeing what happens? Thinking is da bomb.
We need more people around here that think.
#8
glad i do it on a semi-often basis :P
if you guys have any suggestions or opinions, i wanna hear them.
09/26/2004 (3:52 pm)
Hehe, yea thinking works :)glad i do it on a semi-often basis :P
if you guys have any suggestions or opinions, i wanna hear them.
#9
09/26/2004 (4:02 pm)
I cant even 'think' about helping you because I have no idea what you are talking about, lol. But it sounds pretty nifty.
#10
this would allow destructable levels faster trendering, and a bunch more stuff.
09/26/2004 (4:12 pm)
Basically, im making an alternate way of rendering the terrain and objects in torque. instead of polygons id be using voxels(VOlumetric piXELS)this would allow destructable levels faster trendering, and a bunch more stuff.
#11
To answer your original post now that I understand....
Yes, I think this would be worth it if you are confident you can do it, and you want to do it. I would LOVE to see some terrain improvements made in regards to destructable, faster, etc... If you need testors, I would be will to help as best I can.
What I really would like to see is for rendered terrain to be more robust in ways such as this...
In TGE you can set a materialPropertyMap to set off certain sound effects based on the texture you are currently walking on. This should be expanded to allow foiledge properties to be assigned as well. What I mean is, I would like to be able to take a basic grass texture, load it up into the Terrain Editor, define certain types of foiledge to it and then save that texture as a datablock of it's own. Then, no matter where I paint that texture on the terrain, the predefined foiledge is painted with it. There is no reason this can't be done. I'm talking for editing purposes of course, and not in game, so resource intensive is not an issue.
Basically a combination of the materialMap married to the fxReplicator somehow to speed level development. But thats for a later date. First things first, lol.
Another thing I would like to see implemented if you are going to go through all this trouble is more landscape control. This repeating block terrain of TGE is wearing thin these days.
I would rather have TGE's blocks, one at a time, and the ability to add them as I need them and change them individually. What would ultimately be pretty sweet is a map painter. Start with an empty grid and start painting on terrain. As in not painting a texture like we do now, paint on the terrain and have it render as we go. Make the map as big or as little as you need it and then have TGE cap the loose ends automatically. Stuff like that would be cool.
09/26/2004 (4:33 pm)
When you put it that way, it sounds great!!! Dynamic terrain(destructable) would definately be the bomb and who is going to argue against faster rendering? Wish I could help you, but I still do not know the first thing about programing voxels.To answer your original post now that I understand....
Yes, I think this would be worth it if you are confident you can do it, and you want to do it. I would LOVE to see some terrain improvements made in regards to destructable, faster, etc... If you need testors, I would be will to help as best I can.
What I really would like to see is for rendered terrain to be more robust in ways such as this...
In TGE you can set a materialPropertyMap to set off certain sound effects based on the texture you are currently walking on. This should be expanded to allow foiledge properties to be assigned as well. What I mean is, I would like to be able to take a basic grass texture, load it up into the Terrain Editor, define certain types of foiledge to it and then save that texture as a datablock of it's own. Then, no matter where I paint that texture on the terrain, the predefined foiledge is painted with it. There is no reason this can't be done. I'm talking for editing purposes of course, and not in game, so resource intensive is not an issue.
Basically a combination of the materialMap married to the fxReplicator somehow to speed level development. But thats for a later date. First things first, lol.
Another thing I would like to see implemented if you are going to go through all this trouble is more landscape control. This repeating block terrain of TGE is wearing thin these days.
I would rather have TGE's blocks, one at a time, and the ability to add them as I need them and change them individually. What would ultimately be pretty sweet is a map painter. Start with an empty grid and start painting on terrain. As in not painting a texture like we do now, paint on the terrain and have it render as we go. Make the map as big or as little as you need it and then have TGE cap the loose ends automatically. Stuff like that would be cool.
#12
so despending what texture is currently applied ot the voxels(or you can add it manually when i get it all set up) so that will all be set to all the terrain, and objects. :)
glad to get some opinions :D
09/26/2004 (4:44 pm)
Well i plan for it to follow a height map system as of the moment. and the material system will be coded directly into the voxels themselves :Pso despending what texture is currently applied ot the voxels(or you can add it manually when i get it all set up) so that will all be set to all the terrain, and objects. :)
glad to get some opinions :D
#13
This has already been done in Torque. The FxReference class is what you're looking for, and then combine it with FxGrass or whatever, and there you go. It's not realtime, but works just as well.
09/26/2004 (5:27 pm)
@Gonzo T. Clown said:Quote:
What I mean is, I would like to be able to take a basic grass texture, load it up into the Terrain Editor, define certain types of foiledge to it and then save that texture as a datablock of it's own. Then, no matter where I paint that texture on the terrain, the predefined foiledge is painted with it.
This has already been done in Torque. The FxReference class is what you're looking for, and then combine it with FxGrass or whatever, and there you go. It's not realtime, but works just as well.
#14
basically, the biggest obstical im gunna hit while coding this is the fact that the voxlap code that im using atm doesnt support the z-buffer, so it cant be used by anything but software.
if anyone knows a way around that it would speed up things greatly, instead of rewriting that section of code, though 3d accelerated voxels would completely pawn polys....
09/26/2004 (5:33 pm)
Yea i had heard about that. might get that applied to this as well.basically, the biggest obstical im gunna hit while coding this is the fact that the voxlap code that im using atm doesnt support the z-buffer, so it cant be used by anything but software.
if anyone knows a way around that it would speed up things greatly, instead of rewriting that section of code, though 3d accelerated voxels would completely pawn polys....
#15
09/26/2004 (5:51 pm)
And with voxels you can do stuff like have caves without the "top" of the cave being a seperate model. Imagine a game where you're digging to the center of the earth (like the B-movie "The Core") and you have a perfect application of where voxels are better than heightmaps. I'd just be concerned about the performance hit...
#16
seeing as voxels self cull, work with lighting, render faster, have their own collisions, and can be moved and blown apart, voxels are far better than polygons, but getting the 3d acceleration issue is the onlything slowing them down. this is something i will be deeply working on, and if anyone has ANY suggestions, i would be willing to look into it. Ken is also very excited, and he would be thrilled if we cracked the 3d accel problem.
please, ideas are most welcome :)
09/26/2004 (5:55 pm)
Like said, voxels render faster than polygons, and if you take a run at Ken's voxlap you'll see you can do all of that at great frame rates. the thing is, thats all software render, taking almost none of the video card's power, which is something i very much want to do. if voxels were to be 3d accelerated, it would scare me at the frame rates you could get :oseeing as voxels self cull, work with lighting, render faster, have their own collisions, and can be moved and blown apart, voxels are far better than polygons, but getting the 3d acceleration issue is the onlything slowing them down. this is something i will be deeply working on, and if anyone has ANY suggestions, i would be willing to look into it. Ken is also very excited, and he would be thrilled if we cracked the 3d accel problem.
please, ideas are most welcome :)
#17
09/26/2004 (6:12 pm)
@Reno: Running around in his demo is not the same as simulating a fully functional 3d game engine. It will be slower in TGE, because there are so much else for the CPU and GPU to do, than Ken's demo.
#19
in his demo the gpu is doing pretty much no work. if we were to make more use of the GPU things would run ALOT smoother
09/26/2004 (7:26 pm)
Stefan: thats why i would like to get 3d accel going. it would help things alot.in his demo the gpu is doing pretty much no work. if we were to make more use of the GPU things would run ALOT smoother
#20
Oh but then you would need to do it with TSE, not TGE...
09/26/2004 (9:18 pm)
Could you make a shader to render voxels? I dont know the first thing about voxels but if you could somehow harness the GPU through a shader then that could allow you to do 3d acceleration...Oh but then you would need to do it with TSE, not TGE...
Associate David Montgomery-Blake
David MontgomeryBlake
It seems like there was, but it may have been resolved or given up on.
Regardless, it is an interesting idea. I remember an excellet assembler program under 5k that would generate a randomized voxel lanscape that you could fly over in mode-x. Ah, the days of rec.games.programmer and comp.graphics.algorithms... Back when Brian Hook was often told that he'd never make it in the industry because his matrix optimizations would never work. Later the optimizations were added into the Quake codebase...