mirror of
https://github.com/SK8-ENGINE/skate-3-rust-engine.git
synced 2026-10-26 19:47:44 +00:00
Add runtime occlusion culling with conservative depth and valid GPU bindings
This commit is contained in:
1 parent
d31f81f95e
commit
a21f78aa52
57 files changed
+12066
-24
No files matched your search
Vendored
+19
@@ -1,5 +1,24 @@
|
||||
# Local Bevy patch
|
||||
|
||||
## Conservative occlusion depth pyramid
|
||||
|
||||
`bevy_core_pipeline` is vendored from crates.io 0.18.1 with its original licenses.
|
||||
Its `src/experimental/mip_generation/{mod.rs,downsample_depth.wgsl}` backports
|
||||
[Bevy #22603](https://github.com/bevyengine/bevy/pull/22603), commit
|
||||
`43f4552308a29f4130c3ad71ea65d48f77daea6e`. The upstream file paths changed
|
||||
between releases; the algorithm is the upstream fix. Power-of-two pyramid
|
||||
levels and conservative source sampling prevent false occlusion at arbitrary
|
||||
viewport sizes, including scaled targets and MSAA. The associated meshlet
|
||||
texture-dimension fix is included in `bevy_pbr/src/meshlet/meshlet_cull_shared.wgsl`.
|
||||
The game uses ordinary meshes, not meshlets.
|
||||
|
||||
The late mesh preprocessing pass in 0.18.1 also binds its indirect dispatch
|
||||
buffer as writable storage, which fails wgpu validation when occlusion is on.
|
||||
`bevy_pbr/src/render/{gpu_preprocess.rs,mesh_preprocess.wgsl}` now declares that
|
||||
binding read-only in the late pass. Its counters are plain `u32` in that shader
|
||||
variant, preserving the same buffer layout; the early producer retains atomic
|
||||
counters and writable storage. No dispatch count or culling decision changes.
|
||||
|
||||
`bevy_pbr` is the unmodified crates.io 0.18.1 source except for the changes
|
||||
described below. Its original MIT and Apache licenses are included. Cargo selects
|
||||
it through the workspace `[patch.crates-io]` entry; the Cargo registry is untouched.
|
||||
|
||||
Reference in new issue
Block a user