It is currently Sat Aug 22, 2020 4:17 am


All times are UTC




Post new topic Reply to topic  [ 95 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6 ... 10  Next
Author Message
 Post subject: Re: Introduce yourself!
PostPosted: Wed Dec 08, 2010 9:00 pm 

Joined: Wed Dec 08, 2010 5:54 am
Posts: 27
Hey David! Awesome work =)

Quote:
Are you using shaders or the fixed function pipeline? I don't think the lack of VBOs is a problem, but if you don't have access to shaders then you'll need to generate the texture coordinates on the CPU instead. I think this should still be possible, but I haven't thought about it much.


Don't have any shaders sadly, it's the first Asus EEEPC model ever released. Intel GMA 900 with OpenGL 1.1 and thanks for all the fish.


Quote:
Also, have a look at this thread: viewtopic.php?f=2&t=87


I saw that thread, didn't understand one bit of it (I haven't learned shaders yet, professionally I come from 2D console game development and, as a hobbie, I simply don't have the hardware to work with).
Regardless, fragment programming won't help me =(


Quote:
You mean for the volume data or the meshes? A couple of people have mentioned they would like better compression of the volumes so it will happen at some point. This weekend I'll make my todo list public so you guys have some idea what is coming.


I have dynamic chunk load/saving with RLE to disk, going from 128kb to 5kb in like 2 picoseconds.
I meant merging coplanar facets, using what beyzend had done in this thread.
Seeing as beyzend code is for PositionMaterial voxels and I use PositionMaterialNormal (And couldn't get that to work), I'm mashing some code of my own to merge those faces. Something more general and separate from mesh extraction.

Quote:
Again, if you have access to shaders then you can generate normals in the pixel shader. If you don't have shaders then you are stuck with CubicExtractorWithNormals.


Yup, that's me =(
At least, I got Polyvox to work with Boost instead of VS2010. That sucker got my lil' netbook on overdrive =(

I'll keep you posted ;)


Top
Offline Profile  
Reply with quote  
 Post subject: Re: Introduce yourself!
PostPosted: Wed Dec 08, 2010 9:50 pm 
Developer
User avatar

Joined: Sun May 04, 2008 6:35 pm
Posts: 1827
onimatrix wrote:
Don't have any shaders sadly, it's the first Asus EEEPC model ever released. Intel GMA 900 with OpenGL 1.1 and thanks for all the fish.

The I'll be interested how it works out, and in particular where you find that the bottlenecks are. I tried running Thermite on my girlfriends laptop and the performance wasn't great, but I didn't have the resources to investigate the problem (she might not even have had proper drivers installed). Your framerate is already looking much better.
onimatrix wrote:
Regardless, fragment programming won't help me =(

Then we'll have to think about texturing. I imagine that for each vertex you will want to provide several sets of texture coordinates. Something like this (pseudocode, as my OpenGL is rusty!):
Code:
glBegin(...).
glVertex(xPos, yPos, zPos);
glTexcoord2D(xPos, yPos);
glTexcoord2D(xPos, zPos);
glTexcoord2D(yPos, zPos);
glEnd(...);

onimatrix wrote:
I have dynamic chunk load/saving with RLE to disk, going from 128kb to 5kb in like 2 picoseconds.

Is this using some existing library or your own code? I was going to roll my own simple RLE compresser (I alrady have some code actually and it's just 100 lines or so) but I'm open to other ideas. I'm trying not to introduce external depenancies, though.
onimatrix wrote:
I'm mashing some code of my own to merge those faces. Something more general and separate from mesh extraction.

I already have something like this, but it's a mess and only works with the Marching Cubes surface so far (not the Minecraft-style cubic surface). 'SurfaceMesh<VertexType>::decimate' is the place to look if you are curious, not to be confused with 'Mesh::decimate...' which is to be deleted.

Anyway, I'll look forward to seeing how you get on :-)


Top
Offline Profile  
Reply with quote  
 Post subject: Re: Introduce yourself!
PostPosted: Wed Dec 08, 2010 11:33 pm 

Joined: Wed Dec 08, 2010 5:54 am
Posts: 27
Quote:
Your framerate is already looking much better.


That's a screenshot from my work's PC. I get 200-500 FPS in my netbook, using GMABoost to overclock the beast for 10-25% more FPS.

Code:
glTexcoord2D(xPos, yPos);
glTexcoord2D(xPos, zPos);
glTexcoord2D(yPos, zPos);


That looks yummy, I'll have to eat it (And then show you something functional!).

Quote:
Is this using some existing library or your own code?


My own code, about 100 lines too. If I ever introduce the 3byte runlenght (Making stuff like "aaabbcddde" compress to "aa1bb0cdd1e" instead of "a3b2c1d3e1"), I'll post the code.
Still, this second method works better with larger entropy data. Maybe compressing volumes works better with simple RLE.
On the other hand, I have been trying to find a good way to compress mesh data, as extracting the mesh takes about 80% more time than loading from an uncompressed file.
I got to merge triangles into quads today, reducing the vertex index file weight by 25%.
Next step is merging adjacent coplanar quads :)

Quote:
I already have something like this, but it's a mess and only works with the Marching Cubes surface so far (not the Minecraft-style cubic surface). 'SurfaceMesh<VertexType>::decimate' is the place to look if you are curious, not to be confused with 'Mesh::decimate...' which is to be deleted.


Yeah, I looked into that function while trying to simplify the mesh.
Didn't work, of course =p

I know what it's like to have a library on the works, documentation changing revision by revision and stuff. Still, I almost gave up after seeing the online docs all empty and placeholderish.

If you don't have docs yet, an empty wiki looks better than an empty section in your web... and we get to give something back to the project too :)

Well, I'm taking a break 'til tomorrow.

Sayounara!


Top
Offline Profile  
Reply with quote  
 Post subject: Re: Introduce yourself!
PostPosted: Sun Dec 12, 2010 12:09 am 

Joined: Wed Dec 08, 2010 5:54 am
Posts: 27
Hey, I got Bullet to load my chunks dynamically =)
I'm standing in my future home ^^

I really REALLY need to clean the code, I spent the last three nights sleeprogramming.
Turns out REM sleep is really good when you need to optimize code :P

Also, I think I'll have to find an alternative to loading display lists on the main thread. It freezes my main loop for half a second with each loaded chunk =(


Attachments:
voxel14.JPG
voxel14.JPG [ 64.08 KiB | Viewed 4726 times ]
Top
Offline Profile  
Reply with quote  
 Post subject: Re: Introduce yourself!
PostPosted: Sun Dec 12, 2010 11:07 am 
Developer
User avatar

Joined: Sun May 04, 2008 6:35 pm
Posts: 1827
Very nice, so is Bullet working with your quad mesh or the original PolyVox one? I ask becase I wasn't aware that Bullet supported quads.

When I had Bullet support in Thermite3D I was going through the OgreBullet wrapper, but when I put it back in I think I'm more inclined to do it natively like you are doing here.


Top
Offline Profile  
Reply with quote  
 Post subject: Re: Introduce yourself!
PostPosted: Sun Dec 12, 2010 5:56 pm 

Joined: Wed Dec 08, 2010 5:54 am
Posts: 27
I'm making a btCompoundShape filled with one btBoxShape per voxel.
Performance wise, I had to dynamically page the chunks or the system fell to pieces.
I can have 5-10 chunks of 16x16x128 btBoxShapes with acceptable performance.

EDIT: And this way, if a voxel changes it's material, I only need to add/remove a btBoxShape. :)


Top
Offline Profile  
Reply with quote  
 Post subject: Re: Introduce yourself!
PostPosted: Mon Dec 13, 2010 12:18 am 
Developer
User avatar

Joined: Sun May 04, 2008 6:35 pm
Posts: 1827
onimatrix wrote:
I'm making a btCompoundShape filled with one btBoxShape per voxel.
...
EDIT: And this way, if a voxel changes it's material, I only need to add/remove a btBoxShape. :)

Ok, that's an interesting approach. And presumably you're only creating boxes for voxels which are visible, not the ones which are inside the volume?


Top
Offline Profile  
Reply with quote  
 Post subject: Re: Introduce yourself!
PostPosted: Mon Dec 13, 2010 12:40 am 

Joined: Wed Dec 08, 2010 5:54 am
Posts: 27
David Williams wrote:
onimatrix wrote:
I'm making a btCompoundShape filled with one btBoxShape per voxel.
...
EDIT: And this way, if a voxel changes it's material, I only need to add/remove a btBoxShape. :)

Ok, that's an interesting approach. And presumably you're only creating boxes for voxels which are visible, not the ones which are inside the volume?


Nope :P
All the voxels are there xD
That would be faster, but I only have a performance impact when doing debug rendering of the btCompoundShapes...


Top
Offline Profile  
Reply with quote  
 Post subject: Re: Introduce yourself!
PostPosted: Thu Jan 20, 2011 11:08 pm 

Joined: Thu Jan 20, 2011 10:43 pm
Posts: 11
Hi, thanks so much for releasing this lib - i'm a 2nd year PhD Computer Graphics student at Durham Uni (UK) & am excited to integrate this with my tool. Also writing a game as a side project and hope to re-use the tech :)

I found this tool when researching improvements to my current voxelizer (subdivision method/slice GPU renderer), and marching cubes implementations. Quite excited, but sadly I need to finish a paper due in May before I can really integrate this, and move onto more exciting developments.

Chris


Top
Offline Profile  
Reply with quote  
 Post subject: Re: Introduce yourself!
PostPosted: Fri Jan 21, 2011 12:04 am 
Developer
User avatar

Joined: Sun May 04, 2008 6:35 pm
Posts: 1827
Welcome aboard! So what is your research topic? This engine actually started as a result of my own PhD research - I was doing medical visualisation but soon thought it was more fun to apply it to games :-)


Top
Offline Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 95 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6 ... 10  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Theme created StylerBB.net