3-D Transition
By rendering three-dimensional splash screen and transition technology on a three-dimensional display, the problem of unsmooth transition between scenes and applications in a three-dimensional environment is solved, and a more natural and comfortable user experience is achieved.
Patent Information
- Application Number
- CN201980045646.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-07-09
- Filing Date
- 2019-06-19
- Publication Date
- 2025-03-25
- Estimated Expiration
- 2039-06-19
AI Technical Summary
In a three-dimensional environment, the transition between the scene and the application can lead to sudden changes that lead to the user being disoriented or discomfort, and prior art such as splash screens and fade methods cannot effectively solve this problem.
Using 3D splash and transition technology, splash pixels are rendered on a 3D display until the new application is ready to start rendering, and then rendering controls are handed over to the new application to achieve a smooth transition between the scene and the application.
Through this method, a smooth transition between the scene and the application in a three-dimensional environment is achieved, avoiding discordant cutting or black fading, and improving the user experience.
Smart Images

Figure CN112384954B_ABST
Abstract
Description
[0001] background
[0002] As the use of 3-D rendering systems such as head mounted display devices becomes more common, more and more users can participate in experiences that display content via augmented reality (AR), mixed reality, and / or virtual reality (VR) technologies. In addition to entertainment scenarios, more and more people are implementing these experiences for specific purposes (e.g., employee training experiences for new employee training, marketing experiences for potential buyers of services such as vacations or items such as a pair of skis, etc.). In various cases, scenes displayed in AR, VR, etc. can often have fast transitions.
[0003] It is with respect to these and other technical challenges that the present disclosure made herein is addressed. Summary of the invention
[0004] The transition between scenes and applications in a three-dimensional environment can sometimes be disorienting and / or unpleasant due to sudden transitions or during periods of time when scenes may be dark or blank. For example, in some cases, the transition may be a jarring cut or a fade through black. In three-dimensional environments such as immersive virtual reality systems, the splash screen used during transitions in 2D environments is not an appropriate solution because it does not cover the entire field of view of the user. The technology described herein provides a platform that uses three-dimensional splash screens and transition techniques to create a smooth transition between scenes and applications in a three-dimensional environment. In one embodiment, the platform can render splash screen pixels to a three-dimensional display until the new application is ready to start rendering. Once the new application is ready, the new application can assume control of the rendered three-dimensional display. By managing scene transitions in this way, smooth transitions can be rendered between scenes and applications while avoiding jarring cuts or the need for fade through black.
[0005] Various embodiments of a technique for generating a transition between displayed images in a three-dimensional environment are disclosed, the transition reducing the degree of abruptness in the change between displayed images, thereby providing a smoother viewing experience for a user. The technique may be applicable to the field of three-dimensional displays, such as virtual reality displays and augmented reality displays, where abrupt changes to the content displayed on a virtual reality headset may cause an uncomfortable experience for the user. In one embodiment, a panoramic wide-range 3D image is rendered. When transitioning to an image for a different experience, some aspects of the initial panoramic wide-range 3D image may fade out, and an image for a new experience (e.g., for a gaming experience) may have its associated pixels fade into the displayed image of the panoramic wide-range 3D image. This can allow for image transitions that do not include blanking out any or all of the display when transitioning between scenes for two different experiences.
[0006] This Summary is provided to introduce in simplified form a selection of concepts that are further described below in the Detailed Description. This Summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used to help determine the scope of the claimed subject matter. For example, the term "technique" may refer to system(s), method(s), computer-readable instruction(s), module(s), algorithm(s), hardware logic, and / or operation(s) as permitted in the above context and throughout the document. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The detailed description is described with reference to the accompanying drawings. The same reference numbers in different drawings indicate similar or identical elements.
[0009] Figure 1 is a diagram illustrating an example of a screen in a 3D environment according to some embodiments.
[0010] Figure 2 is a diagram illustrating an example of a screen in a 3D environment according to some embodiments.
[0011] Figure 3 is a diagram illustrating an example of a screen in a 3D environment according to some embodiments.
[0012] Figure 4 is a diagram illustrating an example system in which the disclosed technology may be implemented.
[0013] Figure 5 is a diagram illustrating an example of data communication according to the techniques described herein.
[0014] Figure 6 is a diagram illustrating an example flow diagram of operations related to scene management.
[0015] Figure 7 is a diagram illustrating an example flow diagram of operations related to scene management.
[0016] Figure 8 is a diagram illustrating an example flow diagram of operations related to scene management. DETAILED DESCRIPTION
[0017] Many systems are capable of rendering 3-D environments, such as virtual reality (VR) systems and augmented reality (AR) systems. An example of a VR system may be a head mounted display (HMD) or similar device worn by a user to generate an immersive VR environment. Typically, an HMD is a portable device worn on the user's head. The display is located at a short distance from the eyes and provides images for the user to view and interact with. Some HMDs provide a hybrid VR and AR environment in which the user can see images created by the computing device and some real-live images. Other HMDs provide an immersive experience that blocks the outside world from the user while providing a virtual world on the HMD display.
[0018] The user's physical movements can be translated into corresponding movements in the 3D environment. Differences in the boundaries of things rendered by one application and the boundaries rendered by another application can cause inconsistencies or disruptions in the immersive experience and disorientation when the user approaches and / or encounters a transition between applications. For example, when transitioning between applications, an immersive VR environment may become dark or be rendered in abrupt transitions that may become jarring or disorienting. For example, a smooth or elegant transition from the virtual world of one application or scene to the virtual world of another application or scene can avoid disorientation, motion sickness, or other effects that may occur to the user when experiencing an abrupt transition.
[0019] The disclosed embodiments describe methods, apparatus, systems, and computer programs for managing the display of images in a 3D rendering environment, such as a virtual reality platform (e.g., where a head mounted device (HMD) or other VR display is used). Although many examples are described herein in the context of an HMD configured to render a 3D VR environment, it should be understood that the disclosed techniques may be implemented in any environment where scenes are transitioned in a 3D environment. It will be apparent that embodiments of the present disclosure may be practiced without some or all of these specific details. In other instances, well-known process operations are not described in detail to avoid unnecessarily obscuring the embodiments of the present disclosure.
[0020] Various techniques for generating three-dimensional transitions, such as in a virtual reality (VR) environment, are described. In various embodiments, a platform is provided that is configured to generate one or more transitions or splash screens to facilitate transitions that address the shortcomings described above. Additionally, the embodiments also overcome problems associated with simply applying transitions used when an application is being launched or transitioned in a two-dimensional environment. As used herein, an application or scene to be rendered may be referred to as a target application or scene. An application or scene currently being rendered may be referred to as a current application or scene.
[0021] In some embodiments, the platform may be configured to render splash screen pixels on the 3D display until the target application is ready to start rendering or the target scene is ready to be rendered. Once the application or scene is ready, the target application assumes the rendering of the splash screen pixels, allowing for a smooth transition between the application and the game and avoiding jarring cuts or the need to fade to black.
[0022] The described technology allows for transitions between displayed images that reduce the degree of abrupt changes between displayed images, thereby providing a smoother experience for users who are viewing VR or other environments. The technology may be applicable to VR displays, where abrupt changes to what is displayed on the VR display may cause an uncomfortable experience for the user. In one embodiment, a panoramic wide-range 3D image may be provided. During a transition sequence from a current application or scene to a target application or scene, the current application or scene may fade out or otherwise be transitioned in a gradual manner. In one embodiment, the current application or scene may be a startup environment for a VR environment, which may be similar to a start menu in a 2D system. The startup environment may include a panoramic wide-range 3D image. When the transition is initialized to the target application, the panoramic wide-range 3D image may fade out or otherwise be transitioned in a gradual manner. The image for the target application may have its associated pixels fade in or otherwise be transitioned in a gradual manner to allow a new VR environment for the target application to be rendered in a manner that does not include blanking the VR display, making the VR display dark, or otherwise rendering a sudden transition between viewing experiences between applications.
[0023] In one embodiment, the transition environment may include, for example, Figure 1 . In the illustrated example, a startup environment 100 is depicted that includes a room with glass windows. The startup environment 100 further includes a selection menu 110 that enables selection of various applications and environments. Although the present disclosure depicts example embodiments in the context of a rendered room environment, it should be understood that other rendered environments may be implemented while embodying the disclosed transition techniques.
[0024] In many VR environments, a blank or black environment is rendered during a period when a new application is loaded or an application is transitioning. In a VR setting, a change to a blank or black environment may cause an unpleasant experience for the user. For example, when suddenly faced with a black environment during an application transition, it may cause the user to feel claustrophobic. Such an unpleasant transition may also occur when transitioning between sessions or settings within the same application. Unpleasant transitions may prevent users from freely transitioning to new environments and applications, prevent users from multitasking between applications, or prevent users from freely using applications because users want to minimize the frequency of unpleasant transitions. This may reduce the usefulness of the application because users may launch the application less frequently or reduce its overall usage. In addition, some methods for rendering transitions may utilize a large amount of system resources, such as processing and storage resources. The described technology solves the described shortcomings, thereby providing a smooth and seamless transition between VR environments, while doing so in an efficient manner.
[0025] In many two-dimensional settings, such as two-dimensional game consoles, when a new application, such as a game, is launched, a splash screen is rendered to indicate to the user that the launch of the game has begun. The splash screen serves to inform the user that progress is in place while providing a visual hold mode that allows for a smoother visual transition as the game is being loaded and launched.
[0026] In a VR environment, splash screens are not sufficient to provide a smooth transition because a three-dimensional environment must be rendered that does not obey a single splash screen across a 360-degree field of view. Figure 1 In the illustrated embodiment, the exterior of the rendered room is visible through the window. In one embodiment, the outside world can be an infinite cube represented by several windows or screens (which are shown as six windows in this example). When a game or other application is selected, the cube can be rendered on the window to initiate an indication of the transition. Rendering can occur in a gradient sequence so that the transition can occur in an orderly manner that provides a minimally perceptible transition. In some embodiments, a portal 120 can be rendered that renders a preview of a target application or scene. For example, based on data related to a target application or target scene, a representation of the target application or target scene can be generated or accessed and rendered in the portal, which can provide the user with further indication that the target has been correctly selected. Figure 1 Also illustrated are a foreground portion 130 and a background portion 140, which may be transitioned differently as further described herein.
[0027] refer to Figure 2 , illustrates an example of transitioning a 3-D scene according to some embodiments. Figure 2, the startup environment 100 after the video game application is selected via the selection menu 110 is shown. In one embodiment, each part of the background 200 is transitioned during the transition period when the selected video game application is being loaded and started. In some embodiments, the graphical data representing the transition to the target application or scene can be accessed. For example, several graphics files can be stored and can be accessed via the file system, and the several graphics files represent the possible selection of the target application or scene. In one embodiment, each application installed on the local device can have an associated graphics file representing the transition scene for the application. If the associated graphics file is not available, the default graphics file can be used. In some embodiments, each part of the background 200 can be transitioned to the target scene using a progressive scheme (such as linear interpolation). In other embodiments, each part of the background 200 can be transitioned to the target scene using another progressive scheme (such as using the state of the game or application that will assume control of the rendering). For example, the percentage or other indication of the progress of the target game or application in being loaded and prepared can be used.
[0028] When the target application is ready to assume rendering to the VR display, the platform can allow the game or application to assume control of the rendering. In some embodiments, the platform can provide data about the user's state (such as the user's position and line of sight). Other information may also be provided to enable the game or application to seamlessly assume control of the rendering based on the user's current state. In many cases, the VR system platform and the game or application may be running different 3-D engines, and the platform can provide enough information to enable the 3-D engine of the target application to take over the rendering without abrupt transitions or periods of black or blank displays. More generally, the disclosed technology can be used to facilitate transitions between arbitrary 3D experiences in a VR environment. For example, the disclosed technology can be used when navigating between web pages and other hyperlinked documents. Additionally, the disclosed technology can be used to facilitate transitions between scenes within the same application, where abrupt transitions between scenes should be reduced or avoided.
[0029] In one embodiment, during transitions between 3D experiences, such as Figure 1 An environment such as the one shown may be rendered in a VR display. In the present disclosure, such an environment may be referred to as a "skybox". An application that will be launched and rendered in the VR environment may be referred to as a target application. During the transition time when the target application is being loaded and ready to be launched, visual artifacts indicative of the target application may be rendered in portions of the skybox. In one embodiment, the visual artifacts may be rendered in a gradient manner spatially, temporally, or a combination of both.
[0030] In one embodiment, data indicating a representative splash screen may be provided by a target application. The representative splash screen may be transitioned to portions of the startup environment 100. In one embodiment, portions of the representative splash screen may be selected for rendering on the startup environment 100. For example, a random selection of a representative splash screen may be progressively rendered in the startup environment 100. In other embodiments, a portion of the representative splash screen may be rendered in the startup environment 100. A transition time period may be estimated, and additional portions of the representative splash screen may be rendered in the startup environment 100 during the transition time period. In some embodiments, the background 140 may be transitioned to render the representative splash screen, for example using linear interpolation or another progressive rendering scheme.
[0031] As the transition is rendered, the user's head tracking information may be provided to the target application (or the engine rendering the target application) through the platform. Other information may be provided to the target application as needed. The target application may provide the location of the executable file for launching the target application, splash screen data for rendering on the skybox, and other information for launching the environment 100. In some embodiments, an application programming interface (API) may be used to receive a request for information and provide the requested information. Additionally or optionally, a repository such as a virtual storage may be used to provide information about the user state, system state, and other relevant information.
[0032] refer to Figure 3 , illustrates an example screen 300 illustrating an initial screen of a selected video game application after the selected video game application has been loaded and rendering control has been transferred to the video game application. Figure 2 When rendered in the transition environment 100 in , the transition to the screen 300 can be achieved in a seamless manner, thereby maintaining a stable visual environment during the transition, while rendering the gradient change to indicate that the transition is in progress. In addition, the artifact can at least visually indicate the selected video game application, which provides an indication to the user that the application being launched is the correct application.
[0033] Figure 4 A user 204 is illustrated, according to one embodiment, interacting with a head mounted device (HMD) 116. In the figure, the user 204 is depicted wearing the HMD 116, which may include a computing device 114 and a display 118 configured to render images near the user's eyes.
[0034] In one embodiment, computing device 114 may execute an application that may be displayed on HMD 116. Computing device 114 may thus interact with HMD 116 to display images for the application. Processing of the operation may be completed on computing device 114, on HMD 102, or in both computing device 106 and HMD 116.
[0035] exist Figure 1 In some embodiments, the HMD 116 can communicate with other devices wirelessly (e.g., WiFi, Bluetooth, etc.). In other embodiments (not shown), the HMD 116 can be connected via a network (e.g., the Internet). For example, the HMD 116 can communicate with a server on the network that provides data or other services. In some embodiments, the HMD 116 can be an autonomous device, and applications can be executed directly on the HMD without the need for an external device to run the application.
[0036] In one embodiment, camera(s) may be coupled to HMD 116. The camera may be a networked camera that sends images to a computing device. Camera 104 may be one or more of: a conventional image camera, a stereo camera (i.e., having two or more lenses that capture images from a play area), an infrared camera, a depth camera, a 3D camera, etc.
[0037] Images captured by the camera may be processed to track the position and movement of the HMD 116. In addition, these images may also be used to track the position and movement of a user or user features (e.g., a user's head, a user's mouth, a user's hands, a user's torso, etc.), a controller, or any other element in the play area.
[0038] In one embodiment, the user may provide commands via voice recognition, which may be executed by computing device 114 via voice capture through one or more microphones, or may be executed by HMD 116, which in one embodiment also includes one or more microphones. In another embodiment, user 204 may also provide input via gestures that are analyzed and recognized by computing device 114.
[0039] Please note that Figure 4 The illustrated embodiments are provided only as examples. Other embodiments may utilize different devices, a different number of devices, have more or less interactions between different devices, use other communication methods. Figure 4 The embodiments illustrated in the present invention should not be interpreted as exclusive or limiting, but rather as illustrative.
[0040] The computing device 112 and the head mounted display device 116 may include a processor, examples of which are further described herein. Moreover, the computing device 112 and the head mounted display device 116 may include corresponding computer readable media 124 and communication interfaces, examples of which are further described herein. The computing device 112 and the head mounted display device 116 coordinate and communicate with each other to execute the scene management module 132. The scene management module 132 provides functionality to seamlessly switch between scenes so that the user 102 can view the three-dimensional scene in the three-dimensional immersive environment via the display 118 of the head mounted display device 116.
[0041] Examples of head-mounted display device 116 include, but are not limited to, OCCULUS RIFT, GOOGLE DAYDREAMVIEW, MICROSOFT HOLOLENS, HTC VIVE, SONY PLAYSTATION VR, SAMSUNG GEAR VR, GOOGLE CARDBOARD, SAMSUNG HMD ODYSSEY, DELL VISOR, HP head-mounted device, LENOVO EXPLORER, ACER head-mounted device, ASUS WINDOWS mixed reality head-mounted device, or any augmented reality, mixed reality and / or virtual reality device.
[0042] Accordingly, in some instances, head mounted display device 116 may not include a processor or a computer readable medium. Instead, head mounted display device 116 may include an output device configured to render data stored on computing device 112 for display. For example, head mounted display device 116 may be tied to computing device 112. Thus, the interfaces of computing device 112 and head mounted display device 116 may be configured to communicate via a wired and / or wireless universal serial bus ("USB") connection, a Bluetooth connection, a high-definition multimedia interface ("HDMI") connection, and the like.
[0043] When managing scenes, the scene management module 132 may provide controls to select and start applications, or select various controls within applications based on user input. As used herein, a "control" may include a displayed graphical user interface (GUI) element (e.g., a button, an object, etc.) that is activated based on an interaction between a GUI element and a user input (e.g., a user selection or a click on a GUI element). A control may alternatively be configured to accept and / or detect other forms of input, such as a voice command or a gesture. Thus, a control may be configured to receive user input, but may not necessarily be displayed as a GUI element.
[0044] The computer-readable medium 124 may also include a transition module 134 configured to facilitate scene transitions, as further described herein, and a data module 136 configured to access and send data to a launched application (such as a user state).
[0045] The computing device 114 may be configured to manage and implement scene changes as part of a 3D experience, and may include, for example, a game console, a desktop computer, a laptop computer, a gaming device, a tablet computer, a mobile phone, a web-enabled television, an Internet of Things (IoT) device, a media player, or other computing device. In some implementations, the computing device includes an input / output (I / O) interface that enables communication with input / output devices such as user input devices including peripheral input devices (e.g., a game controller, a keyboard, a mouse, a pen, a voice input device, a touch input device, a gesture input device, etc.) and / or output devices including peripheral output devices (e.g., a display, a touch screen, a printer, an audio speaker, a tactile output device, etc.).
[0046] The computing device 114 may further be configured to communicate via a network such as the Internet, a private network such as an intranet, or some combination of a private network and a public network. The network may include any type of wired and / or wireless network, including but not limited to a local area network (LAN), a wide area network (WAN), a satellite network, a wired network, a Wi-Fi network, a WiMax network, a mobile communication network (e.g., 3G, 4G, etc.), or any combination thereof. The network may utilize communication protocols, including packet-based and / or datagram-based protocols, such as Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), or other types of protocols. The network may also include several devices that facilitate network communications, such as switches, routers, gateways, access points, firewalls, base stations, repeaters, and the like.
[0047] In various implementations, the interfaces of the computing device and the head mounted display device can be configured to operate and communicate on a personal area network (PAN) using a wired and / or wireless connection. For example, the PAN connection can operate according to the Infrared Data Association ("IrDA"), BLUETOOTH (Bluetooth), wired and / or wireless Universal Serial Bus ("USB"), Z-Wave, ZIGBEE, or other short range wireless technologies.
[0048] As used herein, a "processor" may refer to, for example, a CPU-type processing unit, a GPU-type processing unit (including a virtual GPU (VGPU)), a field programmable gate array (FPGA), a digital signal processor (DSP), or other hardware logic components that may be driven by a CPU in some instances. For example, but not limitation, illustrative types of hardware logic components that may be used include application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), etc.
[0049] As used herein, a "computer-readable medium" may store instructions and / or data that can be executed by a processor (e.g., model data for a scene, template, or object). A computer-readable medium may also store instructions that can be executed by an external processing unit (such as an external CPU, an external GPU) and / or by an external accelerator (such as an FPGA-type accelerator, a DSP-type accelerator, or any other internal or external accelerator). In various examples, at least one CPU, GPU, and / or accelerator is incorporated into the computing device, while in some examples, one or more of the CPU, GPU, and / or accelerator is external to the computing device.
[0050] Computer readable media may include computer storage media and / or communication media. Computer storage media include one or more of the following implemented in any method or technology for storing information (such as computer readable instructions, data structures, program modules or other data): volatile memory, non-volatile memory, and / or other persistent and / or secondary computer storage media, removable and non-removable computer storage media. Thus, computer storage media includes memory in tangible and / or physical form that is included in a device and / or as part of a device or in a hardware component external to the device, including but not limited to random access memory (RAM), static random access memory (SRAM), dynamic random access memory (DRAM), phase change memory (PRAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, compact disc read-only memory (CD-ROM), digital versatile disk (DVD), optical cards or other optical storage media, magnetic cassettes, magnetic tape, magnetic disk storage, magnetic cards or other magnetic storage devices or media, solid-state memory devices, storage arrays, network attached storage, storage area networks, hosted computer storage, or any other storage memory, storage device, and / or storage medium that can be used to store and maintain information for access by a computing device.
[0051] In contrast to computer storage media, communication media may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism. As defined herein, computer storage media does not include communication media. That is, computer storage media does not include communication media that consists solely of a modulated data signal, a carrier wave, or a propagated signal itself.
[0052] Figure 4 The modules illustrated in the embodiment are merely examples, and the number of modules used to implement the scene transition platform may be changed to be higher or lower. That is, the functionality associated with the illustrated modules described herein may be performed by a smaller number of modules or a larger number of modules on one device or distributed across multiple devices.
[0053] refer to Figure 5 , illustrates an example of a process and data flow for implementing scene management techniques as disclosed herein. The skybox 400 may be rendered by a first 3-D engine 422. In some embodiments, the first 3-D engine 422 may be provided by a host system. Figure 5 4, which may be rendered by the second 3-D engine 424. In some embodiments, the second 3-D engine 424 may be provided by the target application 410. When the target application 410 is selected to be launched, the screen data 432 may be accessed by the first 3-D engine 422. The screen data 432 may be stored locally and accessible via a file system, stored remotely and accessible via a network, provided by the second 3-D engine 424, or otherwise made available to the first 3-D engine 422. The screen data 432 may include, for example, splash screen data for the selected target application 410. The first 3-D engine 422 may use the screen data 432 to render artifacts on the skybox 400 during a time period for scene transitions.
[0054] The first 3-D engine 422 can provide tracking data 434 to the second 3-D engine 424 to allow for the target application 410 to start rendering based on the state of the user. The tracking data 434 can include the user's current viewing position and the position and orientation of the VR device. For example, the tracking data 434 can include the six degrees of freedom of the user's head when wearing the VR device, such as X, Y, Z coordinates and pitch, roll, and yaw.
[0055] The first 3-D engine 422 may also provide graphics data 434 to the second 3-D engine 424 to allow for the target application 410 to begin rendering based on the current view of the skybox 400 and the already rendered artifacts. The graphics data 436 may be used by the second 3-D engine 424 to include, if desired, any portion of the skybox 400 and associated artifacts that the second 3-D engine 424 may include when the second 3-D engine 424 assumes control of the rendering task.
[0056] Figure 6 , 7 8 depicts a flow chart of the method. It should be understood that the operations of the method disclosed herein are not presented in any particular order, and it is possible and conceivable to perform some or all of the operations in (s) alternate orders. For ease of description and illustration, the operations are presented in the order shown. Operations may be added, omitted, and / or performed simultaneously without departing from the scope of the appended claims.
[0057] It should also be understood that the methods described may be terminated at any time and need not be fully executed. Some or all of the operations of these methods and / or substantially equivalent operations may be performed by executing computer-readable instructions included on a computer storage medium, as defined below. The term "computer-readable instructions" and variations thereof, as used in the specification and claims, are used herein to broadly include routines, applications, application modules, program modules, programs, components, data structures, algorithms, and the like. Computer-readable instructions can be implemented on a variety of system configurations, including single-processor or multi-processor systems, minicomputers, mainframe computers, personal computers, handheld computing devices, wearable computing devices, microprocessor-based programmable consumer electronics, combinations thereof, and the like.
[0058] It should therefore be understood that the logical operations described herein are implemented as: (1) a series of computer-implemented actions or program modules running on a computing system; and / or (2) interconnected machine logic circuits or circuit modules within a computing system. The implementation is a matter of choice depending on the performance and other requirements of the computing system. Accordingly, the logical operations described herein are variously referred to as states, operations, structural devices, actions, or modules. These operations, structural devices, actions, and modules may be implemented in software, firmware, dedicated digital logic, and any combination thereof.
[0059] Additionally, the operations described herein may be implemented as a sequence of computer-implemented actions or program modules running on a computing system (eg, computing device 112, head mounted display device 116, and / or a network provider's equipment).
[0060] Figure 6is a diagram illustrating an example flow chart 600 of operations related to managing scene transitions in a three-dimensional environment in accordance with the present disclosure. Figure 6 The operations in may be performed, for example, by computing device 112, head-mounted computing device 116, and / or a network provider's device, as described above with respect to Figure 1-5 Any of the ones described in .
[0061] In operation 602, a first three-dimensional scene is rendered.
[0062] At operation 604, an indication is received that a first three-dimensional scene is to be replaced by a second three-dimensional scene.
[0063] At operation 606, graphical data representing a transition to a second three-dimensional scene is received. In some embodiments, the graphical data may include one or more graphical files representing the target application. The graphical data may include a stored data set for each application. In some embodiments, the graphical data may be updated by various applications as needed.
[0064] At operation 608 , the first three-dimensional scene is transitioned to the second three-dimensional scene using the graphics data.
[0065] In some embodiments, linear interpolation may be used to progressively transition the first three-dimensional scene based on the graphics data. Linear interpolation may include rendering intermediate pixels based on interpolation between the first three-dimensional scene and the second three-dimensional scene. In one embodiment, interpolation may be used to determine the intermediate value between the first scene and the second scene. For example, the intermediate frame between the first scene and the second scene may be generated using one or more interpolation algorithms. The algorithm may be approximated to a dynamic average or spatial average between the first scene and the second scene. In some embodiments, the step value between the values of the first scene and the second scene may be determined based on a state such as the degree of completion or readiness of a process for assuming control of rendering the second scene and subsequent scenes. As used herein, the process for assuming control of rendering the second scene may be referred to as a target process. For example, if the target process has completed 25% of the task to prepare to assume control of rendering, a step value (or proportional value) of 25% may be used for interpolation.
[0066] At operation 610, control of rendering the second three-dimensional scene is transitioned to a process configured to render the second three-dimensional scene. In some embodiments, rendering can be transitioned when the target process indicates that it is ready to assume control. In some embodiments, control is transitioned after rendering the graphics data on the first three-dimensional scene. Additionally, the second three-dimensional scene can be rendered based at least in part on the user state. In one embodiment, the transition is performed without rendering a black or blank three-dimensional scene.
[0067] In some embodiments, data indicating the user state may be sent to a process configured to render a second three-dimensional scene. The second three-dimensional scene is rendered based at least in part on the user state. In one embodiment, the data indicating the user state includes data of the user's three-dimensional position and orientation, such as coordinates in a three-dimensional coordinate system, and orientations such as pitch, roll, and yaw.
[0068] In one embodiment, the first three-dimensional scene includes a foreground element and a background element, and the transition includes updating portions of the background element of the first three-dimensional scene with the graphics data. Additionally, the transition further includes fading out the foreground before transitioning the control, wherein the process fades in a new foreground.
[0069] In some embodiments, the transition includes updating portions of the first three-dimensional scene based on a linear interpolation between the first three-dimensional scene and the graphics data. In one embodiment, the transition includes updating portions of the first three-dimensional scene proportionally based on the graphics data and an indication of the completion amount of loading of the target application.
[0070] In an embodiment, data indicative of the first three-dimensional scene may be sent to a process configured to render the second three-dimensional scene. The process configured to render the second three-dimensional scene may be configured to render portions of the first three-dimensional scene when control is transitioned.
[0071] In some embodiments, a portal including a representative rendering of a second three-dimensional scene is rendered over the first three-dimensional scene.
[0072] In some embodiments, the first three-dimensional scene and the second three-dimensional scene are different scenes associated with the application.
[0073] The first three-dimensional scene may be rendered by a first 3-D engine, and the second three-dimensional scene may be rendered by a second 3-D engine.
[0074] Figure 7 is a diagram illustrating an example flow chart 700 of operations involved in managing a scene in a three-dimensional environment. In some embodiments, Figure 7 The operations in may be performed by computing device 112, head mounted computing device 116, and / or a network provider's device, as described above with respect to Figure 1-5 Any of the ones described in .
[0075] At operation 702 , a first three-dimensional scene is rendered on a display device configured to render a three-dimensional environment.
[0076] At operation 704, an indication is received that a first three-dimensional scene is to be transitioned to a second three-dimensional scene.
[0077] At operation 706, graphics data representing a second three-dimensional scene is received.
[0078] In operation 708 , the first three-dimensional scene is transitioned to the second three-dimensional scene by transitioning a background portion of the first three-dimensional scene before transitioning a foreground portion of the first three-dimensional scene.
[0079] At operation 710, data indicative of a user state is sent to a process configured to render a second three-dimensional scene.
[0080] At operation 712 , in response to an indication that the process is ready to render the second three dimensional scene, control of rendering the second three dimensional scene is transitioned to the process.
[0081] In some embodiments, the first three-dimensional scene is a launch screen configured to receive a user input indicating a selection for launching a target application. Additionally, the first three-dimensional scene may be associated with a first application, and the second three-dimensional scene may be associated with a second application.
[0082] Figure 8 is a diagram illustrating an example flow chart 800 of operations involved in managing a scene in a three-dimensional environment. Figure 8 The operations in may be performed by computing device 112, head mounted computing device 116, and / or a network provider's device, as described above with respect to Figure 1-5 Any of the ones described in .
[0083] At operation 802 , a first three-dimensional scene is rendered on a display.
[0084] At operation 804, graphics data representing a second three-dimensional scene is received.
[0085] At operation 806 , the first three-dimensional scene is progressively transitioned to the second three-dimensional scene using the graphics data.
[0086] At operation 808, the second three-dimensional scene is rendered on the display. In one embodiment, the second three-dimensional scene may be rendered based at least in part on tracking data for a user of the device. In one embodiment, the second three-dimensional scene may be rendered subsequent to the selective rendering.
[0087] In some embodiments, the second three-dimensional scene may be rendered by a different process than the first three-dimensional scene. Additionally, control of rendering on the display may be transitioned to the process rendering the second three-dimensional scene.
[0088] In one embodiment, the graphics data may be received from a process rendering a second three-dimensional scene.
[0089] In one embodiment, gradually transitioning includes transitioning a background portion of the first three-dimensional scene using linear interpolation.
[0090] In one embodiment, the second three-dimensional scene is a start screen for the target application.
[0091] The disclosure presented herein may be considered in light of the following example terms.
[0092] Example Item A, a system comprising:
[0093] one or more displays configured to render a three-dimensional environment;
[0094] at least one processor; and
[0095] a memory storing instructions that, when executed by the at least one processor, cause the device to perform operations comprising:
[0096] rendering a first three-dimensional scene on the display;
[0097] receiving an indication that the first three-dimensional scene is to be replaced by a second three-dimensional scene;
[0098] receiving graphical data representing a transition to the second three-dimensional scene;
[0099] using the graphics data to transition from the first three-dimensional scene to the second three-dimensional scene;
[0100] as well as
[0101] Control of rendering the second three-dimensional scene is transferred to a process configured to render the second three-dimensional scene.
[0102] Example Item B, the device of Example Item A, further comprising instructions that, when executed by the at least one processor, cause the device to perform operations including: sending data indicating a user state to the process configured to render the second three-dimensional scene.
[0103] Example Item C, the apparatus of Example Item B, wherein the first three-dimensional scene includes foreground elements and background elements, and the transition includes updating portions of the background elements of the first three-dimensional scene using the graphics data.
[0104] Example clause D, the apparatus of any of Example Examples A to C, wherein the transitioning further comprises fading the foreground before transitioning the control, wherein the process fades into a new foreground.
[0105] Example clause E, the apparatus of any of example clauses A to D, wherein the transitioning comprises updating portions of the first three-dimensional scene based on a linear interpolation between the first three-dimensional scene and the graphics data.
[0106] Example clause F, the apparatus of any of example clauses A to D, wherein the transition comprises proportionally updating portions of the first three-dimensional scene based on the graphics data and an indication of a completion amount of loading of the target application.
[0107] Example clause G, the apparatus of any of example clauses A to F, wherein the data indicative of the user's state includes data of a three-dimensional position and orientation of the user.
[0108] Example clause H, the apparatus of any of Example clauses A through G, wherein the transitioning is performed without rendering a black or blank three-dimensional scene.
[0109] Example Clause I, the device of any one of Example Clauses A to G, further comprising: sending data indicating the first three-dimensional scene to the process configured to render the second three-dimensional scene, wherein the process configured to render the second three-dimensional scene is further configured to render portions of the first three-dimensional scene when the control is transitioned.
[0110] Example Clause J. The apparatus of any of Example Clauses A to I, further comprising rendering a portal including a representative rendering of the second three-dimensional scene over the first three-dimensional scene.
[0111] Example clause K. The apparatus of any one of example clauses A to J, wherein the first three-dimensional scene and the second three-dimensional scene are different scenes associated with an application.
[0112] Example clause L, the apparatus of any one of example clauses A to K, wherein the first three-dimensional scene is rendered by a first 3-D engine and the second three-dimensional scene is rendered by a second 3-D engine.
[0113] Although example clauses A to L are described above with respect to an apparatus, it should be understood that in the context of the present disclosure, the subject matter of example clauses A to L may additionally or alternatively be implemented as a method or via a computer-readable storage medium.
[0114] Example Clause M, a method comprising:
[0115] rendering a first three-dimensional scene on a display device configured to render a three-dimensional environment;
[0116] receiving an indication that the first three-dimensional scene is to be transitioned to a second three-dimensional scene;
[0117] receiving graphics data representing the second three-dimensional scene;
[0118] transitioning the first three-dimensional scene to the second three-dimensional scene by transitioning a background portion of the first three-dimensional scene before transitioning a foreground portion of the first three-dimensional scene;
[0119] sending data indicative of a user state to a process configured to render the second three-dimensional scene; and
[0120] In response to an indication that the process is ready to render the second three-dimensional scene, control of rendering the second three-dimensional scene is transitioned to the process.
[0121] Example clause N, the method of example clause M, wherein the first three-dimensional scene is a launch screen configured to receive a user input indicating a selection for launching a target application.
[0122] The method of Example Clause O, Example Clause M, or Example Clause N, wherein the first three-dimensional scene is associated with a first application and the second three-dimensional scene is associated with a second application.
[0123] Although example clauses M to O are described above with respect to methods, it should be understood that in the context of the present disclosure, the subject matter of example clauses M to O may additionally or alternatively be implemented as an apparatus or via a computer-readable storage medium.
[0124] Example Clause P, an apparatus comprising: an interface configured to control a display configured to render a three-dimensional environment;
[0125] at least one processor; and
[0126] a memory storing instructions that, when executed by the at least one processor, cause the device to perform operations comprising:
[0127] rendering a first three-dimensional scene on the display;
[0128] receiving graphics data representing a second three-dimensional scene;
[0129] using the graphics data to gradually transition the first three-dimensional scene to the second three-dimensional scene;
[0130] The second three-dimensional scene is rendered on the display, wherein the second three-dimensional scene is rendered based at least in part on tracking data for a user of the device.
[0131] Example clause Q, the device of example clause P, wherein the second three-dimensional scene is rendered by a different process than the first three-dimensional scene, further comprising transitioning control of rendering on the display to the process rendering the second three-dimensional scene.
[0132] The apparatus of example clause R, example clause P, or example clause Q, wherein the graphics data is received from the process rendering the second three-dimensional scene.
[0133] Example clause S, the apparatus of any one of example clauses P to Q, wherein the gradually transitioning comprises transitioning a background portion of the first three-dimensional scene using linear interpolation.
[0134] Example clause T, the device of any one of example clauses P to S, wherein the second three-dimensional scene is a start screen for the target application.
[0135] Although example clauses P to T are described above with respect to an apparatus, it should be understood that in the context of the present disclosure, the subject matter of example clauses P to T may additionally or alternatively be implemented as a method or via a computer-readable storage medium.
[0136] Although the techniques have been described in language specific to structural features and / or methodological acts, it should be understood that the appended claims are not necessarily limited to the described features or acts. Rather, these features and acts are described as example forms of implementing these techniques.
[0137] The operation of the example process is shown in a separate box and is summarized with reference to these boxes. These processes are shown as a logic box flow, each of which can represent one or more operations that can be implemented by hardware, software or a combination thereof. In the context of software, these operations represent computer executable instructions stored on one or more computer-readable media, which, when executed by one or more processors, cause one or more processors to perform a given operation. In general, computer executable instructions include routines, programs, objects, modules, components, data structures, etc. that perform specific functions or implement specific abstract data types. The order of describing the operations is not intended to be interpreted as a limitation, and any number of the operations can be performed in any order, combined in any order, subdivided into multiple sub-operations, and / or performed in parallel to implement the described process. The described process can be performed by resources associated with one or more devices (such as one or more internal or external CPUs or GPUs) and / or one or more pieces of hardware logic (such as FPGAs, DSPs or other types of accelerators)).
[0138] All of the above methods and processes can be embodied in software code modules executed by one or more general-purpose computers or processors, and can be fully automated via these software code modules. These code modules can be stored in any type of computer executable storage medium or other computer storage device. Some or all of these methods can alternatively be embodied in dedicated computer hardware.
[0139] Unless otherwise specifically stated, conditional language (such as "can", "can", "may", or "may", etc.) should be understood within the context to mean that certain examples include and other examples do not include specific features, elements, and / or steps. Therefore, such conditional language is generally not intended to imply that certain features, elements, and / or steps are in any way necessary for one or more examples, or that one or more examples necessarily include logic for determining whether certain features, elements, and / or steps are included in any particular example or will be performed in any particular example with or without user input or prompting. Unless otherwise specifically stated, it should be understood that joint language (such as the phrase "at least one of X, Y, or Z") indicates that an item, term, etc. can be any one of X, Y, or Z, or a combination thereof.
[0140] Any routine description, element or frame in the flow chart described in this article and / or described in the accompanying drawings should be understood to potentially represent a module, fragment or part of a code including one or more executable instructions for realizing a specific logical function or element in the routine. Alternative implementations are included in the scope of the examples described herein, wherein each element or function can be deleted, or executed inconsistently with the order shown or discussed, including substantially synchronous execution or execution in reverse order, depending on the functions involved, as will be understood by those skilled in the art. It should be emphasized that many variations and modifications can be made to the above examples, and the elements therein should be understood as other acceptable examples. All such modifications and variations are intended to be included in the scope of the present disclosure and protected by the appended claims.
Claims
1. An apparatus for managing transitions in a three-dimensional environment, comprising: one or more displays configured to render a three-dimensional environment; at least one processor; as well as a memory storing instructions that, when executed by the at least one processor, cause the apparatus to perform operations comprising: Rendering a first three-dimensional scene on the display, the first three-dimensional scene comprising a foreground element and a background element; receiving an indication that the first three-dimensional scene is to be replaced by a second three-dimensional scene; receiving graphical data representing a transition to the second three-dimensional scene; using the graphics data to transition from the first three-dimensional scene to the second three-dimensional scene, including updating portions of background elements of the first three-dimensional scene using the graphics data; as well as Control of rendering the second three-dimensional scene is transferred to a process configured to render the second three-dimensional scene.
2. The device according to claim 1 further comprises instructions which, when executed by the at least one processor, cause the device to perform operations comprising: sending data indicating a user state to the process configured to render the second three-dimensional scene, wherein the second three-dimensional scene is rendered at least in part based on the user state.
3. The device according to claim 1, wherein: The transitioning further includes fading the foreground out prior to transitioning the control, wherein the process fades into a new foreground.
4. The device according to claim 1, wherein: The transitioning includes updating portions of the first three-dimensional scene based on linear interpolation between the first three-dimensional scene and the graphics data.
5. The device according to claim 1, wherein: The transitioning includes proportionally updating portions of the first three-dimensional scene based on the graphics data and an indication of a completion amount of loading of a target application.
6. The device according to claim 2, wherein: The data indicative of the user's state includes data of the three-dimensional position and orientation of the user.
7. The device according to claim 1, wherein: The transition is performed without rendering a black or blank three-dimensional scene.
8. The device of claim 1 , further comprising sending data indicating the first three-dimensional scene to the process configured to render the second three-dimensional scene, wherein the process configured to render the second three-dimensional scene is further configured to render portions of the first three-dimensional scene when the control is transitioned.
9. The apparatus of claim 1, further comprising rendering a portal including a representative rendering of the second three-dimensional scene over the first three-dimensional scene.
10. The device according to claim 1, wherein: The first three-dimensional scene and the second three-dimensional scene are different scenes associated with the application.
11. The device according to claim 1, wherein: The first three-dimensional scene is rendered by a first 3-D engine, and the second three-dimensional scene is rendered by a second 3-D engine.
12. A method for managing transitions in a three-dimensional environment, comprising: rendering a first three-dimensional scene on a display device configured to render a three-dimensional environment; receiving an indication that the first three-dimensional scene is to be transitioned to a second three-dimensional scene; receiving graphical data representing the second three-dimensional scene; transitioning the first three-dimensional scene to the second three-dimensional scene by transitioning a background portion of the first three-dimensional scene before transitioning a foreground portion of the first three-dimensional scene; sending data indicative of a user state to a process configured to render the second three-dimensional scene; as well as In response to an indication that the process is ready to render the second three-dimensional scene, control of rendering the second three-dimensional scene is transitioned to the process.
13. The method according to claim 12, wherein: The first three-dimensional scene is a launch screen configured to receive a user input indicating a selection for launching a target application.
14. The method according to claim 12, wherein: The first three-dimensional scene is associated with a first application, and the second three-dimensional scene is associated with a second application.
15. An apparatus for managing transitions in a three-dimensional environment, comprising: an interface configured to control a display configured to render a three-dimensional environment; at least one processor; as well as a memory storing instructions that, when executed by the at least one processor, cause the apparatus to perform operations comprising: Rendering a first three-dimensional scene on the display, the first three-dimensional scene comprising a foreground element and a background element; receiving graphics data representing a second three-dimensional scene; progressively transitioning the first three-dimensional scene to the second three-dimensional scene using the graphics data, including updating portions of background elements of the first three-dimensional scene using the graphics data; as well as The second three-dimensional scene is rendered on the display, wherein the second three-dimensional scene is rendered based at least in part on tracking data for a user of the device.
16. The device according to claim 15, wherein: The second three-dimensional scene is rendered by a different process than the first three-dimensional scene, further comprising transitioning control of rendering on the display to the process rendering the second three-dimensional scene.
17. The device according to claim 16, wherein: The graphics data is received from the process rendering the second three-dimensional scene.
18. The apparatus according to claim 16, wherein: The gradually transitioning includes transitioning a background portion of the first three-dimensional scene using linear interpolation.
19. The apparatus according to claim 16, wherein: The second three-dimensional scene is a start screen for a target application.
20. A computer-readable storage medium having instructions, which, when executed, cause a machine to perform the method of any one of claims 12-14.
21. A computer system comprising means for executing the method as claimed in any one of claims 12 to 14.
Citation Information
Patent Citations
Transition effects in three dimensional displays
US20030090485A1