very sigma roblox. good job good job good job
Does OC work on low graphic quality or exclusively on high quality level?
It works on all graphics levels. It is an optimization, it will help people who need to use the Low graphics levels more than those who can use the High ones.
Please add some sort of API or property on the client to tell if an instance or location is being occluded. It would be incredibly helpful.
This makes such an impact on some of my games; I’d honestly just rather have it live now — regardless of bugs.
Hello, this isn’t directly about occlusion culling but it is about culling.
I see that a culling issue was mentioned with SpecialMesh, so I thought it might be relevant enough to bring up.
A few months back, tree leaves using SpecialMesh in our game started disappearing when slightly out of the camera. I made a post about this here: Tree leaves mesh not appearing in certain angles
I did not completely understand it at the time, but I believe this to be a result of frustum culling? If some clarify or acknowledgement can be given then that would be amazing.
Our game has mostly been static for a long time and the problem only started happening since I had made my post.
If you require a repro, please contact me.
Thanks!
What is your use case for this?
With such cheap meshes, I might just turn off LOD entirely for these objects. The engine doesn’t have enough detail in your original authored mesh to create something of even lower quality.
This is not really a solution because these models have smaller details as you get closer to them, and breaking those out into separate models inside the tree as main and HQ layers conflicts with easy authoring and asset reuse (ive had issues with nested streaming mesh models), and if i don’t use a streaming model, I don’t get nice distance visibility on streamed out assets which is a smoking gun in my open world because I use part terrain that isn’t currently possible to group for streaming mesh - the foliage LOD is where the impression of the world comes from when it’s streamed out. There is a very inexpensive LOD option for me given my art style but the engine doesn’t support me providing it.
If the engine would just use the original model if it can’t get a lower poly LOD I would be happy enough. Or if it would preserve hard edges and quit looking like melted plastic.
I use bones, EditableMesh and EditableImage instances interchangeably, sometimes bound to RenderStepped, for animating foliage sway, water, EditableImage effects and flickering lights that I’d like to update constantly. Currently, I am conservative with how complicated the code I’m running for this is since I imagine it would hinder the frame rate on most lower end devices if there are enough instances. I’d prefer a compiled in-engine service or method that I could utilize to skip running instructions on something the client doesn’t render by checking if the instance is culled beforehand. As far as I am aware you can’t compile to machine code on the client, so a built in solution would be objectively faster than a custom one? Please correct me if that’s not the case.
Ohhhh that sounds like a really good use. Utilizing roblox’s culling to selectively implement your own code.
Amazing! This should be great for facilitating optimization on large-scale maps. By any chance, would this also work as a step towards implementing a camera API similar to Camera: ViewportPointToRay() but that returns a boolean indicating if the model is visible from the viewport? (Not obstructed by any other parts or meshes)
WOOO! Gone are the days of 15 frames per second at last! Good job.
Is there an estimated date on Occlusion Culling being released fully?
Would this be an optional feature you can enable/disable for your game, or is this permanently on for all games upon release?
I’m finding that maps which use a lot of unions severely limit their potential for culling. When my camera is behind a union wall parts won’t cull but they do when behind a part wall, or on certain sides of a union it’s pretty weird and I don’t think thats the intended behaviour but we’ll see.
actually, its not because of the mesh shape, i have it like x, -y, -z (which makes it upside down + is the source of the bug)
Don’t know if anyone has posted about this, but I found this pretty buggy culling behavior on Project Lazarus.
Is that fog or atmosphere? Fog doesn’t cull objects as far as I tested, not sure however about atmosphere.