Unlocking the 3D View

The method addresses the ergonomic limitations of existing 3D view switching techniques by using continuous user interactions on touch-sensitive displays to switch and select viewpoints within 3D scenes, enhancing user experience and interaction efficiency.

JP7663352B2Active Publication Date: 2025-04-16DASSAULT SYSTEMES SA
View PDF 10 Cites 0 Cited by

Patent Information

Application Number
JP2020211255
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-12-30
Filing Date
2020-12-21
Publication Date
2025-04-16
Estimated Expiration
2040-12-21

AI Technical Summary

Technical Problem

Existing methods for switching between 3D views of a 3D scene on mobile devices and touch-sensitive displays are ergonomically unsatisfactory, requiring users to click on icons or perform gestures that are not intuitive or efficient, especially when trying to select a viewpoint within the 3D scene.

Method used

A computer-implemented method that detects continuous user interaction in the form of displacements on a touch-sensitive display, calculates the distance between initial and final positions, and switches from one 3D view to another if the distance exceeds a predetermined threshold, allowing for intuitive viewpoint selection and rotation.

Benefits of technology

This method enhances user interaction by allowing seamless switching and viewpoint selection within 3D scenes on various devices, improving ergonomics and user experience by eliminating the need for explicit icons or gestures.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007663352000001
    Figure 0007663352000001
  • Figure 0007663352000002
    Figure 0007663352000002
  • Figure 0007663352000003
    Figure 0007663352000003
Patent Text Reader

Abstract

To provide a method, a system, and a program for easily switching from a first 3D view to a second 3D view of a 3D scene.SOLUTION: A method includes providing a first 3D view displayed from a plane of a locked viewpoint of a 3D scene, and also includes: detecting a continuous user interaction including a slide; detecting a first location and a second location on the plane; computing a distance traveled by the slide; comparing the computed distance with a predetermined distance; and if the computed distance is greater than the predetermined distance, executing a switch from a first 3D view to a second 3D view.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to the field of computer programs and systems, and more particularly to a method, system and program for switching from a first 3D view of a 3D scene to a second 3D view. [Background technology]

[0002] Applications that provide three-dimensional (3D) representations of objects are becoming more and more common. A 3D representation is composed of one or more 3D objects. A 3D representation is also called a 3D scene. The 3D objects and the background form the graphical elements of a 3D scene.

[0003] A 3D scene can consist of a background image that creates the illusion of depth in the 3D scene. The background can also be a 2D image, and is called a 2.5D scene or pseudo-3D scene. A pseudo-3D scene can only be viewed correctly from one viewpoint. Therefore, the viewpoint of a pseudo-3D scene is locked, and the viewpoint of a pseudo-3D scene cannot be changed.

[0004] Some applications can unlock the viewpoint on a pseudo-3D scene to provide a true 3D scene, while other applications can lock the viewpoint on a 3D scene to provide a 2.5D scene, allowing the user to switch from a 2.5D world to a 3D world and vice versa.

[0005] There are several approaches for switching from a pseudo-3D scene to a 3D scene. The first approach is to provide an icon that can be activated by the user to trigger the switch from 2.5D to 3D. The same icon or a different icon can be used for the switch from 3D to 2.5D. However, this approach is not satisfactory for the user from an ergonomic point of view. First, the user must often click on the icon located on the border of the screen, which may be cumbersome. Second, the display of the icon is not the best method on mobile devices, which generally have small screens. Third, clicking on the icon is not favorable for input via mobile devices, since the icon has a small size compared to the size of the finger. Fourth, in the process of switching from 2.5D to 3D, the user cannot select the viewpoint of the 3D scene. The user must perform another gesture, which is cumbersome.

[0006] A second approach is to provide a gesture to trigger the switch. Known gestures are performed by pressing a keyboard key and clicking the mouse at the same time. These gestures are not available on mobile devices or touch-sensitive displays. Furthermore, these gestures do not allow the user to select the viewpoint in 3D before the switch occurs.

[0007] Thus, due to the limitations of existing solutions discussed above, there is a need for a method for switching from a first 3D view to a second 3D view of a 3D scene that improves ergonomics and can be used on both mobile devices and touch-sensitive displays. Summary of the Invention

[0008] Accordingly, a computer-implemented method for switching from a first 3D view of a 3D scene to a second 3D view of the 3D scene is provided. The method includes providing a first 3D view displayed from a plane of a locked perspective of the 3D scene, detecting a continuous user interaction consisting of a displacement between a first position on the plane and a second position on the plane, calculating a distance between the first position and the second position on the plane each time the second position is corrected, comparing the calculated distance with a predetermined distance, and switching from the first 3D view to the second 3D view if the calculated distance is greater than the predetermined distance.

[0009] The method may include one or more of the following. After the comparison, further, based on the first position and the second position on the plane, a step (S42) of calculating a perspective of the second 3D view is included. The step (S42) of calculating a perspective on the second 3D view includes calculating a value of a ratio between the calculated distance and the predetermined distance, unlocking the lock of the locked perspective, and correcting the perspective that has not been unlocked to form the perspective of the second 3D view, wherein the correction of the perspective that has not been unlocked is performed based on the calculated value of the ratio. If the calculated value of the ratio is between P and Q (where P and Q are real numbers with P < Q), starting a rotational display of the locked perspective at a first rotational speed, and if the calculated value of the ratio is greater than Q, continuing to display the rotation of the locked perspective at a second rotational speed. The start of the rotational display of the unlocked perspective is performed on the first 3D view of the 3D scene, and the continuation of the rotational display of the unlocked perspective is performed on the second 3D view of the 3D scene. The second rotational speed is such that P = 1, Q = 2, and the second rotational speed is 10 times the first rotational speed. If the continued user interaction is released when the calculated ratio is between P and Q, stop rotating the locked viewpoint and return to the locked viewpoint at a first rotation rate. If the continuous user interaction is released for a ratio value greater than Q, stop rotating the current viewpoint and set the rotation-locked viewpoint as the viewpoint on the second 3D view. The 3D scene comprises at least one 3D modeled object, and the locked viewpoint rotation is performed about an axis of rotation around the at least one target object. The predetermined distance is configured to be between 15% and 30% of the Euclidean distance of the width of the display showing the 3D view in the providing step (S10).

[0010] There is further provided a computer program comprising instructions for carrying out this method.

[0011] Further provided is a computer readable storage medium having this computer program recorded thereon.

[0012] Further provided is a system comprising a processor coupled to a memory and a graphical user interface, the memory having a computer program recorded thereon. The system may include a touch-sensitive display for receiving and detecting user interactions. The system may be a smartphone or tablet. [Brief description of the drawings]

[0013] [Figure 1] 1 is a flow chart illustrating an example of a method. [Diagram 2] An example of a system is shown. [Diagram 3] 1 is a screenshot illustrating an example of a method. [Figure 4] 1 is a screenshot illustrating an example of a method. [Diagram 5]1 is a screenshot illustrating an example of a method. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] With reference to the flow chart of FIG. 1, a computer-implemented method for switching from a first 3D view of a 3D scene to a second 3D view of the 3D scene is proposed. The method comprises the step of providing a first 3D view. The first 3D view is displayed from a locked viewpoint plane of the 3D scene. The method also provides a step of detecting a continuous user interaction consisting of a displacement between a first position on the plane and a second position on the plane. For example, the user interaction is a slide on a touch-sensitive display. The method further comprises the step of calculating a distance between the first position on the plane and the second position. The distance is measured while the continuous user interaction is detected. The method also comprises the step of comparing the calculated distance with a predetermined distance, and if the comparison determines that the calculated distance is greater than the predetermined distance, a switch from the first 3D view to the second 3D view is performed.

[0015] Such a method improves the unlocking of 3D scenes. Notably, the method relies on gestures that can be performed on mobile devices, desktops, and any device with a touch-sensitive display to unlock the view and change the viewpoint position / orientation in a single movement. Further advantages are discussed below.

[0016] The method of the present invention is computer-implemented. This means that the steps of the method (or substantially all steps) are performed by at least one computer, or similarly any system. The steps of the method are therefore performed by a computer, possibly fully automatically or semi-automatically. In an example, the triggering of at least some of the steps of the method may be performed by user / computer interaction. The level of user / computer interaction required depends on the expected level of automation and may be balanced against the need to implement user requests. In an exemplary embodiment, this level may be user-defined and / or predefined.

[0017] For example, detecting successive user interactions may include a user performing an action on the system, for example, the successive user interactions may be a slide on a touch-sensitive display performed with a pointing object, such as a finger, a stylus-like device, or the like.

[0018] A typical example of a computer-based method is the step of carrying out the method using a system adapted for this purpose. The system comprises a processor coupled to a memory and a graphical user interface (GUI), the memory having a computer program recorded therein, the computer program including instructions for carrying out the method. The memory may also store a database. The memory may be any hardware adapted for such storage and may consist of several physically distinct parts (e.g. one for the program and one for the database).

[0019] The method generally operates a view on a 3D scene. The 3D scene is composed of at least one modeled object. A modeled object is any object defined by data, for example stored in a database. By extension, the expression "modeled object" means the data itself. According to the type of system, the modeled object may be defined by different types of data. A system implementing the invention may be any computer capable of rendering a 3D scene. Exemplarily, the system may be any combination of a CAD system, a CAE system, a CAM system, a PDM system and / or a PLM system. In these different systems, the modeled object is defined by the corresponding data. Thus, one may say CAD object, PLM object, PDM object, CAE object, CAM object, CAD data, PLM data, PDM data, CAM data, CAE data. However, these systems are not exclusive, since a modeled object may be defined by data corresponding to any combination of these systems. Thus, a system may be both a CAD and a PLM system.

[0020] A CAD system additionally means a system adapted to design a modeled object based on at least a graphical representation of the modeled object, such as CATIA. In this case, the data defining the modeled object comprises data enabling the representation of the modeled object. The CAD system may for example provide a representation of the CAD modeled object using edges or lines, in particular cases with faces or surfaces. The lines, edges or surfaces may be represented in various ways, for example with Non-Uniform Rational B-Splines (NURBS). In particular, a CAD file contains a specification, from which a geometry is generated, whereby a representation is generated. The specification of the modeled object may be stored in one CAD file or in several CAD files. A typical size of a file representing a modeled object in a CAD system is in the range of one megabyte per part. And the modeled object may typically be an assembly of several thousand parts.

[0021] The modeled object may typically be a 3D modeled object, e.g., representing a product such as a part or a collection of parts, or possibly a collection of products. "3D modeled object" means any object modeled by data that allows for its 3D representation. The 3D representation allows for viewing of the part from any angle. For example, a 3D modeled object, when represented in 3D, can be manipulated and rotated around any of its axes or around any of the axes of the screen on which the representation is displayed. This notably excludes 2D icons that are not 3D modeled. The display of 3D representations facilitates design (i.e., improves the speed at which a designer statistically accomplishes a task). For example, a pseudo-3D scene is composed of 3D objects (e.g., 3D modeled objects) and 2D icons.

[0022] The 3D modeled object may represent the shape of a product that is manufactured in the real world after the virtual design is completed using, for example, a CAD software solution or CAD system, such as a (e.g., mechanical) part or collection of parts (or equivalently a collection of parts, which may be viewed as a part itself from the perspective of the method, or the method may be applied independently to each part of the collection), or more generally, any rigid collection (e.g., a moving mechanism), etc. CAD software solutions enable the design of products in a variety of unlimited industry sectors, including: aerospace, architecture, construction, consumer goods, high tech equipment, industrial equipment, transportation, marine, and / or offshore oil / gas production or transportation. The 3D modeled object designed by the method may thus represent an industrial product which may be any machine part, such as a part of a land vehicle (including, for example, automobiles and light truck equipment, racing cars, motorcycles, trucks and motor equipment, trucks and buses, trains), a part of an air vehicle (including, for example, airframe equipment, aerospace equipment, propulsion equipment, defense products, aviation equipment, space equipment), a part of a naval vehicle (including, for example, naval equipment, commercial vessels, marine equipment, yachts and workboats, marine equipment), a general machine part (including, for example, industrial manufacturing machinery, heavy mobile machinery or equipment, installed equipment, industrial equipment products, fabricated metal products, tire manufacturing products), an electric machine or electronic component (including, for example, consumer electronics products, security and / or control and / or instrumentation products, computing and communications equipment, semiconductors, medical equipment and devices), a consumer product (including, for example, furniture, home and garden products, leisure products, fashion products, hard goods retail products, soft goods retail products), packaging (including, for example, food and beverage and tobacco, beauty and personal care, household product packaging).

[0023] A CAD system may be history-based. In this case, the modeled object is further defined by data consisting of the history of its geometric features. The modeled object may have been designed by a real person (i.e., a designer / user) using standard modeling functions (e.g., extrude, revolute, cut, and / or round) and / or standard surfacing functions (e.g., sweep, blend, loft, fill, deform, and / or smooth). Many CAD systems that support such modeling functions are history-based systems. This means that the creation history of design features is preserved, typically through acyclic data flows that link said geometric features together through input and output links. The history-based modeling paradigm has been well known since the early 80s. A modeled object is described by two persistent data representations: the history and the B-rep (i.e., boundary representation). The B-rep is the result of the calculations defined in the history. The shape of the part that appears on the computer screen when the modeled object is represented is the B-rep (e.g., of a tessellation). The history of the part is the design intent. Basically, it collects information about operations that have been performed on a modeled object. Sometimes B-reps are stored with history to make it easier to view complex parts. Sometimes history is stored with B-reps to allow design changes to the part according to design intent.

[0024] FIG. 2 shows an example of a system, where the system is a client computer system, eg, a user's workstation.

[0025] The client computer of this embodiment comprises a central processing unit (CPU) 1010 connected to an internal communication BUS 1000, and a random access memory (RAM) 1070 also connected to the BUS. The client computer further comprises a graphical processing unit (GPU) 1110 associated with a video random access memory 1100 connected to the BUS. The video RAM 11000 is also known in the art as a frame buffer. A mass storage controller 1020 manages access to mass storage devices such as a hard drive 1030. Mass storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory including, illustratively, semiconductor memory devices such as EPROM, EEPROM, flash memory devices, magnetic disks such as internal hard disks and removable disks, magneto-optical disks, and CD-ROM disks 1040. Any of the foregoing may be supplemented by or incorporated in specially designed ASICs (Application Specific Integrated Circuits). A network adapter 1050 manages access to a network 1060. The client computer may also include a contact device 1090 such as a cursor control device, a keyboard, etc. A cursor control device is used in the client computer to allow a user to selectively place a cursor at any desired location on the display 1080. Additionally, the cursor control device allows a user to select various commands and input control signals. The cursor control device includes a number of signal generating devices for inputting control signals to the system. Typically, the cursor control device may be a mouse, and the buttons of the mouse are used to generate the signals. Alternatively or additionally, the client computer system may have a sensitive pad and / or a sensitive screen.

[0026] A computer program may include instructions executable by a computer, the instructions including means for causing the system to carry out the method. The program may be recordable on any data storage medium including the memory of the system. The program may be implemented, for example, in digital electronic circuitry, or computer hardware, firmware, software, or a combination thereof. The program may be implemented as an apparatus, for example an article tangibly embodied in a machine-readable storage device for execution by a programmable processor. The steps of the method may be executed by a processor capable of executing a program of instructions to perform the functions of the method by operating on input data and generating output. Thus, the processor may be programmable and coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. The application program may be implemented in a high level procedural or object oriented programming language, or in assembly or machine language as desired. In either case, the language may be a compiled or interpreted language. The program may be a full installation program or an update program. The application of the program on a system in any case provides instructions for carrying out the method.

[0027] The method may be included in a manufacturing process, which may include, after performing the method, manufacturing a physical product corresponding to the modeled object. In either case, the modeled object designed by the method may represent a manufactured object. Thus, the modeled object may be a modeled solid (i.e., a modeled object representing a solid). The manufactured object may be a manufactured product, such as a part, or a collection of parts.

[0028] Returning to Figure 1, an example method is described: A 3D scene is provided (step S10), which means that the system has access to the data of the 3D scene and can perform calculations on these data.

[0029] A 3D scene is a 3D space that is oriented (e.g., has a frame of reference) such that each object in the 3D scene has a position relative to the 3D scene. The 3D scene comprises at least one modeled object, typically a 3D modeled object.

[0030] A first 3D view of the 3D scene is provided (step S10). The first 3D view is displayed from a locked viewpoint plane of the 3D scene, i.e., a camera that captures the viewpoint is located on the plane. Since the plane is located in 3D space, the camera has a position in the 3D scene (also called a 3D position), and therefore the locked viewpoint has a 3D position.

[0031] The first 3D view is displayed from a locked viewpoint plane of the 3D scene. Such a situation may occur when the 3D scene constitutes a 2D image (i.e. the 3D scene constitutes a 2D object). The camera is located in a plane that may be parallel to the 2D plane of the 2D image. This allows, for example, to ensure that the 3D view of the 2D image is not distorted.

[0032] In an embodiment, a first 3D view of the 3D scene is displayed from a plane of the locked viewpoint and a 3D target position of the 3D scene, where the 3D target position is the position of the camera on the plane. For example, if the 3D scene constitutes a two-dimensional image, the camera may be placed at a specific 3D position (the 3D target position) on a plane parallel to the two-dimensional plane of the two-dimensional image. This helps to limit the effects of distortion of the 2D image in the first 3D view.

[0033] Illustratively, the 3D target position may be obtained by selecting a 3D modeled object in the 3D scene to act as the target object. Once selected, the camera is positioned on the locked viewpoint plane of the 3D scene such that the first 3D view displays the target object at the center of the 3D scene. In this way, the camera is pointed towards the target object. It should be understood that the representational center of the 3D scene may encompass situations where the target object is not exactly centered in the first 3D view, but rather sensorily centered. This position of the camera on the locked viewpoint plane of the 3D scene is referred to as the 3D target position.

[0034] The selection of the target object may be performed by a user, who selects the target object by performing a selection operation, for example, the user selects the target object by clicking on the target object. The selection may also be performed automatically by the system. If the 3D scene consists of only one object, the selection is simple. If the 3D scene consists of two or more 3D modeled objects, the selection consists of calculating the mean center of the 3D modeled objects of the 3D scene, and this mean center is used as a "virtual target object". The mean center may be obtained using the Euclidean distance between the 3D modeled objects of the 3D scene.

[0035] The center of the target object may be determined to display the target object in the center of the 3D scene, and thus the camera of the 3D target location is directed to the center of the target object. The center of the target object may be calculated using the bounding box of the target object. The bounding box may be a parallelepiped that completely encloses the target object, as known in the art. More generally, the bounding box may be a bounding volume. If the 3D scene consists of multiple 3D objects, the bounding boxes of the 3D objects may be used to calculate a "virtual target object". The centers of the bounding boxes of the 3D objects are used to calculate the mean center. Alternatively, as another example, a set of 3D objects of the 3D scene may be enclosed by a main bounding volume (e.g., a bounding box), and the main bounding box provides a center used to determine the display of the target object in the center of the 3D scene.

[0036] An example of the providing step S10 is described with reference to Fig. 3. In this example, the providing step comprises displaying a 3D scene, for example in a graphical user interface (GUI). The 3D scene 30 is composed of two objects. The first object is a 2D image representing a view over a garden. The second object 32 is a 3D modeled object, a parallelepiped. The 3D scene is a pseudo-3D scene, since it mixes 2D (here forming the background) and 3D representations. The view on the 3D scene is called the first 3D view. This first 3D view is displayed from a locked viewpoint of the 3D scene and a plane of a 3D target position. This plane is parallel to the two-dimensional image of the background representing the garden, and the parallelepiped is the target object. The first 3D view, initially centered on the target object, has been displaced to the right as a result of a left pan (in-plane) of the camera.

[0037] The 3D scene is provided with a toolbar 34 with a standard menu bar, and a bottom and side toolbar (not shown). Such menu bar and toolbar contain a set of user selectable icons, each icon being associated with one or more operations or functions, as known in the art. Some of these icons are associated with software tools adapted to edit and / or work with the 3D modeled object 32 displayed in the GUI. The software tools may be grouped into workbenches. Each workbench constitutes a subset of the software tools. In particular, one of the workbenches is an edition workbench suitable for editing the geometric features of the modeled product. In operation, the designer can, for example, preselect a part of the object to start an operation (e.g., change dimensions, color, etc.) or edit geometric constraints by selecting the appropriate icon. For example, a typical CAD operation is modeling a punching or folding of the 3D modeled object displayed on the screen. The GUI may, for example, display data related to the displayed product. The GUI may further display different types of graphic tools, for example, for triggering a simulation of an operation of the edited product or for rendering various attributes of the displayed product. A cursor at position 36a on the locked viewpoint plane may be controlled by a haptic device to allow the user to interact with the graphic tools, which may be a mouse or the display if the display is a touch-sensitive display.

[0038] Returning to FIG. 1, a continuous user interaction is detected by the system (step S20). The continuous user interaction comprises a displacement between a first position on a plane and a second position on the plane. The user interaction may be a slide on the touch-sensitive display performed with a pointer, such as a finger, a stylus-like device, etc. During the slide, the pointer is in continuous contact with the touch-sensitive display, for example, the pointer remains in contact with the touch-sensitive screen from a first position to a second position on the touch-sensitive display. The user interaction may be performed with a haptic device controlling a cursor, where the user holds down a button on the haptic device while moving the haptic device. It will be understood that any other continuous user interaction may be performed.

[0039] The first location on the plane is a location on the plane where a successive user interaction is initiated, and the second location on the plane is a location on the plane where the successive user interaction is detected.

[0040] The second position may be a position on the plane where the user stops performing continuous user interaction, for example where the finger has less contact with the touch-sensitive display or where the user has released a button on a haptic device.

[0041] The second position may be a position on the plane where the user stops a displacement of the user interaction, for example, the user keeps the finger in contact with the touch-sensitive display and does not move the finger anymore, the user stops the haptic action to move the cursor but keeps the button down, etc. It is understood that if a displacement is started again from the second position and is continuous with a previous displacement (e.g. the finger is kept on the display and the button is kept down), the previous displacement and the current displacement are seen by the system as forming one displacement.

[0042] The displacement is performed on the plane of the locked viewpoint of the 3D scene, or otherwise on the same plane to which the camera is locked. While the user is performing the displacement, the distance between the first position and the second position on the plane is calculated (S30). The distance may be a Euclidean distance on the plane of the locked viewpoint. Thus, the distance increases when the second position moves away from the first position and decreases when the second position moves closer to the first position. The distance calculation is performed for each second position detected by the system after the user has performed a displacement, for example when the user makes a gesture.

[0043] Next, in S40, a comparison is made between the calculated distance and a predetermined distance. It is understood that the distance values ​​are compared. The comparison is made after each calculation of the distance. A comparison is made for each obtained distance between the first position and the second position.

[0044] The comparison is a test to determine whether the movement of successive user interactions on the plane exceeds a threshold, called the predefined distance. If the calculated distance is not greater than the predefined distance, nothing happens. If the calculated distance is greater than the predefined distance, a switchover S50 from the first 3D view to the second 3D view is performed. This switchover triggers a movement of the camera in the 3D scene. The locked viewpoint is unlocked. This comparison improves ergonomics, since the switchover is triggered only if a minimum distance is moved by successive user interactions. Too small or involuntary displacements do not trigger the switchover. The expression "greater than" may mean "greater than or equal to" (≧) or "greater than" (>).

[0045] In an example, switching from a first 3D view to a second 3D view may involve moving the camera on a plane, with the viewpoint of the first 3D view being unlocked but kept on the plane.

[0046] Illustratively, the second 3D view of the 3D scene may be a 3D view of only the 3D objects. This includes that if the first view on the 3D scene consists of 2D elements, these elements are either removed from the 3D scene or displayed as 3D objects (e.g., as planes in the 3D scene). For example, an icon (a 2D object) may be represented as a 2D surface in 3D space.

[0047] In an exemplary embodiment, the viewpoint of the second 3D view may be calculated based on the first and second positions on the plane (S42). That is, the distance between the first and second positions on the plane and / or the relative position of the second position with respect to the first position is used to determine the second 3D view. The calculation (S42) may be performed after the comparison (S40) and / or after the switching (S50). In a first example, the displacement of the camera position is proportional to the measured distance. In a second example, the direction of the camera movement on the plane is the same as the direction of displacement between the first and second positions. In a third example, the first and second examples are combined. In a fourth example, a locked viewpoint (obtained with a locked camera) performs a rotation in the 3D scene. In a fifth example based on the fourth example, a rotation is performed around a target object that defines the rotation axis. In a sixth example, the first and / or the fourth and / or the fifth examples are combined.

[0048] In examples, a ratio between the calculated distance and a predefined distance is obtained to calculate the viewpoint of the second 3D view. The use of the ratio improves ergonomics since less distances need to be performed by user interaction to calculate the viewpoint of the second 3D view. In these examples, a value of the ratio between the calculated distance and the predefined distance is calculated. It is understood that this value may be calculated while the user interaction is being performed (e.g. while the second position is moving away from the first position or approaching the first position), this calculation being performed after the comparison step S40. The locked viewpoint on the first 3D view is then unlocked and modified to form the viewpoint of the second 3D view, the modification of the locked viewpoint being performed based on the value of the calculated ratio. The modification of the locked viewpoint may be performed while the user interaction is being performed. Alternatively, the modification of the locked viewpoint may be performed after the switching is performed.

[0049] When the locked viewpoint is changed during a user interaction, the first 3D view on the 3D scene may be modified for each detected position of the second position, displaying each change for each detected position, thereby providing the user with real-time graphical feedback of their gestures.

[0050] In an example, the ratio value may be used to calculate the rotation of a locked perspective executed according to two rotation speeds. In an example, if the calculated value of the ratio is between P and Q (where P and Q are real numbers satisfying P < Q), the rotation of the perspective locked at the first rotation speed is started. The change in the locked perspective is displayed. If the calculated value of the ratio is greater than Q, the rotation of the locked perspective is continuously displayed, but the rotation is started at the second rotation speed. Therefore, an increase in the ratio value can control the following three states. Nothing happens while the value is not greater than the first threshold P, the locked perspective is unlocked, rotation is applied at the first rotation speed when the first threshold is reached, and rotation is changed at the second rotation speed when the second threshold Q is exceeded while the second threshold Q has not been reached. When the second threshold Q is exceeded, rotation is changed at the second rotation speed. In this way, the user receives visual feedback on the state of the gesture perceived by the system. This improves the interaction with the system because the user can understand when the system is ready to switch from the first view to the second view.

[0051] In one example, the ratio values are P = 1, Q = 2, and the second rotation speed is 10 times the first rotation speed. This can improve the interaction between the user and the system. When the ratio value is composed between 1 and 2, the unlocked perspective of the first 3D view rotates slowly, and when the distance between the first position and the second position continues to increase, it indicates that the system is ready to execute the switch. When the value Q = 2 is reached, the second view is displayed to the user, and the rotation of the unlocked view point of the second view can be continued at the second rotation speed.

[0052] In an embodiment, the rotation applied at the first rotation speed or the second rotation speed is proportional to the distance between the first position and the second position. That is, the rotation angle gradually increases as the distance increases (S30).

[0053] In an embodiment, due to the proportional relationship between the rotation angle and the calculated distance (S30), an inverse rotation angle can be applied when the first distance and the second distance decrease. For example, after switching, the viewpoint of the second 3D view can be freely rotated to configure the desired unlocked viewpoint point of the second 3D view.

[0054] As already discussed, the user's interaction is continuous and the system detects the interaction continuously. For example, the system may detect that the user has stopped interacting. Otherwise, the continuous user interaction is released. In this situation, if the switching (S50) is not performed, the locked 3D view is still displayed to the user, or if the viewpoint is temporarily unlocked, the viewpoint of the first 3D scene is locked again after acquiring its initial position (the viewpoint of the first 3D view).

[0055] In one example, if continuous user interaction is released while the calculated value of the ratio is between P and Q, the rotation of the unlocked viewpoint may be stopped (i.e., no longer controlled in response to user actions) and the unlocked viewpoint may return to its initial position as the locked viewpoint of the first 3D view of the 3D scene. The return to the initial unlocked position may be indicated, for example, by applying a reverse angle of rotation at the first rotation rate. The return to the initial locked viewpoint is less abrupt to the user, thus improving ergonomics for the user.

[0056] Also, in one example, the rotation of the current viewpoint may be stopped if continuous user interaction is released for a rate value greater than Q. However, due to the switching (S50) being performed, the viewpoint from which the rotation has been released is set as the viewpoint of the second 3D view.

[0057] An example of a method involving rotation of the unlocked viewpoint of the first 3D view is discussed. The rotation is performed about a rotation axis located in the 3D scene. The calculations to perform the rotation may be performed as known in the art. The calculation of the rotation axis is currently discussed. In the former example, i.e. the fifth example herein, the rotation is performed about a target object that defines the rotation axis. The selection of the target object may be performed as previously discussed. It can be understood that a "virtual target object" may be used when the 3D scene is composed of two or more virtual objects. The rotation axis may be defined about at least one target object. This means that the rotation axis constitutes the center of the target object (or the center of the "virtual target object"). In one example, the center of the target object may be calculated using the bounding box of the target object. At least three axes may be defined on the bounding box, each axis passing through the center of the bounding box and the middle of two opposing faces. The default axis may be selected by the system, for example the axis with the direction closest to the main orientation of the oriented 3D space. If the 3D scene is oriented using a reference frame, the rotation axis selected by the system may be the axis having the closest orientation with respect to the main directions of the 3D scene, or the axis having the closest orientation with respect to one of the three main directions provided by the reference frame. It will be appreciated that the automatic selection of the rotation axis may be performed using further criteria.

[0058] In examples, the predetermined distance may be selected based on a user action, for example prior to the detection step (S20).

[0059] In an example, the predetermined distance may be calculated from characteristics of a display of a system performing the method. For example, the predetermined distance may be comprised between 15% and 30% of the Euclidean distance of the width of the display. In one example, the predetermined distance represents approximately 20% of the width of the display. It is understood that a length, a diagonal, may be used as well, for example, the predetermined distance may be comprised between 15% and 30% of the Euclidean distance of the length of the display. Calculating the predetermined distance from characteristics of the display ensures that the unlock distance is always available regardless of the device orientation.

[0060] If the user interaction is continuous, the first location does not change. Only the second location changes in response to the user's actions. The system knows at any time where the second user interaction is. The system periodically checks the location of the second location. Depending on the system, the frequency of checking may vary. In one example, if the second location has not changed between two checks, the subsequent steps of the method are not executed. In an example, if the second location has changed between two checks, the subsequent steps are executed.

[0061] An example of the method is described with reference to Fig. 3 to Fig. 5. Fig. 3 has been discussed and shows an example of the providing step S10. Once the display of the first view of the 3D scene has been made, the user initiates a user interaction to trigger a switch from the first view to the second view on the 3D scene. The first position is the position 36a of the cursor on the locked perspective plane of the 3D scene. The locked perspective plane is parallel to the background image representing the garden. Now, with reference to Fig. 4, the user displaces the cursor from the first position 36a to a second position 36b in the 2.5D scene. The first position may contribute to defining the final orientation. Indeed, the first position 36a is in the upper right corner, so that the most space available for movement is in the direction of the left side of the figure. During the displacement of the cursor from the first position 36a to the second position 36b, a ratio value between the calculated distance and a predefined distance is calculated. If the ratio value is greater than or equal to 1, the first view on the 3D scene is unlocked. While the ratio value is configured between 1 and 2, the camera of the unlocked 3D view rotates about an axis defined from the bounding box of the target object 32. This rotation is proportional to the distance between the first and second positions and therefore proportional to the ratio. For illustrative purposes only, the axis 33 is represented by a line on FIG. 4. It is understood that the axis may be embodied in the 3D scene by a point (having 3D coordinates in the 3D scene) providing the axis of rotation. The user can displace the cursor back and forth. Thus, while the ratio is configured between 0 and 2, the unlocked viewpoint of the first 3D view rotates according to successive user interactions, and when the user releases the successive user interactions, the locked 3D view is displayed again, as shown in FIG. 3. Thus, when the ratio reaches a value ratio equal to 1, the user can cancel the gesture by releasing the user interaction. The first rotation speed used during this partial degesture provides the user with the effect of resistance to the gesture, thus informing the user that the system is ready to trigger a switch if the distance between the first and second positions increases.The portion of the gesture for a ratio that is a value between P and Q allows the user to prepare for obtaining a desired viewpoint of the second 3D view, whereby the user can prepare for obtaining a desired viewpoint of the second 3D view.

[0062] FIG. 5 is a representation of the displayed second 3D view obtained after the switching step (S50). The second 3D view is freed from the 2D constraints of FIG. 3 and FIG. 4. In fact, the 2D background image (garden) has been removed from the 3D scene so that the 3D scene consists only of the 3D object - the parallelepiped 32. Interestingly, if the user interaction is maintained after the switching, the unlocked viewpoint of the 3D view can still be configured until the user stops the interaction, for example until the user is satisfied by the unlocked viewpoint of the second 3D view. Due to the high rotation speed after the switching, the user can select the desired viewpoint more quickly, thereby improving ergonomics. Once the user interaction is stopped, the viewpoint is maintained in its last position, as represented in FIG. 5.

Claims

1. 1. A computer-implemented method for switching from a first 3D view of a 3D scene to a second 3D view of the 3D scene, comprising: providing (S10) a first 3D view displayed from a locked viewpoint plane of a 3D scene, the 3D scene including a 2D background image and the locked viewpoint plane, the plane being parallel to the 2D background image; Detecting (S20) a continuous user interaction consisting of a displacement between a first position on the plane and a second position on the plane; a step (S30) of calculating a distance between the first position and the second position on the plane each time the second position is corrected; A step (S40) of comparing the calculated distance with a predetermined distance; if the calculated distance is greater than a predetermined distance, switching (S50) from the first 3D view to a second 3D view, in which the 2D background image has been removed from the 3D scene; 23. A computer-implemented method comprising:

2. After said comparison, further comprising the step of calculating a viewpoint of a second 3D view based on the first position and the second position on the plane (S42).

2. The computer-implemented method of claim 1, comprising:

3. The step of calculating a viewpoint on the second 3D view (S42) comprises: calculating a ratio value between the calculated distance and the predetermined distance; unlocking the locked viewpoint; modifying the unlocked viewpoint to form a viewpoint of the second 3D view, the modification of the unlocked viewpoint being based on the calculated ratio value; 3. The computer-implemented method of claim 2, comprising:

4. if the calculated ratio value is between P and Q, where P and Q are real numbers such that P<Q, commence a rotating display of the unlocked viewpoint at a first rotation speed; If the calculated ratio value is greater than Q, continue displaying the unlocked viewpoint rotation at the second rotation rate.

4. The computer-implemented method of claim 3.

5. The initiation of the rotational display of the unlocked viewpoint is performed on a first 3D view of the 3D scene, and the continuation of the rotational display of the unlocked viewpoint is performed on a second 3D view of the 3D scene.

5. The computer-implemented method of claim 4.

6. P = 1, Q = 2, and the second rotation speed is 10 times the first rotation speed. A computer-implemented method according to any one of claims 4 to 5.

7. if the continuous user interaction is released when the calculated ratio value is between P and Q; Stopping the rotation of the unlocked viewpoint; Return to locked viewpoint at first rotation speed A computer-implemented method according to any one of claims 4 to 6.

8. If the continuous user interaction is released when the value of the calculated ratio is greater than Q, Stops the rotation of the current viewpoint, Set the rotated and locked viewpoint as the viewpoint on the second 3D view A computer-implemented method according to any one of claims 4 to 7.

9. the 3D scene comprises at least one 3D modeled object, and the rotation of the unlocked viewpoint is performed about a rotation axis around the at least one target object. A computer-implemented method according to any one of claims 4 to 8.

10. The predetermined distance is comprised between 15% and 30% of the Euclidean distance of the width of the display on which the 3D view is displayed in the providing step (S10). A computer-implemented method according to any one of claims 1 to 9.

11. A computer program comprising instructions for carrying out the method according to any one of claims 1 to 10.

12. A computer-readable storage medium having the computer program of claim 11 recorded thereon.

13. 12. A system comprising a processor coupled to a memory and a display, the memory having the computer program of claim 11 stored therein.

14. The display is a touch-sensitive display for receiving and detecting user interactions. The system of claim 13.

Citation Information

Patent Citations

  • Three-dimensional viewpoint confirming method for cad system

    JP1993165922A

  • Projection image generator and its program

    JP2008259612A

  • Display, display method and program

    JP2010092233A

  • Touch panel input device

    JP2011170598A

  • Architectural image display device, architectural image display method, and computer program

    JP2014089697A