CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. § 119 or 365 to European Application No. 19306750.1, filed Dec. 23, 2019. The entire contents of the above application(s) are incorporated herein by reference.

FIELD

The disclosure pertains to the field of computer programs and systems, and specifically to the field of product design and exploration in an immersive environment, and also to the fields of simulation and video games, where exploration is useful.

BACKGROUND

Headways which have been made in the rendering of the environment make the experience more and more realistic. In particular, a virtual reality headset allows the user to visualize the 3D space where he is immersed, through a virtual camera. The position of the head is tracked thanks to the virtual reality headset, so that the orientation of the head of the user corresponds to the orientation in the immersive environment. With one or several handheld motion-tracked controllers, the user can interact with the environment.

However, in a very congested environment, the field of view of the virtual camera may be partially obstructed, which makes the virtual reality experience less enjoyable. For example, considering the scenario of exploring a wiring closet, tens of cables obstruct the field of view of the camera. The congestion of the wiring closet prevents the user from discovering the cables and authoring them, and also from manipulating them.

Furthermore, in immersive environments, in particular in some video games, the 3D scene is a small room. In that case, there may be a lot of objects in front of the virtual camera.

SUMMARY

A first way to deal with the obstruction of the field of view consists in defining a frustum. This solution is said to be “user centric”, since the frustum is associated to the user. The frustum also speeds up the rendering of the 3D scene, since only a part of it is rendered. Hereafter, the frustum refers to the region of space which may be rendered for the user. The frustum is a truncated pyramid. The planes which cut the viewing frustum perpendicular to the viewing direction of the virtual camera are called the “near clipping plane” and the “far clipping plane”. The frustum is bounded by the near clipping plane on the side of the virtual camera and by the far clipping plane on the opposite side. The angles between opposite lateral faces of the frustum correspond to the natural field of view of a human. Objects which are not in the frustum are not rendered. In particular, objects which are located between the virtual camera and the near clipping plane are not rendered.

Therefore, it is up to the developer or to the user of the software to set the near clipping plane at an optimum distance relative to the virtual camera: if the near clipping plane is too close to the virtual camera, the view of the user will be obstructed, and if the near clipping plane is too far from the virtual camera, too many objects will be removed. Thus, setting the depth of the near clipping plane is not flexible and adaptive.

Moreover, the axis of the virtual camera is normal to the near clipping plane. An object which is out of the frustum, close to the near clipping plane, on the axis of the virtual camera, enters the frustum when the user moves his head. Depending on the orientation of the head, the object, or a part of it, will alternatively be rendered or not, which may be confusing for the user.

A second way to deal with the obstruction of the field of view consists in manually selecting parts of the object which is to be explored, so as to change their properties. This solution is said to be “product centric”, since the properties of the objects are modified.

Returning to the example of the wiring closet, the user ghosts the first layer of cables, and repeats the operation of ghosting for the next layers, until he has reached the layer he is interested in. Hereafter, ghosting refers to modifying the rendering of an object, in order to see through it. Ghosting also makes the object non selectable. Ghosting may be done for example by modifying the opacity of the object, or by rendering only the edges of the object.

The ghosting operations are made manually: the cursor, directed by the user, hovers over a part of the object, then he presses and releases the “tab” button (or another button, depending on the way the function has been implemented), which ghosts the part of the object. If the user wants to ghost another part of the object, he reiterates the operation of pressing the “tab” button when the cursor hovers over the part, then releasing the button, and so on until the user has terminated the exploration of the object. In order to unghost the part (i.e. to remove the ghost effect), the user moves the cursor out from the ghosted part. It may be noted that the user may hide an object instead of ghosting it. Hereafter, hiding refers to not rendering it.

Manually ghosting objects has several drawbacks. Firstly, it is not efficient when trying to visualize a congested 3D scene, since it would be required to ghost every object in front of the eyes of the user. Secondly, exploring an object in depth with many layers involves as many presses on the button, which is cumbersome. Thirdly, if the user unghosts a part that he sees in front of him, he will not be able to unghost the parts which are behind the unghosted part: the unghosting operations must be done according to the reverse order of the ghosting operations.

Therefore, there is a need for providing a computer-implemented method for adaptively exploring the region of a 3D scene in an immersive environment, while reducing the exploration time.

One embodiment includes a computer-implemented method for modifying the rendering of a region of a 3D scene in an immersive environment characterized in that the region is computed based on a 3D position of a user's head tracking device and a 3D position of at least one user's hand tracking device.

In an embodiment, the region comprises a convex volume which has a plane part which fits a near clipping plane of a virtual camera frustum rendering a part of the 3D scene, said convex 3D volume extending along a segment which is defined by the 3D position of the head tracking device and by the 3D position of the hand tracking device.

In an embodiment, the convex volume comprises a truncated cone or a revolution cylinder.

In an embodiment, the convex volume has a curved shape surrounding partially the hand tracking device, opposite to the plane part, and being spaced apart from the hand tracking device by a non-null safety margin.

In an embodiment, the method comprises:a step of receiving a user input of actuating the hand tracking device, anda step of modifying the rendering of the region as long as the hand tracking device is being actuated.

In an embodiment, the method comprises:a step of receiving a user input of actuating a second hand tracking device,a step of computing the distance between the 3D position of the hand tracking device, referred to as first hand tracking device, and the 3D position of the second hand tracking device, anda step of widening or thinning the convex volume across the segment, respectively by increasing or reducing said distance.

In an embodiment, the step of receiving a user input of actuating a second hand tracking device comprises receiving a command of pressing and holding a button of the second hand tracking device, and the step of widening or thinning the convex volume is carried out while the button of the second hand tracking device is being pressed.

In an embodiment, the step of receiving a user input of actuating a second hand tracking device comprises receiving a command of pressing then releasing a button of the second hand tracking device; and the step of widening or thinning the convex volume is carried out after receiving another command of pressing then releasing said button.

In an embodiment, the convex 3D volume is transformed into a sphere if the distance between the 3D position of the first hand tracking device and the 3D position of the second hand tracking device exceeds a threshold distance, said sphere having its center at the 3D position of the head tracking device, and having its radius equal to the distance between the 3D position of the head tracking device and the 3D position of the first hand tracking device.

In an embodiment, the region comprises 3D objects having a minimum bounding box which intersects with the convex volume.

In an embodiment modifying the rendering of a region comprises ghosting said region.

Alternatively, modifying the rendering of a region comprises hiding said region.

Another embodiment relates to a computer program product, stored on a computer-readable data-storage medium, comprising computer-executable instructions to cause a virtual reality system to carry out the aforementioned method.

Another embodiment relates to a computer-readable data-storage medium containing computer-executable instructions to cause a virtual reality system to carry out the aforementioned method.

Another embodiment relates to a virtual reality system comprising a processor coupled to a memory, the memory storing computer-executable instructions to cause the virtual reality system to carry out the aforementioned method, a head mounted display device having a head tracking device, and at least one hand-held controller having a hand tracking device.

