Jump to content
  • Advertisement
Sign in to follow this  
lomateron

how Nvidia does the balls collision detection in Flex without using a 3D grid?

This topic is 1007 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

at 7:15 in this video

 

He says it's grid free, you can download the demo to play with the balls and in some worlds you can move the balls anywhere you want, no walls

Edited by lomateron

Share this post


Link to post
Share on other sites
Advertisement
Instead of storing a full grid of cells (whether or not they are empty), they store a flat representation of just the active cells.

Because fluid simulations need to constantly update neighbouring cells, the grid representation is a lot easier/faster to update, but you are constrained by the maximum size of grid (i.e. 3D texture) that you can store on your GPU, and if the majority of cells are empty, then you are just plain wasting memory.

The secret sauce is how they update potentially millions of neighbour interactions efficiently on a GPU with a sparse representation - that's traditionally been a prohibitively difficult thing to accomplish. Edited by swiftcoder

Share this post


Link to post
Share on other sites

Looks like it boils down to in-driver support for sparse virtual textures?

Or the memory controller hardware: 64bit address space, several different choices in page size, ability to gracefully handle page-not-mapped HW exceptions, ability for texture samplers to return a page-miss boolean, etc, which allows drivers to implement "tiled resources", which allows games to implement HW-accelerated SVT :)

Allocating/deallocating virtual pages is a CPU side operation though. So if your GPU particleshaders created a list of voxels that must be resident, you've got to wait a frame for the CPU to read back that list and actualy map the appropriate tiles... This is still a complex system to construct!

Share this post


Link to post
Share on other sites


This is still a complex system to construct!

Yeah. Looks like the only piece of it that is truly new is the ability to sample out of bounds and get a zero value?

 

Everything else it seems you could emulate (albeit probably not with sufficient performance) with SVT and mixing texture dimensions.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!