Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Try out Software Occlusion Culling to replace tiling #621

Closed
kvark opened this issue Dec 8, 2016 · 2 comments
Closed

Try out Software Occlusion Culling to replace tiling #621

kvark opened this issue Dec 8, 2016 · 2 comments

Comments

@kvark
Copy link
Member

@kvark kvark commented Dec 8, 2016

Tiling allows to completely avoid drawing certain areas that we know are being occluded. Instead, we could run a software rasterizer of a small resolution target, draw big opaque occluders there, and cull out all other primitives based on it.

Removing the tiles would reduce the number of drawn instances. It would also allow us to greatly simplify the primitive transformation shaders, potentially merging it with non-transformed paths.

@glennw
Copy link
Member

@glennw glennw commented Dec 8, 2016

The initial prototype of using the z-buffer works well with this, and seems to provide very good performance. A hybrid between these two could be ideal, if we can work out the clip + tile issue we discussed.

Additional benefits of this approach:

  • Can draw non axis-aligned input geometry segments.
  • Can easily work with depth buffer + front-to-back pass for quick per-pixel rejection of opaque primitives.
  • Relatively small change to make to existing code.
  • Occlusion culling can be its own module, potentially run on GPU in the future.
  • Post effect shaders such as stacking context blur become a lot simpler.
  • Easy to multi-thread.
  • Can apply to only large occluders and occludees to minimize any work for small primitives that are unlikely to benefit.
@glennw
Copy link
Member

@glennw glennw commented Oct 3, 2017

No longer relevant.

@glennw glennw closed this Oct 3, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.