A tangible and non-transitory computer readable medium having program instructions which, when executed by a processor having a graphical processing unit, causes the processor with the graphical processing unit to:
- detect a point location selected via a viewer input device within a screen of the a display device displaying a virtual environment having a plurality of three dimensional (3D) objects, wherein some 3D objects of the plurality of 3D objects when displayed on the display device are mutually occluded 3D objects or partially occluded 3D objects;
- determine coordinates (XS, YS) of the point location on the screen and a depth direction (ZS) defining a path through the point location along a direction of an eye gaze of a viewer;
- determine a set of 3D objects of the plurality of 3D objects sharing the coordinates (XS, YS) on the screen and located along the depth direction (ZS), determining the set of 3D objects includes determining a depth value for each 3D object of the set of 3D objects;
- prioritize at least two 3D objects from the set of 3D objects based on screen areas of the set of 3D objects, transparency of the set of 3D objects, depth values of the set of 3D objects, and opaqueness of at least one 3D object of the set of 3D objects currently displayed to improve selection of at least one of mutually occluded 3D objects and mutually partially occluded 3D objects in the virtual environment, the screen areas of the set of 3D objects determined using actual dimensions of the set of 3D objects in the virtual environment;
- select a first 3D object from the at least two 3D objects based on a number of previous actions performed on the first 3D object via the viewer input device being greater than a number of actions performed on a second 3D object of the at least two 3D objects when the first 3D object was included in one or more previous sets of 3D objects while sharing previous coordinates on the screen and located along previous depth directions;
- and
- establish the selected first 3D object with the viewer input device for detecting interactions with the selected first 3D object displayed on the display device by the viewer input device, the selected first 3D object being updated on the screen of the display device based on the interactions.