Jump to content
  • Advertisement
Sign in to follow this  
Dirk Gregorius

CSG, Brushes, ...

This topic is 5178 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

Hi, are there any libraries that I could use for my world editor when I want to add CSG? I know how to implement it using BSP but I am wondering if there are other possibilities. Any libraries, tutorials and papers are greatly appreciated. Regards, -Dirk

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
Don't know if they quite fit your needs but, I know at least GTS (GNU Triangulated Surface library) and breplibrary support CSG. You can find them by searching on freshmeat.net.

And yes, there are other ways to do it...breplibrary uses one alternative, basically partitioning intersecting surfaces in the two objects, and using ray-tracing to determine which side of the resulting object each surface is on. This is a question of determining whether a random ray from the surface intersects an even or odd number of other surfaces.

- Martin

Share this post


Link to post
Share on other sites
There are two basic CSG approaches, the BSP approach, and the Laidlaw approach.

Both have their advantages and disadvantages.

As far as libraries go, there's OpenCSG, but I've found it to be kind of tedious to work with (so I don't).

I've written my own library for CSG operations. It works pretty well, except it could use a bit of optimization.

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!