arenaxr / arena-web-core

An environment to view and interact in multiuser virtual and augmented reality.
https://docs.arenaxr.org
BSD 3-Clause "New" or "Revised" License
41 stars 28 forks source link

Implement Frustum Culling/Panoramic/Distance stream resolution #430

Open mwfarb opened 2 years ago

mwfarb commented 2 years ago

Using ARENAJitsi.setResolutionRemotes() to update these allocations as we want to drop culled video to 0p, set the video sphere we are in to 1920p, set other videospheres we are not in back to 360p, set far users in view to 180p, whathaveyou. So we will want to track distance to other users, and the update ARENAJitsi.setResolutionRemotes() every 1-5 seconds or so, examples:

hi-liang commented 2 years ago

Do we have any cheap ways to determine occlusion?

Otherwise this same type of period culling based both on distance and frustrum is almost exactly same as I was thinking for my ArenaMegaVerse idea, as applied to entire subscenes

mwfarb commented 2 years ago

I'm not sure. It would seem we'd need to maintain a list of frustums from the local camera to each remote user's position and then decide if the frustum intersects the remote user or not. It seems like loads of math.

mwfarb commented 2 years ago

186 related

mwfarb commented 2 years ago

Distance and most frustum features added in https://github.com/conix-center/ARENA-core/pull/446. Panoramic forthcoming.