I’m using a VisibilityNotifier for my 3D project. It seems to be able to see through walls, but I want objects show in front of camera, I don't want objects show in behind the walls, what I will do? difference of Area3d and Visibility Notifier3d?
Visibility notifier3d Use or Not?
- Edited
Visibility notifier doesn't deal with overlaps. It just checks an aabb status in respect to the camera viewing volume. It doesn't know anything about objects in the scene.
What exactly do you need this for?
- Edited
xyz i’m using a VisibilityNotifier for my 3D project. It seems to be able to see through walls and around corners. Basically if I face in a direction (say North) then any object in that direction within the Far distance will trigger the visibility notifier. Even if there’s another object in the way that blocks the camera view.
Is there a way to fix this? I only want objects that are actually visible on the camera to notify
I want objects visible front of camera only and
if wall blocks in front of the camera, I want behind the wall, any object are invisible
thanks for the reply, help me
gd_qq There's nothing to fix. As I said, the visibility notifier deals only with bounding boxes entering/leaving the camera viewing volume. Its purpose is not to detect if objects are obscured by other objects. It's basically just frustum culling notification.
If you want more specific suggestions on how best to solve your problem, describe precisely what you want to make.
In addition to what xyz said, the documentation has this note:
Note: VisibilityNotifier uses an approximate heuristic for performance reasons. It doesn't take walls and other occlusion into account (unless you are using Portals). The heuristic is an implementation detail and may change in future versions. If you need precise visibility checking, use another method such as adding an Area node as a child of a Camera node and/or Vector3.dot.
https://docs.godotengine.org/en/3.5/classes/class_visibilitynotifier.html#visibilitynotifier
- Edited
gd_qq I think what you are looking for is occlusion culling:
https://docs.godotengine.org/en/stable/classes/class_occluderinstance3d.html
Edit: Just read your other comments... occluderinstance has no signals etc. that do can help with what you want. Sorry.
As the docs suggest, it respects occlusion culling via rooms & portals, but not with OccluderShapePoly
and Sphere
(partly because I never got around to adding this, it isn't all that involved).