-
Notifications
You must be signed in to change notification settings - Fork 73
Added the ability to build an octree, and an example of using the built octree to speed up ray detection #125
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
base: main
Are you sure you want to change the base?
Conversation
bigbigbig2
commented
Jul 19, 2025

…ay detection example
I added an example comparison. The effect is very obvious for large data. Due to data permission reasons, the code I submitted did not use large data, but used the original small data, so the effect is not as obvious as in my video. 20250721_103749.-.Compressed.with.FlexClip.mp4 |
This is tremendous work @bigbigbig2 , thank you for volunteering this code! Please give us some time to review and discuss this... there's great merit here. I wonder a little bit about how this will interact with the "dynamic" nature of Spark... I have some other thoughts about how to do raycast that involve the GPU but are async, maybe this is the right way to get good performance in a "sync" fashion. Just wanted to leave this note so you know this PR hasn't gone unnoticed! |
It would be good to make a compact representation of this octree available in the vertex shader, as this will pave the way to many advanced rendering features (https://research.nvidia.com/labs/toronto-ai/3DGRT). For example, simple GI (https://iquilezles.org/articles/simplegi) can be used to properly illuminate splats with an extra light source. |
I am very happy to receive your reply. Because this function is a function I have applied in actual production, I am also constantly maintaining and optimizing it. My subsequent updates will be synchronized in the fork warehouse. If there is a need later, I can merge it. |
There's also an actively developed https://github.com/gkjohnson/three-mesh-bvh. |
I also tried this at the beginning, but it does not support instanceBufferGeomtry. I also saw that the author has explained the support in this regard, so I turned to the existing algorithm for constructing acceleration space structure for Gaussian. |
GPU based |