Occlusion culling is culling objects erroneously on some hardware
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 171
Description
## Bevy version
0.16.1
## Relevant system information
The system on which this error presents is a Microsoft Surface Pro 1807 i5.
Processor: Intel(R) Core(TM) i5-7300U CPU @ 2.60GHz, 2712 Mhz, 2 Core(s), 4 Logical Processor(s)
Installed Physical Memory (RAM): 8.00 GB
GPU: Intel(R) HD Graphics 620
OS Name: Microsoft Windows 10 Pro
OS Version: 10.0.19045 Build 19045
Kernel: 19045
Cargo 1.87.0
AdapterInfo { name: "Intel(R) HD Graphics 620", vendor: 32902, device: 22806, device_type: IntegratedGpu, driver: "Intel Corporation", driver_info: "Intel driver", backend: Vulkan }
What you did
## What you did
As a new Bevy user, I was following [this](https://www.youtube.com/watch?v=nE76GGICofU&) tutorial on Youtube and making changes to learn further as I went along. I implemented the camera movement and mesh spawning, and also spawned a "sky" which is just an unlit cuboid at a size of 500, combined with a DistanceFog component on my camera.
## What went wrong
I've run this program on two separate machines. On my more powerful machine (3060 GPU, Intel Xeon V4 E5-2680), the rendering works fine. But on this Surface Pro, things are erroneously culled. The spheres in my scene are not rendered at certain angles, and the sky cube gets culled if there are no spheres on screen.
Here is a video of the problem: https://youtu.be/lnSs-Y9rJIY
Sorry for the laggy video. It's hard to get a better one on a Surface Pro.
[Here is a pastebin of the source code for my executable](https://pastebin.com/Z1kPCHux).
Contributor guide
Research direction
Start with the executable source in the linked Pastebin and reproduce the scene on the Microsoft Surface Pro with Intel HD Graphics 620 using Bevy 0.16.1 and the Vulkan backend. Compare the occlusion-culling behavior with the working 3060 system, focusing on the angles where spheres disappear and where the sky cube is culled. Done means the scene renders consistently on the affected hardware without erroneous culling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- computer-graphics, game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100