Projection of a content library in a three-dimensional environment
Through the creative application, automatically place and arrange content library objects in a 3D environment, the problem of inconsistent object layout in creation is solved, productivity and user experience are improved, and the appropriate layout and immersive viewing of objects are achieved.
Patent Information
- Application Number
- CN201980029922.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-05-04
- Filing Date
- 2019-04-26
- Publication Date
- 2025-08-05
- Estimated Expiration
- 2039-04-26
AI Technical Summary
When creating content in a 3D environment, there is a lack of automated methods to place and arrange objects in the content library, resulting in labor-intensive, inconsistent trials and errors, affecting the user experience and content coherence.
Through the creative application, the viewer's depth perception, field of view and field of view of the AR/VR/MR headset can automatically place and arrange 2D or 3D content items from the content library into suitable geometry in the 3D environment to generate an environment data file.
Increases productivity in content creation, provides a user-friendly immersive experience, reduces repeated trials, and ensures appropriate placement and consistency of objects in a 3D environment.
Smart Images

Figure CN112106117B_ABST
Abstract
Description
Background Art
[0001] In computing, a three-dimensional (3D) environment generally refers to a computer-based simulated 3D platform in which 3D representations of images, videos, sounds, or other digital content can be presented to viewers. A 3D environment can provide a more immersive viewing experience than a two-dimensional (2D) environment. However, creating content in a 3D environment remains challenging due to the complexity of accurately representing objects and controlling interactions within it. Due to this complexity, only a small number of creators today possess the necessary technical skills to create suitable content in a 3D environment. Summary of the Invention
[0002] This Summary is provided to introduce some concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
[0003] 3D environments can be particularly suitable for presenting certain types of content to viewers because they can provide a more immersive viewing experience than two-dimensional (2D) environments. For example, a 3D environment can be suitable for presenting training scenarios or product catalogs with 3D images, videos, audio recordings, etc. to viewers.
[0004] When creating content in a 3D environment, creators can import a content library containing multiple content items (e.g., 2D or 3D images of products) as objects in the 3D environment. However, creating a 3D environment that incorporates a content library can be challenging due to the lack of the full range of creative activities found in creating in a 2D environment. For example, 2D creation lacks creative activities such as 3D content placement and arrangement, 3D interaction with placed content items, and motion specification for 3D content items. In 2D creation, when importing multiple objects into a 2D environment, the 2D objects can be arranged in a grid with rows and / or columns. In contrast, laying out objects in a two-dimensional grid in a 3D environment can cause certain difficulties for viewers. For example, some objects in a 2D grid can cause occlusion in the 3D environment because one object can be partially or completely in front of another object along the depth dimension. This occlusion can cause the created content to be obscured or confuse the viewer. Even without occlusion, the one- or two-dimensional arrangement of objects in a 3D environment can make the objects appear disjointed because the apparent size of the objects can vary relative to the depth dimension. Thus, when objects from a content library are rendered as a mesh, there may be a lack of apparent uniformity or coherence of the objects within the 3D environment.
[0005] To address the aforementioned challenges, creators of 3D content often need to experiment with numerous positions and arrangements of each object through trial and error to determine the optimal arrangement for multiple objects in a 3D environment. Such experimentation can be labor-intensive, inconsistent, and may not even produce a consistent placement and / or arrangement of objects in the 3D environment. When viewing the content in a 3D environment, inaccurate placement and / or arrangement can distract the user experience or even cause headaches, dizziness, or other negative physiological reactions in the viewer.
[0006] Several embodiments of the disclosed technology can address at least some of the aforementioned challenges by automatically placing, arranging, and projecting supported 2D or 3D content items from an imported content library as objects arranged in appropriate geometric shapes within a 3D environment, taking into account a combination of the following: (i) the viewer's depth perception; (ii) the viewer's field of view; (iii) the relative position of an object relative to adjacent objects in the 3D environment; and (iv) the field of view of an AR / VR / MR headset. An environment data file can then be generated based on the automatically placed objects to create a file containing the 3D content, which can be distributed to other computing devices for use in reproducing the 3D environment.
[0007] In an exemplary implementation, the authoring application can be configured to provide a template of a 3D environment having, for example, a background (e.g., a blue sky), a scene (e.g., a mountain), a sound (e.g., the sound of wind blowing), and one or more background objects (e.g., trees on a mountain). The template of the 3D environment can also include one or more anchor points at which content items from a content library (e.g., 2D or 3D representations of cars, buses, airplanes, etc.) can be automatically positioned within the 3D environment. The authoring application can also be configured to provide a method for importing a content library and presenting the available content library and corresponding content items as a gallery, list, or other suitable interface format.
[0008] Upon receiving user input instructing the authoring application to import a content library into the 3D environment, the authoring application can be configured to import at least some of the content items in the content library as objects and automatically arrange the objects into appropriate geometric shapes to obtain a suitable viewing experience. In certain embodiments, the authoring application can be configured to initially resize (e.g., height, width, etc.) content items from the content library based on a preset container size. For example, the preset container size can be a cube having a volume of approximately 1.0, 1.5, or 2.0 cubic meters. In other embodiments, objects representing content items can be pre-processed to have the same or similar size before being imported into the 3D environment. Thus, optional resizing by the authoring application can be omitted.
[0009] The authoring application can be configured to automatically determine the position and arrangement of content items relative to a viewer in a 3D environment based on a preset distance from the viewer and a presentation format. In one implementation, multiple content items can be automatically arranged in a 3D environment along a planar circle or a portion of a circle (i.e., an arc), with the center of the circle or portion of a circle spaced a preset distance from the viewer along the depth dimension along the viewer's field of view. In one example, the preset distance between the center and the viewer can be approximately 5.0, 5.5, 6.0, or 6.5 meters, while the radius of the circle is approximately 2.0, 2.5, 3.0, or 3.5 meters. In other implementations, content items can be arranged along an ellipse, a portion of an ellipse, a triangle, a polygon, a grid, or other suitable geometric shapes and / or presentation formats.
[0010] The authoring application can also be configured to determine the relative positions of objects along a circle or arc with respect to each other in a 3D environment. In certain embodiments, the authoring application can utilize a cylindrical coordinate system to place objects along a circle or arc. In this way, each object can be identified by a polar coordinate along a polar axis (e.g., a depth dimension), a longitudinal coordinate along a longitudinal axis (e.g., a height dimension), and an angular coordinate relative to the origin of the coordinate system (e.g., the center of the circle or arc). According to embodiments of the disclosed technology, objects can be placed at substantially equal distances from the center of the circle or arc, for example, at corresponding angles of approximately 10°, approximately 12.5°, approximately 15°, or other suitable values.
[0011] The inventors have recognized that such an arrangement of objects can provide a viewer with a suitable or even optimal viewing experience for the objects in the content library. For example, when a viewer views an object, due to the viewer's depth perception, an object(s) that is closer to the viewer appears larger than other objects. In this way, the viewer can view such an object in greater detail than other objects in the content library. As discussed in more detail below, the viewer can then rotate, roll, or translate the object along a circle or arc so that other objects can be rotated closer to the viewer and appear larger to the viewer, thereby obtaining a more detailed view of the object.
[0012] In certain embodiments, the authoring application can also be configured to place only a preset number of content items as objects in the portion of the circle or arc that is closest to the viewer along the polar axis. Examples of a preset number can be 1, 2, 3, 4, 5, or other suitable numbers. In addition to the preset number of objects closest to the viewer, the authoring application can be configured to present other objects as ovals or other suitable symbols that indicate that additional objects are available for viewing. In other embodiments, all content items can be presented along a circle or arc without using ovals.
[0013] The authoring application can also be configured to import multiple content libraries and automatically arrange content items from the multiple content libraries as object groups in the 3D environment. Objects from different content libraries can be organized into object groups that are spaced apart in the 3D environment along, for example, a longitudinal axis (e.g., along a height dimension). In this way, the 3D environment will present multiple object groups of objects in a stacked form, wherein each object group has objects arranged along a corresponding circle or arc. In other embodiments, the object groups can be arranged in the 3D environment in a staggered, interwoven, or other suitable manner.
[0014] The authoring application can also be configured to assign specific behavioral characteristics to objects arranged around a circle or arc when importing the content library. For example, upon receiving input from the viewer using, for example, a laser pointer or other suitable 3D interactive device for rotation, scrolling, translation, or other appropriate input, the object can be rotated along the circle or arc. In response, the viewing application of the 3D environment can be configured to modify the relative positions of objects of the content library in the 3D environment by presenting additional objects at a position closest to or closer to the viewer via gradual rotation, scrolling, or other suitable actions. The authoring application can also assign physical properties such as inertia to the object, so that the scrolling of the object may appear to slow down or stop after a period of time.
[0015] Thus, several embodiments of the disclosed technology can provide a user-friendly authoring environment that allows authors to intelligently place supported 2D or 3D content items from a content library into a template of a 3D environment. By automatically positioning and arranging objects in a 3D environment as described above, several embodiments of the disclosed technology can eliminate repeated trial and error experiments to determine the optimal placement and / or arrangement of inserted objects from a content library, thereby improving the productivity and user-friendliness of creating 3D content, which can provide viewers with an immersive experience. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1 is a schematic diagram illustrating a computing architecture for implementing content library projection in a 3D environment according to an embodiment of the disclosed technology.
[0017] Figures 2A-2F is a diagram illustrating an embodiment according to the disclosed technology Figure 1 A partial schematic diagram of specific hardware / software components of a computing architecture.
[0018] Figure 3A and Figure 3B is a schematic top view illustrating a specific location arrangement of content library projections in a 3D environment according to an embodiment of the disclosed technology.
[0019] Figures 4A-4B and Figure 5 is a flow chart illustrating a specific process of content library projection in a 3D environment according to an embodiment of the disclosed technology.
[0020] Figure 6 is suitable for Figure 1 A computing device that is a specific component of a computing architecture. DETAILED DESCRIPTION
[0021] The following describes certain embodiments of systems, devices, components, modules, routines, data structures, and processes for projecting a content library in a 3D environment. In the following description, specific details of the components are included to provide a thorough understanding of certain embodiments of the disclosed technology. It will also be understood by those skilled in the relevant art that the technology is capable of additional embodiments. It is also capable of being described without reference to the following. Figure 1-6 The techniques are practiced without the use of several details of the described embodiments.
[0022] As used herein, a "three-dimensional environment" or "3D environment" generally refers to a computer-based simulated 3D platform in which two-dimensional (2D) or 3D representations of images, videos, sounds, or other digital content can be presented to a viewer. A 3D environment can be a virtual space, such as a virtual reality (VR) world, or it can be a real-world space in which content can be displayed or layered onto the real world, for example, via augmented reality (AR) or other VR technologies.
[0023] The term "model," as also used herein, generally refers to data representing a 2D or 3D content item that can be presented as an object in a 3D environment. Exemplary models can include data representing a virtual room, a virtual scene, or any other sub-portion of a virtual world. The terms "object" or "virtual object," as also used herein, generally refer to a visual representation of a 2D or 3D content item presented in a 3D environment. Exemplary objects can include 3D images, video recordings, etc. A "content library," as also used herein, generally refers to a file, folder, list, or other suitable data structure that contains data representing one or more models of various content items that may or may not be presented in a 3D environment. An exemplary content library can include folders containing 2D or 3D images of products in a product catalog.
[0024] Various aspects of the present disclosure relate to the creation and generation of 3D environments using an authoring application. The 3D environment can contain one or more models, each of which individually comprises a virtual room, a virtual scene, or any other sub-portion of a virtual world. A user of the authoring application can graphically select a content library containing multiple 2D or 3D representations of models of content items and insert the selected representations into the 3D environment. As described in more detail below, the user can use the authoring application to select models of content items in the content library and insert them into the 3D environment. In response, the authoring application can automatically determine the placement and / or arrangement of the inserted content items and project the corresponding objects in the 3D environment to obtain a suitable view of the objects in the 3D environment. The 3D environment can then be stored as an environment data file that contains information related to the one or more models and / or content items in the 3D environment.
[0025] In certain embodiments, different types of content can be embedded or included in a 3D environment. Exemplary content types can include 3D objects (e.g., 3D models, graphics, shapes, etc.) or 2D objects (e.g., files, images, presentations, documents, websites, videos, remote resources, etc.), among others. In other embodiments, the 3D environment can be a virtual space, such as a virtual reality (VR) world, or can be a real-world space in which content can be displayed or layered onto the real world, such as via augmented reality (AR) or other VR technologies. The 3D environment with the inserted model can then be stored as an environment data file and later used to reproduce a 3D rendered 3D environment with the inserted model.
[0026] The content created in the 3D environment according to the various aspects disclosed herein can then be consumed using a viewing application on a viewing device such as a desktop computer or a smartphone. In one example, the 3D environment can be experienced across a variety of computing devices, from low-end devices (e.g., Google Cardboard) to high-end devices (e.g., Microsoft HoloLens, OCULOUS RIFT, HTC VIVE, etc.). By using a desktop or mobile computing device to generate the 3D environment, additional associated overhead (e.g., the transmission of all required textures, light maps, audio files, etc.) can be avoided. Furthermore, device-specific or platform-specific details can be handled by the viewing application, thereby making such details invisible to both the end user and the creator of the 3D environment.
[0027] The viewing application can include computing resources associated with the models used by the environment data file. In some examples, the environment data file can include computing resources used when rendering the 3D environment, or resources that can be retrieved from a server or other remote location. When rendering the 3D environment, the viewing application can identify one or more anchor points when stitching adjacent or connected models specified by the environment data file into the 3D environment. As an example, a model can include an entry anchor point and an exit anchor point. The entry anchor point can indicate a doorway or other entrance into the model, and the exit anchor point can indicate a doorway or other exit from the model. Thus, when stitching multiple models (e.g., adjacent or connected models) together, the exit anchor point of a first model can be used to locate the entry anchor point of a second model (and by extension, the second model), thereby creating a continuous combination of models.
[0028] Creating a 3D environment that incorporates a content library containing multiple content items can be challenging because the full range of creative activities involved in creating in a 2D environment is missing. For example, in 2D authoring, when multiple objects are inserted into a 2D environment, the inserted objects are typically arranged in a grid with rows and / or columns. In contrast, laying out objects in a grid in a 3D environment can create certain difficulties for the viewer. For example, some objects in the grid can cause occlusion in the 3D environment because one object can be partially or completely in front of another object along the depth dimension. Occlusion can cause the creation to be obscured or confuse the viewer. Even without occlusion, the one- or two-dimensional arrangement of objects in a 3D environment can make the objects appear disjointed because their apparent size varies depending on their distance from the viewer. Thus, when objects are simply laid out as a 2D grid, the objects lack apparent uniformity or continuity in the 3D environment.
[0029] Several embodiments of the disclosed technology can address at least some of the aforementioned challenges by automatically placing, arranging, and projecting supported 2D or 3D content items imported from a content library as objects in a 3D environment, taking into account a combination of the following: (i) the viewer's depth perception; (ii) the viewer's field of view; (iii) the relative position of an object with respect to adjacent objects in the 3D environment; and (iv) the field of view of an AR / VR / MR headset. An environment data file can then be generated based on the automatically placed objects to create a file containing 3D content, which can be distributed to other computing devices for use in reproducing the 3D environment, as described below with reference to Figure 1-6 Described in more detail.
[0030] Figure 1 is a schematic diagram illustrating a computing architecture 100 for content library projection in a 3D environment according to an embodiment of the disclosed technology. Figure 1As shown in , the computing architecture 100 can include an authoring device 102 corresponding to an author 101 and one or more viewing devices 104 corresponding to viewers 103 (which are shown as a first viewer 103a and a second viewer 103b). The authoring device 102 and the viewing device 104 can individually include mobile computing devices, laptop computers, tablet computers, desktop computers, or other suitable types of computing devices. Although for illustrative purposes only, the present invention provides a more detailed description of the present invention. Figure 1 Only one authoring device 101 and two viewing devices 103 are shown in FIG, but in other embodiments, the computing architecture 100 can facilitate content creation by additional authors 101 and / or viewers 103 with corresponding authoring and viewing devices (not shown). Figure 6 Exemplary configurations of authoring device 102 and viewing device 104 are described in greater detail.
[0031] As in Figure 1 As shown in FIG, the authoring device 102 can include an authoring application 108, a model repository 112 containing data records of a model 107, and an output repository 114 containing data records of a 3D environment file 109. The authoring application 108 can be configured to provide a user interface 130 representing a 3D environment to the author 101 (e.g., Figure 2A ) to facilitate authoring content in a 3D environment. In certain embodiments, authoring application 108 can be a web-based application accessible by author 101 via a web browser. In other examples, authoring application 108 can be an executable application that can be retrieved and executed by a processor of authoring device 102.
[0032] In one embodiment, the authoring application 108 can be configured to display 2D or 3D representations of one or more models 107 of content items of a content library in a gallery, list, or other suitable format. The author 101 can then select a content library and insert it into the provided 3D environment as multiple objects corresponding to the content library. In other embodiments, the authoring application 108 can provide a variety of themes. Different models 107 or content libraries can be associated with one or more themes, or can be changed or adjusted based on the selected theme (e.g., color, texture, lighting, etc.). As described below with reference to Figures 2A-2F Described in more detail, the authoring application 108 can include additional modules and routines that are configured to automatically project content items from the content library as objects in the 3D environment, enabling the author 101 to place all content items from the content library into the 3D environment without requiring extensive trial and error experiments.
[0033] Model repository 112 can store one or more models 107 representing corresponding content items from one or more content libraries that can be used to author a 3D environment. In one example, models 107 or content libraries can be associated with one or more themes. When author 101 selects a theme or content library, authoring application 108 can provide one or more models 107 or content libraries associated with the selected theme. In some examples, a collection of models 107 can be designed so that stitching a model 107 together with another model 107 from the same collection forms a visually continuous model 107. In other examples, aspects of models 107 stored in model repository 112 can be generated dynamically or programmatically. In certain embodiments, author 101 can create models 107 using authoring application 108. In other embodiments, models 107 can be retrieved from, for example, a third-party provider of 2D or 3D content items or from other suitable sources.
[0034] In certain embodiments, a model 107 may indicate that a particular aspect can be replaced by another model 107 with which the original model 107 can be stitched. For example, a first model 107 may indicate that a wall or an archway can be replaced by a door. Thus, the entry point of the second model can be stitched to the first model at the door. In other embodiments, various models 107 may be generated using other suitable replacement or model generation techniques.
[0035] The authoring application 108 can also be configured to output the authored 3D environment as an environment data file 109 containing 3D environment data to, for example, an output repository 114. In one implementation, the environment data file 109 can include information associated with the selected model 107 (e.g., model identifier, model name, model type, etc.), positioning information (e.g., coordinates, anchor point identifiers, etc.), content information (e.g., which content should be displayed for one or more anchor points, content to be displayed, content point references, etc.), custom resources (e.g., custom textures, sounds, etc.), and other information. Figure 1 , the output repository 114 can be configured to store one or more environment data files 109. As used herein, an "environment data file" can include a file on a file system, an entry in a database, or can be stored using any of a variety of other data storage techniques.
[0036] As in Figure 1As shown in , viewing devices 104 can each include a viewing application 110 configured to generate, view, explore, and / or interact with a 3D environment based on an environment data file 109. In one example, viewing application 110 can be a web-based application accessible using a web browser. In other examples, viewing application 110 can be an executable application of viewing device 104. In operation, viewing application 110 can be configured to evaluate environment data file 109 to identify one or more models 107 of the 3D environment. If environment data file 109 references multiple models 107, models 107 can be stitched together when rendering the 3D environment. Viewing application 110 can populate the rendered 3D environment with content based on the content specified by environment data file 109. In one example, viewing application 110 can use any of a variety of 3D rendering engines and can handle device-specific and / or engine-specific implementation details when rendering the 3D environment.
[0037] In certain embodiments, the viewing application 110 can be configured to retrieve the environment data files 109 from the output repository 114, which can be used to generate the 3D environment along with one or more models 107 from the model repository 112. In other embodiments in which the viewing application 110 is a locally executed application, the model repository 112 can be stored locally and / or remotely to the viewing device 104 executing the viewing application 110, and at least a portion of the environment data files 109 can be retrieved from the output repository 114. In further embodiments, the environment data files 109 can be streamed or retrieved in blocks from the output repository 114 to the viewing device 104.
[0038] Figures 2A-2F is a diagram illustrating an embodiment according to the disclosed technology Figure 1 A partial schematic diagram of specific hardware / software components of the computing architecture 100. Figure 2A As shown in , the authoring application 108 can include an interface component 120, a resizing component 122, a projection component 124, and an output component 126 that are operably coupled to one another. Figure 2A Specific components are shown in FIG, but in other embodiments, the authoring application 108 can also include input components or other suitable types of components.
[0039] exist Figure 2AIn and in other figures herein, individual software components, objects, classes, modules, and routines can be computer programs, processes, or procedures written as source code in C, C++, C#, Java, and / or other appropriate programming languages. Components can include, but are not limited to, one or more modules, objects, classes, routines, properties, processes, threads, executable files, libraries, or other components. Components can be in source form or binary form. Components can include aspects of source code (e.g., classes, properties, processes, routines) before compilation, compiled binary units (e.g., libraries, executable files), or products (e.g., objects, processes, threads) that are instantiated and used at runtime.
[0040] Components within a system can take different forms within the system. As an example, a system comprising a first component, a second component, and a third component can include, but is not limited to, a system in which the first component is a property in source code, the second component is a binary compiled library, and the third component is a thread created at runtime. A computer program, process, or procedure can be compiled into object, intermediate code, or machine code and presented for execution by one or more processors of a personal computer, network server, laptop, smartphone, and / or other suitable computing device.
[0041] Likewise, a component may comprise a hardware circuit. One of ordinary skill in the art will recognize that hardware may be viewed as petrochemical software, and software may be viewed as liquefied hardware. As just one example, the software instructions in a component may be burned into a programmable logic array circuit, or may be designed as a hardware circuit with an appropriate integrated circuit. Likewise, hardware may be emulated by software. Various implementations of source code, intermediate code, and / or object code and associated data may be stored in a computer memory, including read-only memory, random access memory, magnetic disk storage media, optical storage media, flash memory devices, and / or other suitable computer-readable storage media other than propagated signals.
[0042] As in Figure 2A As shown in , the interface component 120 of the authoring application 108 can be configured to provide a user interface 130 for facilitating the author 101 to create and / or modify a 3D environment. In the illustrated example, the user interface 130 can include a menu bar 131 containing one or more menu groups, such as "File," "Edit," and "Help." Each of the aforementioned menu groups can be expanded to include additional menu items, such as "New," "Open," "Save," and the like. In other examples, the menu bar 131 can include other suitable types of menu items.
[0043] As in Figure 2A, the user interface 130 can also include a 3D workspace 133 and a display area of a content library 132 containing a plurality of content items or objects 135 available for import. The 3D workspace can be initially loaded with a template 151 of a 3D environment or a previously saved 3D environment corresponding to an environment data file 109 in the output repository 114. In the illustrated example, a template 151 of a 3D environment having mountains, a sky, and open ground in front of the mountains is loaded into the 3D workspace 133 (shown in dashed lines for clarity). In other examples, the template 151 can include a forest, a building, or other suitable type of 3D environment. Similarly, as shown in Figure 2A , for illustrative purposes, only one content library 132 is shown. In particular, the exemplary content library 132 includes a plurality of objects 135 related to transportation, including, for example, a car 135a, a bus 135b, a bicycle 135c, an airplane 135d, and a train 135e. In other examples, objects 135 of additional content libraries 132 can also be presented in the display area 129.
[0044] The interface component 120 can also be configured to provide one or more anchor points 137 in the template 151 for placing 2D or 3D objects from, for example, the content library 132. Figure 2A , anchor point 137 is represented as a cross. In other embodiments, anchor point 137 can also be represented as an arrow, a star, or other suitable representation. In certain embodiments, author 101 can specify anchor point 137 by, for example, placing anchor point 137 at a location selected by the author. In other embodiments, anchor point 137 can be automatically determined by interface component 120 at the location of projection component 124 and set in the 3D workspace as one of a plurality of default anchor points 137. In yet other embodiments, interface component 120 can allow author 101 to place anchor point 137 at a location within a specific, limited area of the 3D environment.
[0045] As in Figure 2A , interface component 120 can also be configured to detect that author 101 has selected a content library 132 to be inserted into the 3D environment at anchor point 137, e.g., via drag-and-drop as indicated by dashed arrow and cursor 139. Optionally, interface component 120 can then pass the detected user input to resizing component 122 for use in determining whether the selected content library 132 contains an object 135 that needs to be resized.
[0046] In one embodiment, the resizing component 122 can be configured to determine whether an object 135 in the selected content library 132 needs to be resized by fitting the object 135 into a container of a preset size. For example, in a specific implementation, the resizing component 122 can be configured to fit the bicycle 135c into a cube having a volume of one cubic meter. In other examples, the resizing component 122 can be configured to fit the object 135 into a volume of a sphere, cylinder, or other suitable shape of a suitable size.
[0047] In response to determining that object 135 (e.g., bicycle 135c) exceeds the container in at least one dimension, resizing component 122 can resize object 135 so that object 135 fits neatly within the container. Alternatively, if object 135 is too small, e.g., does not have at least one dimension within 90%, 95%, or other suitable thresholds of the corresponding dimension of the container, resizing component 122 can also enlarge object 135 to fit neatly within the container. Thus, such resizing can render all objects 135 in the content library approximately the same size for optimal viewing in a 3D environment.
[0048] After completing the above-described resizing operation, the resizing component 122 can pass control to the projection component 124 for determining the location and placement of the inserted object 135 from the content library 132. According to embodiments of the disclosed technology, it has been recognized that placing the object 135 in a Cartesian coordinate system in a 3D environment may not be convenient for the viewer 103 ( Figure 1 ) provides a suitable view. For example, if the objects 135 are arranged along one or two dimensions along two orthogonal directions, some objects 135 may overlap with other objects, thereby causing occlusion.
[0049] To address the aforementioned challenges, several embodiments of the disclosed technology utilize a cylindrical coordinate system to place objects 135 in the content library 132 along an arc 140 or circle relative to the position of the viewer 103. Such placement can provide a suitable viewing experience for the viewer 103. For example, Figure 2B As shown in , each object 135 can be identified by a polar coordinate along the polar axis, a longitudinal coordinate along the longitudinal axis, and an angle relative to the origin of the cylindrical coordinate system. Exemplary origins can be the default position of the viewer 102, an anchor point 137, an arc 140 ( Figure 2B ) or round 140'( Figure 2E ) center 145( Figure 2B ), or another suitable location in the 3D environment.
[0050] In one implementation, the projection component 124 can be configured to determine a line of sight 142 of the viewer 103 from the default position of the viewer 103. After obtaining the direction of the line of sight 142, the projection component 124 can be configured to determine an arc 140 or a circle 140' having a center 145 spaced a preset distance from the default position of the viewer 103. For example, the preset distance between the center 145 and the viewer can be approximately 5.0, 5.5, 6.0, 6.5 meters, while the arc 140 has a radius of approximately 2.0, 2.5, 3.0, or 3.5 meters. Figures 2A-2D , arc 140 and circle 140 ″ are shown as dashed lines for illustration purposes. Arc 140 and circle 140 ′ are not visually presented to the viewer in the 3D environment, but the placement of object 135 forms arc 140 or circle 140 ′.
[0051] As in Figure 2B , projection component 124 can then be configured to place objects 135 along an arc 140 having a preset radius. In the illustrated example, projection component 124 is configured to place only a preset number of objects 135 (i.e., car 135a, bicycle 135c, and bus 135b) in the portion of arc 140 that is close to viewer 103. Other examples of the preset number can be 1, 2, 4, 5, or other suitable numbers. In addition to the preset number of objects 135 closest to viewer 103, projection component 124 can be configured to present ellipses 141 and 141' or other suitable symbols to indicate that additional objects 135 are available for viewing. As a result, when viewer 103 views objects 135, objects 135 closer to viewer 103 (e.g., bicycle 135c) appear larger than other objects due to viewer 103's depth perception. As discussed in more detail below, the viewer 103 can also rotate, scroll, or pan objects so that other objects 135 appear larger to the viewer 103 to obtain a more detailed view of the objects 135. In other embodiments, all content items can be presented as objects 135 along arcs 140 or circles 140' without the use of ellipses, as described below with reference to Figure 2E Described in more detail.
[0052] The projection component 124 can also be configured to determine the relative position of the objects 135 along the arc 140 relative to other objects 135 in the 3D environment. In the illustrated example, each object 135 can be positioned substantially at an equal distance (e.g., radius) from the center 145 of the arc 140, with an angular spacing of, for example, approximately 10°, approximately 12.5°, approximately 15°, or other suitable angular spacing from adjacent objects 135. The inventors have recognized that such placement of the objects 135 can provide the viewer 103 with a suitable or even optimal viewing experience of the objects 135 in the content library 132.
[0053] The projection component 124 can also be configured to impart specific behavioral characteristics to the objects 135 arranged around the arc 140. For example, upon receiving input from the viewer using, for example, a laser pointer for rotation, scrolling, translation, or other suitable input, the objects 135 can be repositioned along the arc 140. In response, the objects 135 can be relatively positioned in the 3D environment by presenting additional objects 135 at locations closest to or closer to the viewer 103. For example, as in Figure 2B As shown in , the viewer 103 may provide user input 143 for scrolling the object in a counterclockwise direction. In response, as shown in Figure 2C As shown in , the car 135a can be rotated to a position closer to the viewer 103, and the plane 135d is now shown as an image instead of an ellipsis 141. The bus 135b is now shown as another ellipsis 141'. In another example, as shown in Figure 2C , the viewer 103 can also provide another user input 143' for scrolling the object 135 in a clockwise direction. Figure 2D , the bus 135b can be rotated closer to the viewer 103, while the train 135e is now shown as an image instead of an ellipsis 141'. The car 135a is now shown as another ellipsis 141". In other embodiments, the authoring application can also assign physical properties such as inertia to objects, so that the rotation or rolling of the object may appear to slow down after a period of time.
[0054] Even though the objects 135 of the content library 132 are shown as being automatically placed along the arc 140 in a particular sequence, in other embodiments, the projection component 124 can be configured to allow the author 101 to change the relative position of the objects 135 with respect to other objects 135. For example, the author 101 can Figure 2D The sequence shown in FIG1 changes from bicycle 135c, bus 135a and train 135e to bus 135a, bicycle 135c and train 135e. During such a change, the relative angular spacing between adjacent objects 135 can still be maintained.
[0055] In other embodiments, the projection component 124 can also be configured to automatically place the object 135 along a circle, ellipse, or other suitable shape in the 3D environment. Figure 2E, objects 135 in content library 132 are positioned along a circle 140, with a center 145 of circle 140 spaced a preset distance from viewer 103. In the illustrated embodiment, not all objects 135 are shown as images, but rather some objects are shown as ellipses 141. In other embodiments, all objects 135 may be shown as images along circle 140' as long as a threshold angular separation (e.g., 15°) between adjacent objects 135 is maintained.
[0056] In another embodiment, the projection component 124 can be configured to import and automatically arrange content items from an additional content library 132 (not shown) as objects 135 in the 3D environment. Objects 135 from different content libraries can be organized into groups spaced apart along, for example, a longitudinal axis in the 3D environment. In this way, the 3D environment will present multiple groups of objects 135 in a stacked form, where each group has objects arranged along a corresponding circle 140' or arc 140 at a corresponding plane, as in FIG. Figure 2F In other embodiments, the groups can be arranged along polar axes or in other suitable forms in the 3D environment.
[0057] When the author 101 finishes inserting the objects 135 and / or content library 132 into the 3D environment, the output component 126 can be configured to generate an environment data file 109 to be stored in the output repository 126. The environment data file 210 can contain data representing the template 151 of the 3D environment and the identity, position, size, relative location, or other suitable information of the objects inserted into the template 151.
[0058] Figure 3A and Figure 3B is a schematic top view illustrating a specific position arrangement in a 3D environment during a specific operating phase according to an embodiment of the disclosed technology. Figure 3A As shown in FIG, the content from the content library 132 ( Figure 2A ), wherein each object 135 has a preset angular spacing (e.g., 15°) from its neighbors and has a radius (e.g., 2.5 meters) relative to a center 145 spaced from the position of the observer 103 along a line of sight 142 of the observer 103. In the illustrated example, the three objects 135 closest to the observer 103 are represented as actual images (or other suitable content types), while the other objects 135 are represented as ellipses 141. In another example, as in Figure 3B, the five objects 135 closest to the viewer 103 are represented as actual images (or other suitable content types), while the other objects 135 are represented as ellipses 141. In another example, all objects 135 may be represented as actual images (or other suitable content types) along a circle 140'.
[0059] Figures 4A-4B and Figure 5 is a flowchart illustrating a specific process of content library projection in a 3D environment according to an embodiment of the disclosed technology. Figure 1-2E While the processes are described in the computing architecture 100 of FIG. 1 , in other embodiments, the processes can also be implemented in computing architectures having additional and / or different components.
[0060] As in Figure 4A As shown in FIG, a process 200 for projecting a content library in a 3D environment includes: at stage 202, receiving a selection of a content library having a plurality of models, each model corresponding to a content item to be placed as an object in the 3D environment. In one embodiment, the selection of the content library can be performed by detecting the author 101 ( Figure 2A ) Drag and drop a graphical representation of the content library into the 3D environment to receive the selection, as in Figure 2A In other embodiments, the selection can be received by detecting an insert command, a copy / paste command, and / or other suitable commands.
[0061] Upon receiving a selection of a content library, process 200 can optionally include, at stage 204, resizing one or more virtual objects described by models in the content library. In certain embodiments, virtual object resizing can initially include, for example, resizing the virtual objects by using Figure 2A In one embodiment, the process 200 may be used to determine whether the object needs to be resized by using the container shown. In response to determining that resizing is required, the virtual object can be proportionally resized, for example, along three dimensions, so that the object is neither too large nor too small relative to the container. In other embodiments, resizing the virtual object can include modifying at least one dimension of the object based on a preset value without determining whether the object needs to be resized. In yet other embodiments, resizing the virtual object can be omitted from process 200.
[0062] Then, process 200 may include, at stage 206, projecting objects from the content library in the 3D environment. In certain embodiments, objects can be positioned in the 3D environment based on a cylindrical coordinate system and along a circle, arc, or ellipse. Each object can be placed according to azimuth, radial distance, and altitude. For example, center 145 ( Figure 2B ) can be the origin of the coordinate system, and objects placed along the circle can each have a different azimuth angle, but the same radial distance and altitude. In particular, Figure 2B The object closest to the viewer 103 can have exemplary coordinates of (0°, 3 meters, 0 meters), corresponding to a position three meters from the viewer 103 along the line of sight 142 of the viewer 103. In other embodiments, objects can be placed in the 3D environment based on a Cartesian coordinate system, a spherical coordinate system, or other suitable type of coordinate system. Figure 4B Exemplary operations of projecting objects are described in more detail.
[0063] The process 200 can then include a decision stage 208 to determine whether an additional content library has been selected. In response to determining that an additional content library has been selected for insertion, the process 200 transitions to receiving the selection at stage 202; otherwise, the process 200 proceeds to generating an environment data file at stage 210, the environment data file containing data representing the projected content library in the 3D environment, as described above with reference to FIG. Figure 1 Described in more detail.
[0064] Figure 4B Illustrated are exemplary operations for projecting a content library in a 3D environment. Figure 4B As shown in , the operations can include arranging objects from the content library along a circle or arc at stage 212. In certain embodiments, the objects are spaced apart at preset angles, such as 10°, 15°, or 20°. In other embodiments, the objects can be spaced apart by relative distances or other suitable parameters. These operations can then include a decision stage to determine whether there is enough space to accommodate all objects in the content library based on, for example, preset angular intervals. In response to determining that there is enough space available along the circle or arc, the operations can include projecting the objects as images, videos, or other suitable types of content items along the circle or arc at stage 216. In response to determining that there is not enough space along the circle or arc, the operations can include projecting some objects as images, videos, or other suitable types of content items along a portion of the circle or arc at stage 218, while projecting ellipses representing other objects along another portion of the circle or arc.
[0065] Figure 5 Illustrated are exemplary operations for manipulating the position of an object of a projected content item in a 3D environment. Figure 5 As shown in , the operation can include monitoring user input for rotation, scrolling, translation, or other suitable types of navigation operations. The operation can then include a decision stage 224 to determine whether the position of the object should be adjusted based on the monitored user input. In response to determining that the position of the object should be adjusted, the operation can include, at stage 226, determining whether the position of the object should be adjusted by, for example, relative to the position as shown in Figures 2B-2D The origin offset angle shown in is used to adjust the relative position.
[0066] Figure 6is suitable for Figure 1 The computing device 300 may be adapted to include specific components of the computing architecture 100. For example, the computing device 300 may be adapted to include Figure 1 102 or viewing device 104. In a very basic configuration 302, computing device 300 can include one or more processors 304 and system memory 306. A memory bus 308 can be used to communicate between processor 304 and system memory 306.
[0067] Depending on the desired configuration, the processor 304 can be of any type, including but not limited to: a microprocessor (μR), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. The processor 304 can include multiple levels of cache, such as a level 1 cache 312 and a level 2 cache, a processor core 314, and registers 316. An exemplary processor core 314 can include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP core), or any combination thereof. An exemplary memory controller 318 can also be used with the processor 304, or in some implementations, the memory controller 318 can be an internal part of the processor 304.
[0068] Depending on the desired configuration, system memory 306 can be of any type including, but not limited to, volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.), or any combination thereof. System memory 306 can include an operating system 320, one or more applications 322, and program data 324. Figure 6 The depicted basic configuration 302 is shown in FIG by those components within the inner dashed line.
[0069] The computing device 300 can have additional features or functionality, as well as additional interfaces to facilitate communication between the basic configuration 302 and any other devices and interfaces. For example, a bus / interface controller 330 can be used to facilitate communication between the basic configuration 302 and one or more data storage devices 332 via a storage interface bus 334. The data storage device 332 can be a removable storage device 336, a non-removable storage device 338, or a combination thereof. Examples of removable and non-removable storage devices include magnetic disk devices (such as floppy disk drives and hard disk drives (HDDs), optical disk drives (such as compact disk (CD) drives or digital versatile disk (DVD) drives), solid-state drives (SSDs), and tape drives. Exemplary computer storage media can include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (e.g., computer-readable instructions, data structures, program modules, or other data). The terms "computer-readable storage media" or "computer-readable storage device" do not include propagating signals and communication media.
[0070] System memory 306, removable storage device 336, and non-removable storage device 338 are examples of computer-readable storage media. Computer-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVDs) or other optical storage, cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by computing device 300. Any such computer-readable storage media can be part of computing device 300. The term "computer-readable storage media" does not include propagating signals and communication media.
[0071] The computing device 300 can also include an interface bus 340 for facilitating communication from various interface devices (e.g., output devices 342, peripheral interfaces 344, and communication devices 346) to the basic configuration 302 via the bus / interface controller 330. Exemplary output devices 342 include a graphics processing unit 348 and an audio processing unit 350, which can be configured to communicate with various external devices (such as a display or speakers) via one or more A / V ports 352. Exemplary peripheral interfaces 344 include a serial interface controller 354 or a parallel interface controller 356, which can be configured to communicate with external devices such as input devices (e.g., a keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices (e.g., a printer, scanner, etc.) via one or more I / O ports 358. Exemplary communication devices 346 include a network controller 360, which can be arranged to facilitate communication with one or more other computing devices 362 over a network communication link via one or more communication ports 364.
[0072] A network communication link can be an example of a communication medium. Communication media can generally be embodied by computer-readable instructions, data structures, program modules, or other data (e.g., carrier waves or other transmission mechanisms) in a modulated data signal, and can include any information transfer medium. A "modulated data signal" can be a signal that has one or more characteristics set or changed in a manner that encodes information in a signal. By way of example and not limitation, communication media can include wired media such as a wired network or a direct wired connection, and wireless media such as acoustic, radio frequency (RF), microwave, infrared (IR) and other wireless media. The term "computer-readable medium" as used herein can include both storage media and communication media.
[0073] The computing device 300 can be implemented as part of a small form factor portable (or mobile) electronic device, such as a cellular phone, a personal data assistant (PDA), a personal media player device, a wireless network viewing device, a personal headset device, a dedicated device, or a hybrid device that includes any of the above-mentioned functions. The computing device 300 can also be implemented as a personal computer including laptop and non-laptop computer configurations.
[0074] For illustrative purposes, specific embodiments of the technology have been described above. However, various modifications can be made without departing from the foregoing disclosure. In addition, many elements of one embodiment can be added to or substituted for elements of other embodiments and combined with other embodiments. Therefore, the technology is not limited except as set forth in the appended claims.
Claims
1. A method for projecting a content library of objects in a three-dimensional (3D) computer-based environment when authoring content using a computing device having a display and a processor, the method comprising: utilizing the processor of the computing device, providing a template of the 3D environment with a background on the display of the computing device; receiving user input selecting a content library comprising a plurality of models, the plurality of models individually representing two-dimensional (2D) or 3D content items to be inserted as objects into the template of the 3D environment; as well as In response to receiving the user input selecting the content library, automatically determining a position to place an individual object along at least a portion of a circle, the circle being planar relative to a depth dimension and a longitudinal dimension at an altitude along a height dimension in the 3D environment and being coplanar with a line of sight of a viewer of the individual object in the 3D environment, the at least a portion of the circle having a center at the altitude along the height dimension and being spaced a predetermined distance from the viewer along the line of sight of the viewer of the 3D environment in the depth dimension; as well as The graphical representations of the individual 2D or 3D content items are rendered and positioned as the objects at the determined positions along the at least a portion of the circle in the 3D environment such that one of the objects closest to the viewer appears larger than the other objects in the 3D environment due to the viewer's depth perception.
2. The method according to claim 1, wherein Automatically determining the location includes: A position is automatically determined to place the individual object along the at least a portion of the circle, the circle having: (i) a center at a preset distance from a viewer of the 3D environment and along the viewer's line of sight, and (ii) a preset radius.
3. The method according to claim 1, wherein Automatically determining the location includes: A position is automatically determined to place the individual object along the at least a portion of the circle and spaced apart from adjacent objects by a predetermined angle relative to a center of the at least a portion of the circle.
4. The method according to claim 1, wherein Automatically determining the location includes: automatically determining a position to place the individual object along the at least a portion of the circle and spaced apart from adjacent objects by a predetermined angle relative to a center of the at least a portion of the circle; determining whether there is sufficient space around the at least a portion of the circle to accommodate the object in the content library; and In response to determining that there is sufficient space around the at least a portion of the circle to accommodate the object in the content library, presenting or placing the graphical representation of the individual 2D or 3D content item as the object at the determined location along the at least a portion of the circle in the 3D environment.
5. The method according to claim 1, wherein Automatically determining the location includes: automatically determining a position to place the individual object along the at least a portion of the circle and spaced apart from adjacent objects by a predetermined angle relative to a center of the at least a portion of the circle; determining whether there is sufficient space around the at least a portion of the circle to accommodate the object in the content library; and In response to determining that there is insufficient space around the at least a portion of the circle to accommodate the object in the content library, presenting and placing a predetermined number of graphical representations of the 2D or 3D content items as the objects at the determined positions along the at least a portion of the circle in the 3D environment; and A graphical representation of an ellipsis is presented and positioned as an individual remaining object at the determined location along the at least a portion of the circle in the 3D environment.
6. The method according to claim 1, further comprising: Behavioral characteristics are imparted to the rendered and positioned graphical representations of the individual 2D or 3D content items in the 3D environment along the at least a portion of the circle, the behavioral characteristics including scrolling or translating the rendered objects along the at least a portion of the circle.
7. The method according to claim 1, wherein Rendering and placing the graphical representation includes: A graphical representation of one of the 2D or 3D content items is rendered and positioned as an object closest to the viewer along the line of sight of the viewer in the 3D environment.
8. The method according to claim 1, wherein Rendering and placing the graphical representation includes: rendering and placing the graphical representations of the 2D or 3D content items as objects of a group in the 3D environment; and The method further comprises: receiving another user input selecting another content library containing a plurality of models that individually represent 2D or 3D content items to be inserted as objects into the template of the 3D environment; and The graphical representations of the individual 2D or 3D content items of the further content library are presented and positioned as another group of objects along at least a portion of another circle in the 3D environment.
9. The method according to claim 1, wherein Rendering and placing the graphical representation includes: rendering and placing a graphical representation of one of the 2D or 3D content items as an object of the group in the 3D environment; and The method further comprises: receiving another user input selecting another content library containing a plurality of models that individually represent 2D or 3D content items to be inserted as objects into the template of the 3D environment; and The graphical representations of the individual 2D or 3D content items of the other content library are presented and placed as another group of objects along at least a portion of another circle in the 3D environment, wherein the objects of the group arranged along the at least a portion of the circle and the objects of the other group arranged along the at least a portion of the other circle are stacked relative to each other.
10. A computing device comprising: processor; monitor; as well as A memory operatively coupled to the processor and the display, the memory containing instructions executable by the processor to cause the computing device to perform the method according to one of claims 1-9.
Citation Information
Patent Citations
Multiscale three-dimensional orientation
US20120030630A1
Layout design using locally satisfiable proposals
US20150356774A1
Intelligent object sizing and placement in a augmented / virtual reality environment
US20170256096A1