[RELEASED] Advanced Culling System 2 : Revamped and Boosted Up!

Hey everyone!

I’m happy to share with you the news that I’m currently developing the second iteration of Advanced Culling System!

Advanced Culling System is a tool that optimizes your project by disabling rendering of objects that are not visible to the camera. It consists of two modules: Static Culling (for static objects, but with preprocessing) and Dynamic Culling (for static and dynamic objects, without preprocessing, but more load in runtime). This way you can choose the optimization method more suitable for your project.

I developed this asset a few years ago in my first year of university. This asset has performed quite well, but there is always room for improvement.

I originally wanted to release just an update, but there were so many improvements that it became more like a remake :slight_smile:

The Dynamic Culling module is already updated and available for download, and as soon as I update Static Culling I will release Advanced Culling System 2 on the Asset Store. By the way, Advanced Culling System 2 will be available for free for those who already bought this Asset.

Here are the upgrades to Dynamic Culling:

  • Enhanced performance and processing speed
  • LOD objects support
  • Merging of smaller objects into a single Culling Group
  • Optional preprocessing for a faster runtime

I appreciate every bit of feedback from all of you who’ve been using Advanced Culling System in your projects. Your comments, suggestions, and reviews are super important to me and they help me in making this asset better and better.

Stay tuned for more updates coming your way!
Best,
Andrey

Asset Store Page | Discord Server

Advanced Culling System 2 Presentation!
https://www.youtube.com/watch?v=sJk6gTJXi3M

Advanced Culling System 2 announcement!

https://www.youtube.com/watch?v=2f_5Fzc89QE

Advanced Culling System 2 Sneak Peek!

https://www.youtube.com/watch?v=ogCNCYE7IKs

Advanced Culling System 2 announcement!

2 Likes

Hey guys
I’m so excited to introduce you to our new website : http://thenewgamestudio.com

1 Like

I’m glad you decided to rewrite it. I bought the original version 4 years ago and still ended up using the built in occlusion culling, because the static culling didn’t really work. Maybe you got it right this time.

Hello everyone!

It’s been a while since we’ve had an update, but hopefully the wait was worth it.

I am happy to inform you that the Advanced Culling System 2 has been completed!

As soon as I make a tutorial video - the new Asset will appear in the Asset Store.

In the meantime, I made a short video for you, where meshes, lights, and particle systems are optimized with Advanced Culling System.
https://www.youtube.com/watch?v=ogCNCYE7IKs

Presentation Video

Hey everyone!

Updated Advanced Culling System is now available for download!

As promised, for those who have already purchased ACS or Performance Tools, the download is free of charge.

For others there is a 50% discount!

It’s very useful for me to know your opinion, and it will help a lot in promotion if you leave a review :slight_smile:

1 Like

Hi,

It seems to work very well, only thing im struggling with are skinned mesh renderers who arent static… and i struggled getting the particle systems to work but got there in the end… The only issue ive had is with manually added items such as the particle system, you add a static culling source, bake and then it becomes a custom… which then means if you clear or whatever its lost… you have to redo that…

Thanks for the feedback.
Yes, I will think about how to solve this in future updates

I also found an odd thing with the lights, they come on before they would be in sight, if in a maze you have like a T shape and you’re walking across the top, but the T bottom is a room you enter from the other side, the walls arent drawn if theres a light in the room and it leaks out into the top of the T meaning theres light in an area there shouldnt be…

There could be several reasons for this.

Light sources also have their own bounds, which can be customized. Perhaps the bounding box goes through the wall.

Also, the visibility of the scene is calculated for each visibility cell. You can see which cells are currently affecting the scene if you enable “DrawCells” in StaticCullingCamera. You can re-bake the scene using a smaller CellSize parameter if you need more precision. But remember that this may result in more memory usage. You need to strike a balance.

Important news regarding Advanced Culling System 2.

Hey everyone,
I want to warn you that in the next 12 hours the upgrade to ACS 2 will become paid for owners of the first version, but will be discounted.

I have been thinking about this decision for a long time and there are reasons for it. In fact ACS 2 is a new asset written from scratch, in which a lot of effort and time has been invested. And at the moment they do not pay off.

To be able to continue releasing tools for Unity and work as an independent developer, I made this decision.

1 Like

I test a bit, and somehow it works very well in your demo, but after I did more test on other scenes with third party assets, the dynamic culling started to cost more performance. It did reduce batch,tris and setpass, but the raycast is not free, in some place, simply rendering the models costs less than using massive raycast, and it’s not easy to control since open world map is complex and flat, and doesn’t always have enough big occluder. I think the best place for this is procedurally generated dungeon, for there are many walls and no need to bake.

thats exactly what my senario is :slight_smile: however, while it did a fantastic job and worked more how my brain expected than unitys, it showed lights before it showed the walls that would have been in the way blocking the light so caused lighting to show where it should not… But it does beautifully work the way your brain expects it to

Hi,

Effectiveness depends on several reasons.

In your scene, some objects must overlap other objects. This is the very essence of this optimization approach, maybe a different optimization method is just better for your scene.

DynamicCulling uses raycasts very carefully. Plus it uses JobSystem, so it shouldn’t be a huge performance hit. Also, you can adjust the number of rays in the DC_Camera component.

Did using other settings help?

sadly no.

Ok so i removed the floor and ceiling so you could see the layout … as an example when the player is standing where my super artistic man is… looking down the corridor, the player should be the only lightsource… However, with this asset the lights from that little room at the top shines in… and i didnt find anyway of stopping it even playing with the options suggested.

Dont get me wrong, unity urp is actually worse!!! for that, lights from the room off the bottom shine through… then if you go forward and up into the corridor above and turn right so you’re in that corner of the corridor that goes all the way round the room at the top? theres lights coming in from off the left, from inside the room, inside the room off the bottom, its almost daylight… it should be pitch black bar the players light.

9546448--1348645--upload_2023-12-24_16-23-45.jpg

hi . does this have something like the chunks master of original system to break down large mesh objects ?

I think you need to reduce the size of the Bounds for Lights in the StaticCullingSource component.
You need to do this so that the Bounding Box does not extend beyond the wall.

Yes, ChunkMaster still works. I originally wanted to remove it, but it looks like a lot of people are using it, so I decided to keep it :slight_smile: