Text editing system for 3D environments

By rendering 2D text in a 3D environment and using 3D planes and GUI textures, the difficulty of text creation and reading in a 3D environment is solved, the readability of content is improved and the update cost is reduced, and cross-platform media creation and Consumption.

CN113874868BActive Publication Date: 2025-01-07MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080036434.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-05-15
Filing Date
2020-04-14
Publication Date
2025-01-07
Estimated Expiration
2040-04-14

AI Technical Summary

Technical Problem

In 3D environments, especially in virtual reality, augmented reality and mixed reality systems, there are difficulties in creating and using text, especially when font styles or text rotates, reading and creating text becomes difficult, seriously affecting user experience and usability.

Method used

Provides a system and method for rendering 2D text in a 3D environment, applying a 2D GUI texture to the plane by generating or identifying a 3D plane, and rendering graphic control elements on the 3D plane, such as text frames, allowing users to adjust The size and orientation of the text frame to improve the readability of the content and reduce the processing costs when updating the content through a dedicated rendering mechanism.

Benefits of technology

It realizes cross-platform media creation and consumption, provides familiar features and tools, improves the readability of content in the 3D environment, and reduces the computing resource requirements and processing time when updating content.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113874868B_ABST
    Figure CN113874868B_ABST
Patent Text Reader

Abstract

The examples of the present disclosure describe systems and methods for rendering 3D text in a 3D environment. In some aspects, a three-dimensional (3D) object can be generated in a virtual reality, augmented reality, or mixed reality (MR) environment. A two-dimensional (2D) graphical user interface (GUI) texture can be applied to the plane of a 3D object. A graphic control element (e.g., a text frame) and associated content can be rendered on the GUI texture. In some aspects, a graphic control element can be associated with an edit control that enables the size and / or direction of the graphic control element to be modified within the boundaries of the GUI texture and / or the 3D object.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Authoring and using text in many virtual reality, augmented reality, and mixed reality systems is challenging. Given the resolution of current head-mounted display devices, it is often difficult (if not impossible) to read text in a 3D environment when certain fonts / styles are applied to the text and / or the text is rotated / oriented in certain ways. Authoring text using these head-mounted display devices is also difficult for similar reasons. Such issues severely impair the user experience and usability of these systems.

[0002] It is with respect to these and other general considerations that the aspects disclosed herein are made.In addition, although relatively specific problems may be discussed, it should be understood that these examples should not be limited to solving specific problems identified elsewhere in the background or in this disclosure. Summary of the invention

[0003] The examples of the present disclosure describe systems and methods for rendering 2D text in a 3D environment. In some aspects, a three-dimensional (3D) object can be generated in a virtual reality, augmented reality, or mixed reality (MR) environment. A two-dimensional (2D) graphical user interface (GUI) texture can be applied to the plane of a 3D object. A graphical control element (e.g., a text box) and associated content can be rendered on the GUI texture. In some aspects, a graphical control element can be associated with an edit control that enables the size and / or direction of the graphical control element to be modified within the boundaries of the GUI texture and / or the 3D object.

[0004] This disclosure is provided to introduce in simplified form a selection of design concepts that are further described below in the detailed description. This disclosure is not intended to identify key features or important features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Additional aspects, features, and / or advantages of the examples will be set forth in part in the description below, and in part will be apparent from the description, or may be learned through the practice of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] Non-limiting and non-exhaustive examples are described with reference to the following figures.

[0006] Figure 1 An overview of an example system for rendering 2D text in a 3D environment as described herein is shown.

[0007] Figure 2 An example input processing unit for rendering 2D text in a 3D environment as described herein is shown.

[0008] Figure 3An example method for rendering 2D text in a 3D environment as described herein is shown.

[0009] Figure 4A and Figure 4B An example 3D environment for rendering 3D content as described herein is shown.

[0010] Figure 5A and Figure 5B An example view of an editing control for manipulating aspects of a graphical control element in a 3D environment is shown.

[0011] Figure 6 is a block diagram illustrating example physical components of a computing device that may be used to implement aspects of the present disclosure.

[0012] Fig. 7A and Figure 7B is a simplified block diagram of a mobile computing device that can be used to implement aspects of the present disclosure.

[0013] Figure 8 is a simplified block diagram of a distributed computing system in which aspects of the present disclosure may be implemented.

[0014] Fig. 9 A tablet computing device for performing one or more aspects of the present disclosure is shown. DETAILED DESCRIPTION

[0015] Various aspects of the present disclosure are described more fully below with reference to the accompanying drawings, which form a part of this specification and illustrate specific example aspects. However, different aspects of the present disclosure can be implemented in a variety of different forms and should not be interpreted as limiting the aspects set forth herein; rather, these aspects are provided so that the present disclosure will be thorough and complete, and the scope of these aspects will be fully conveyed to those skilled in the art. Various aspects can be implemented as methods, systems, or devices. Therefore, various aspects can take the form of hardware implementation, overall software implementation, or implementation of combined software and hardware aspects. Therefore, the specific embodiments below should not be considered to have a limiting meaning.

[0016] The creation and use of 3D content, particularly 2D text, presents various challenges in many 3D systems. One of the challenges is that many 3D creation tools are application-specific or platform-specific. Therefore, when presented using the creation and viewing tools of different applications and platforms, the content created using such tools is usually difficult to read (if not unreadable). For example, the font or style applied to the content created using a text editor may be unavailable in other text editors. As another example, the font size or zoom level applied to the content created using a text editor may cause the content to be unreadable or unsightly when rendered in different text editors. Another challenge for many 3D systems is the huge processing cost of rendering updated content in a 3D environment. In such a system, when any aspect or attribute of a 3D object is updated, the entire 3D object (e.g., object geometry, texture of application, graphic control elements of application, text / image content, etc.) is to be re-rendered / reloaded, if not the entire 3D environment. Therefore, updating multiple objects in a 3D environment can seriously affect the performance of the 3D system.

[0017] To address such challenges in 3D systems, the present disclosure describes systems and methods for rendering 2D text in a 3D environment. In some aspects, a user may access a virtual reality (VR), augmented reality (AR), or mixed reality (MR) system. The system may include a head mounted display (HMD) for presenting an environment including two-dimensional (2D) and / or three-dimensional (3D) content to a user. The content may include, for example, 2D and 3D objects, such as video objects, image objects, control objects, audio objects, etc. In an example, a system may provide a media utility for creating, editing, and / or consuming at least text content in an environment. The media utility may be implemented in a cross-platform manner so that a user can create content on a first platform or application and consume the content on other platforms or applications. Such an implementation may enable users of various platforms and devices to create and consume content using familiar features, styles, and tools. In at least one aspect, a media utility may provide text content using one or more content frames. The content frame may be configured to use editing controls to change the size, direction, and viewing plane of the content displayed in the content frame. As one example, an editing control may enable 2D properties of a content frame (e.g., width and height) to be adjusted within the environment. As another example, an editing control may enable a content frame to be manipulated in 3D space (e.g., rotated around one or more axes of the environment). Such editing tools may enable a user to manipulate the content frame as desired to improve content readability and avoid content obstruction.

[0018] In some aspects, the system can use a special rendering mechanism to render the content frame (and corresponding content) in the environment. This rendering mechanism includes: generating or accessing a 3D plane in the environment. The 3D plane is associated with a 3D object placed in the environment or the geometry of the environment itself. A 2D GUI texture can be applied to the 3D plane. As used herein, a GUI texture can refer to a 2D image on which a user interface element can be placed. In an example, the texture can include a size that cannot exceed the boundary of the 3D plane. Graphic control elements, such as a text frame, can be rendered on the texture. The text frame can include a customizable size that does not (and cannot be customized to) exceed the texture boundary. For example, when the size of the text frame is adjusted, the content size of the text frame is also adjusted accordingly, while the size of the 3D plane and the texture remains unchanged. In the example, because only the texture must be reloaded (rather than reloading the entire 3D object) when the texture is updated, this special rendering mechanism reduces the processing requirements for the texture and attributes of the 3D objects in the update environment.

[0019] Accordingly, the present disclosure provides multiple technical benefits, including, but not limited to: providing a cross-platform media creation / consumption utility that provides users with familiar features and options; improving the readability of content rendered in a 3D environment by providing various editing controls; and reducing the time and computing resource requirements for rendering updated content in a 3D environment, among other examples.

[0020] Figure 1 An overview of an example system for rendering 2D text in a 3D environment as described herein is shown. The example system 100 presented is a combination of interdependent components that interact to form an integrated whole for rendering 3D objects in a 3D environment. The components of the system may be hardware components or software implemented on and / or executed by hardware components of the system. In some examples, the system 100 may include any of hardware components (e.g., for executing / running an operating system (OS)), and software components (e.g., applications, application programming interfaces (APIs), modules, virtual machines, runtime libraries, etc.) running on the hardware. In one example, the example system 100 may provide an environment for the operation of software components, complying with constraints set for the operation, and utilizing the resources or facilities of the system 100, wherein the components may be software (e.g., applications, programs, modules, etc.) running on one or more processing devices. For example, the software (e.g., applications, operating instructions, modules, etc.) may be run on a processing device such as a personal computer (PC), a mobile device (e.g., a smart phone / phone, a tablet, a laptop, a personal digital assistant (PDA), etc.), and / or any other electronic computing device. As an example of a processing device operating environment, reference is made to Figure 6-Figure 9The example operating environment depicted in . In other examples, the components of the systems disclosed herein can be distributed across multiple devices. For example, input can be typed on a client device, and information can be processed or accessed from other devices in the network (such as one or more server devices).

[0021] As an example, system 100 includes computing devices 102 and 104, 3D environment service 106, and distributed network 108. Those skilled in the art will appreciate that the scale of a system such as system 100 may vary and may include more than 100 computing devices. Figure 1 . In some aspects, computing devices 102 and 104 may be any of a variety of computing devices, including but not limited to the processing devices described above. Computing devices 102 and 104 may be configured to interact with 3D environment service 106 using one or more input options, such as a head-mounted display device or another 3D visualization system, a keyboard, a pointing / selection device, a microphone, one or more tactile devices, etc. Computing devices 102 and 104 may also be configured to implement a media editing / consumption utility, such as a text editor. In an example, a media editing / consumption utility may be a stand-alone system configured for cross-platform and / or cross-application use. Publishing content using a media editing / consumption utility may enable users to read and interact with content as intended by the creator using a range of devices and / or applications.

[0022] 3D environment service 106 may be configured to create and / or present a 3D environment. In some aspects, 3D environment service 106 may be provided, for example, as part of an interactive productivity or gaming platform. It should be understood that although 3D environment service 106 is shown as being separate from computing devices 102 and 104, 3D environment service 106 (or one or more components or instances thereof) may be provided by computing devices 102 and / or 104 individually or collectively. As a specific example, computing devices 102 and 104 may each provide a separate instance of 3D environment service 106. In such an example, an instance of 3D environment service 106 may be accessed locally on computing device 102 using a stored executable file; whereas computing device 104 may access an instance of 3D environment service 106 over a network (e.g., distributed network 108).

[0023] The 3D environment service 106 may be configured to enable content creators to configure a 3D environment. For example, the 3D environment service 106 may include an authoring component. The authoring component may provide a display of a 2D representation of one or more 3D models, which may be selected, positioned, and / or customized by the creator to create a 3D environment. The model may include one or more content points, which the creator may use to position the content within the 3D environment. In some examples, the authoring component may provide various themes and / or textures to be applied to the 3D environment or the models and objects therein. As described above, the authoring component may additionally provide a media editing / consumption utility. The media editing / consumption utility may provide editing controls for content created using the media editing / consumption utility. The editing controls may enable a user to manipulate the size and direction of the created content within the 3D environment. In some aspects, the 3D environment service 106 may additionally include a rendering component. The rendering component may use an improved rendering process to render content created using the media editing / consumption utility. In an example, the rendering process may include applying a 2D texture to a 3D plane of the 3D environment and rendering content on the 2D texture.

[0024] The 3D environment service 106 may also be configured to enable content consumers (e.g., users) to interact with the created 3D environment. For example, the 3D environment service 106 may include a viewing component. The viewing component may be used to view, explore, and / or interact with the 3D environment. In some examples, the viewing component may be a web-based application accessible via a user's web browser. In other examples, the viewing component may be an executable application stored locally on the user's device. The viewing component may fill the rendered 3D environment with content at various content points of one or more models based on an environment data file. The environment data file may include information associated with the model (e.g., model identifier, model type, etc.), positioning information (e.g., coordinates, anchor identifiers, etc.), content information (e.g., content to be displayed, references to content, etc.), and custom resources (e.g., custom textures, sounds, etc.), as well as other information.

[0025] Figure 2 An overview of an example input processing system 200 for rendering 2D text in a 3D environment as described herein is shown. Rendering techniques implemented by the input processing system 200 may include Figure 1 In some examples, one or more components of input processing system 200 (or their functions) may be distributed across multiple devices. In other examples, a single device (including at least a processor and / or a memory) may include components of input processing system 200.

[0026] about Figure 2, the input processing system 200 may include a 3D environment engine 202, a text network component 204, a rendering engine 206, and an editing control 208. In some aspects, the 3D environment engine 202 may be configured to provide a 3D environment including various 2D / 3D models and objects. The 3D environment engine 202 may enable creators (e.g., content creators or editors) and users (e.g., content consumers) to interact with the 2D / 3D models and objects of the 3D environment using various tools and utilities. Interaction with the 2D / 3D models and objects may involve, for example, generating, selecting, positioning, orienting, texturing, coloring, or otherwise editing models, objects, and content in the 3D environment. It should be understood that, although the text network component 204, the editing control 206, and the rendering engine 208 are shown as being separate from the 3D environment engine 202, one or more of the elements 204, 206, and 208 (or their functions) may be incorporated into the 3D environment engine 202. As one example, the rendering functionality of the rendering engine 208 and aspects of the text network component 204 may be incorporated into the 3D environment engine 202 .

[0027] The text network component 204 can be configured to enable creators and users to edit text in a 3D environment. In some aspects, the text network component 204 can be a media editing utility for generating, modifying and viewing content in a 3D environment. The text network component 204 can be a stand-alone system configured for cross-platform and / or cross-application use. For example, the text network component 204 can be implemented as a plug-in or add-on for multiple applications and / or devices. Or, the text network component 204 can be implemented as a dedicated utility for the input processing system 200 and / or 3D services (e.g., 3D environment services 106). In an example, the text network component 204 provides features and options that enable users to read and interact with content in a 3D environment in accordance with the creator's intention. For example, the text network component 204 can provide features such as horizontal and vertical text alignment, automatic line wrapping, familiar fonts and styles, and recognizable property panels. In at least one example, the property panel provided by the text network component 204 may include a limited set of available properties. The available property set can represent those properties that can be adjusted while minimizing the threat of making the content displayed in the 3D environment illegible, blocked, or unsightly. For example, the available attribute set can set limits on the zoom level and / or font size that can be used in the 3D environment. In some aspects, determining which attributes are available in the attribute panel can be a manual decision of the creator. In other aspects, a rule set, decision logic or rendering algorithm can be used to automatically perform determining which attributes are available in the attribute panel. For example, the text network component 204 can use a rendering algorithm to calculate the allowable zoom in the 3D environment based on the image resolution attribute of the object and the estimated font size of the detected text.

[0028] The rendering engine 206 may be configured to render content generated using the text network component 204. In some aspects, the content generated using the text network component 204 may be provided to the rendering engine 206 (or otherwise accessible to the rendering engine 206). The rendering engine 206 may implement improved rendering techniques that reduce the processing requirements for updating textures and properties of objects in a 3D environment. For example, in order to render 3D content in a 3D environment, the rendering engine 206 may generate or access a 3D plane in the 3D environment. The rendering engine 206 may apply a 2D texture to at least a portion of the 3D plane. The rendering engine 206 may apply a graphics control element to the 2D texture so that the size of the graphics control element does not exceed the size of the 2D texture. The rendering engine 206 may then render the content to the graphics control element. In an example, the improved rendering technique of the rendering engine 206 provides that when a 2D texture or the content of a 2D texture is modified, the entire 3D environment or the entire 3D object does not need to be reloaded. Instead, only the 2D texture applied to the 3D object is reloaded; therefore, the processing cost associated with updating the 3D environment is greatly reduced.

[0029] The editing control 208 can be configured to manipulate aspects of the graphical control element. In some aspects, the editing control 208 can be applied to one or more objects in a 3D environment. The editing control 208 can enable the size and orientation of the object to be modified. For example, the editing control 208 can be applied to the graphical control element to enable the width and height of the graphical control element to be adjusted. As another example, the editing control 208 can be applied to the graphical control element to enable the graphical control element to be rotated around one or more axes in 3D space.

[0030] Having described various systems that may be employed by aspects of the present disclosure, the present disclosure will now describe one or more methods that may be performed by various aspects of the present disclosure. In some aspects, method 300 may be performed by, for example, Figure 1 System 100 or Figure 2 The method 300 may be performed in an execution environment of a system such as the system 200 of the present invention. However, the method 300 is not limited to these examples. In other aspects, the method 300 may be performed on an application or service that provides a 3D environment. In at least one aspect, the method 300 may be performed by one or more components of a distributed network (e.g., a computer-implemented operation), such as a network service / distributed network service (e.g., a cloud service).

[0031] Figure 3An example method 300 for rendering 3D text in a 3D environment as described herein is shown. Although method 300 is described herein for a VR environment, it should be understood that the techniques of method 300 may also be applied to other 3D environments, such as AR and MR environments. In some aspects, a 3D application / service (e.g., 3D environment service 106) may provide a 3D environment including various 2D and / or 3D objects. The 3D application / service may use a rendering component, such as rendering engine 206. The rendering component may be used to render various 2D and 3D objects, models, and utilities available to the 3D environment. In an example, at least one of the rendered objects may be a text web component that provides features and options that enable a user to read and interact with 3D content in a 3D environment.

[0032] The example method 300 begins at operation 302, where a 3D plane is generated or identified for rendering 3D content. In some aspects, a 3D plane in a 3D environment may be generated or identified by a rendering component. The 3D plane may be associated with a 3D model or object placed in the environment or the geometry of the environment itself.

[0033] At operation 304, the 2D GUI texture may be applied to the 3D plane. In some aspects, the rendering component may apply the 2D GUI texture to at least a portion of the 3D plane. Applying the 2D GUI texture may include placing the 2D GUI texture on a portion of the 3D plane. In an example, the 2D GUI texture may be applied so that the size of the 2D GUI texture does not exceed the boundaries of the 3D plane.

[0034] At operation 306, a text frame may be applied to the 2D GUI texture. In some aspects, the text frame (or alternative graphical control element) may be applied to at least a portion of the 2D GUI texture. Applying the text frame may include placing the text frame on a portion of the 2D plane that is applied to the 3D plane. In an example, the text frame may be applied so that the size of the text frame does not exceed the boundaries of the 2D GUI texture. Content (e.g., text or an image) may then be entered into the text frame using a media editing utility (e.g., text network component 204).

[0035] At operation 308, a text frame may be rendered. In some aspects, a 3D rendering component (e.g., rendering engine 206) may be used to render a text frame in a 3D environment. Rendering a text frame may include rendering a 3D plane, a 2D GUI texture, a text frame, and / or content input to the text frame in a 3D environment. In an example, one or more rendered objects, such as a 3D plane and / or a 2D GUI texture, may be transparent or translucent in a 3D environment. In some aspects, the size of the text frame may be adjustable within the boundaries of the 2D GUI texture. In these aspects, when the size of the text frame is adjusted, the properties of the content within the text frame may be adjusted accordingly, while the size of the 3D plane and the 2D GUI texture remain unchanged. For example, when the size of the text frame is reduced, the font size of the text in the text frame may be reduced and / or the automatic line wrap function may be used to reduce the amount of text in each line of the text frame.

[0036] Figure 4A and Figure 4B An example 3D environment 400 for rendering 3D content is shown. In some aspects, the 3D environment 400 may include a 3D plane 402, a 2D GUI texture 404, and a content frame 406. The 3D plane 402 may represent any plane in the 3D space of the 3D environment 400. Figure 4A and Figure 4B In the specific example shown, 3D plane 402 extends along the x-axis and y-axis of 3D environment 400 and includes an area of ​​4 meters by 4 meters. 2D GUI texture 404 is a texture applied to 3D plane 402. 2D GUI texture 404 is applied within the boundaries of 3D plane 402 and cannot extend beyond the boundaries of 3D plane 402. Figure 4A and Figure 4B In the specific example shown, the area of ​​2D GUI texture 404 is 4096 pixels by 4096 pixels. Content frame 406 is a text frame applied to 2D GUI texture 404. Content frame 406 is applied within the boundaries of 2D GUI texture 404 and 3D plane 402, and cannot extend beyond the boundaries of 2D GUI texture 404 or 3D plane 402. Figure 4A In the specific example shown, the area of ​​the content frame 406 is 2048 pixels by 512 pixels. In some aspects, the area of ​​the content frame 406 can be modified without modifying the area size of the 2D GUI texture 404 and the 3D plane 402. For example, Figure 4B As shown, the area of ​​the content frame 406 increases to 3072 by 512 pixels, while the area of ​​the 2D GUI texture 404 remains at 4096 by 4096 pixels, and the area of ​​the 3D plane 402 remains at 4 meters by 4 meters.

[0037] Figure 5A and Figure 5B Example views 500 and 510 of edit controls for manipulating aspects of graphical control elements are shown. In some aspects, one or more edit controls can be applied to objects in the 3D environment discussed herein. The edit controls can enable authors and / or users accessing the 3D environment to modify various properties of the objects. Figure 5A In the specific example shown, view 500 includes text frame 502 and edit controls 504 and 506. Edit controls 504 and 506 can adjust the width and height of text frame 502 in 2D space, respectively. In the example, modifying the size of text frame 502 does not modify the size of text frame 502 in 3D space. Figure 5B In the particular example shown, view 510 includes text frame 502 and edit controls 512 and 514. Edit controls 512 and 514 can adjust the rotation of text frame 502 about the x-axis and y-axis, respectively. It should be understood that text frame 502 can include more or fewer edit controls than depicted, and that the edit controls can control rotation about more, fewer, or additional axes of rotation than those described above.

[0038] Figure 6-Figure 9 The and associated descriptions provide a discussion of various operating environments in which aspects of the present disclosure may be implemented. Figure 6-Figure 9 The devices and systems discussed are for purposes of example and explanation and are not limiting of the broad computing device configurations that may be used to implement aspects of the present disclosure described herein.

[0039] Figure 6 6 is a block diagram illustrating physical components (e.g., hardware) of a computing device 600 that can be used to implement aspects of the present disclosure. The computing device components described below may be applicable to the computing devices described above, including computing devices 102 and 104 and 3D environment service 106. In a basic configuration, computing device 600 may include at least one processing unit 602 and system memory 604. Depending on the configuration and type of the computing device, system memory 604 may include, but is not limited to, a volatile storage unit (e.g., random access memory), a non-volatile storage unit (e.g., read-only memory), a flash memory, or any combination of such memories.

[0040] The system memory 604 may include an operating system 605 and one or more program modules 606 suitable for running software applications 620, such as one or more components supported by the system described herein. As an example, the system memory 604 may include a 3D environment application 624 and a textual network component 626. For example, the operating system 605 may be suitable for controlling the operation of the computing device 600.

[0041] In addition, embodiments of the present disclosure may be implemented in conjunction with a graphics library, other operating systems, or any other application, and are not limited to any particular application or system. Figure 6 608. The computing device 600 may have additional features or functionality. For example, the computing device 600 may also include additional data storage devices (removable and / or non-removable), such as magnetic disks, optical disks, or tapes. Such additional storage units may be Figure 6 , illustrated by a removable storage device 609 and a non-removable storage device 610.

[0042] As described above, a number of program modules and data files can be stored in system memory 604. When executed on processing unit 602, program modules 606 (e.g., applications 620) can perform processes including, but not limited to, aspects as described herein. Other program modules that can be used in accordance with aspects of the present disclosure may include: email and contact applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-assisted applications, and the like.

[0043] In addition, embodiments of the present disclosure may be implemented in circuits including discrete electronic components, packaged or integrated electronic chips containing logic gates, circuits using microprocessors, or on a single chip containing electronic components or microprocessors. For example, embodiments of the present disclosure may be implemented via a system on a chip (SoC) in which: Figure 6 Each or many of the components shown may be integrated onto a single integrated circuit. Such a SOC device may include one or more processing units, a graphics unit, a communication unit, a system virtualization unit, and various application functions, all of which may be integrated (or "burned") onto a chip substrate as a single integrated circuit. When operated via a SOC, the functionality described herein for the ability to switch protocols for a client may be operated via an application-specific logic unit integrated with other components of the computing device 600 on a single integrated circuit (chip). Embodiments of the present disclosure may also be implemented using other technologies capable of performing logical operations (such as, for example, AND, OR, and NOT), including but not limited to mechanical, optical, fluidic, and quantum technologies. In addition, embodiments of the present disclosure may be implemented in a general-purpose computer or in any other circuit or system.

[0044] The computing device 600 may also have one or more input devices 612, such as a keyboard, a mouse, a pen, a sound or voice input device, a touch or swipe input device, etc. Output devices 614 such as a display, a speaker, a printer, etc. may also be included. The aforementioned devices are examples, and other devices may be used. The computing device 600 may include one or more communication connections 616 that allow communication with other computing devices 650. Examples of suitable communication connections 616 include, but are not limited to: radio frequency (RF) transmitters, receivers, and / or transceiver circuits, universal serial buses (USB), parallel and / or serial ports.

[0045] The term computer-readable media as used herein may include computer storage media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures or program modules. System memory 604, removable storage device 609 and non-removable storage device 610 are all examples of computer storage media (e.g., memory storage units). Computer storage media may include: RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage unit, magnetic tape cassette, magnetic tape, magnetic disk storage unit or other magnetic storage device, or any other article that can be used to store information and can be accessed by computing device 600. Any such computer storage media may be part of computing device 600. Computer storage media do not include carrier waveforms or other propagated or modulated data signals.

[0046] Communication media may be embodied as computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier waveform or other transport mechanism and includes any information delivery media. The term "modulated data signal" may describe a signal that has one or more characteristics set or changed in a manner that encodes information in the signal. By way of example and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.

[0047] Fig. 7A and Figure 7B A mobile computing device 700 (e.g., a mobile phone, a smart phone, a wearable computer (such as a smart watch), a tablet computer, a laptop computer, etc.) that can be used to implement embodiments of the present disclosure is shown. In some aspects, the client can be a mobile computing device. Fig. 7A, one aspect of a mobile computing device 700 for implementing these aspects is shown. In a basic configuration, the mobile computing device 700 is a handheld computer having both an input unit and an output unit. The mobile computing device 700 typically includes a display 705 and one or more input buttons 710 that allow a user to input information into the mobile computing device 700. The display 705 of the mobile computing device 700 may also be used as an input device (e.g., a touch screen display).

[0048] If included, the optional side input unit 715 allows further user input. The side input unit 715 may be a rotary switch, a button, or any other type of manual input unit. In alternative aspects, the mobile computing device 700 may incorporate more or fewer input units. For example, in some embodiments, the display 705 may not be a touch screen.

[0049] In yet another alternative embodiment, the mobile computing device 700 is a portable telephone system, such as a cellular phone. The mobile computing device 700 may also include an optional key 735. The optional key 735 may be a physical key or a "soft" key generated on a touch screen display.

[0050] In various embodiments, the output unit includes: a display 705 for displaying a graphical user interface (GUI), a visual indicator 720 (e.g., a light emitting diode), and / or an audio transducer 725 (e.g., a speaker). In some aspects, the mobile computing device 700 incorporates a vibration transducer for providing tactile feedback to the user. In yet another aspect, the mobile computing device 700 incorporates input and / or output ports, such as an audio input (e.g., a microphone jack), an audio output (e.g., a headphone jack), and a video output (e.g., an HDMI port) for sending or receiving signals to or from an external device.

[0051] Figure 7B 700 is a block diagram illustrating an architecture of one aspect of a mobile computing device. That is, a mobile computing device 700 may incorporate a system (e.g., architecture) 702 to implement some aspects. In one embodiment, the system 702 is implemented as a "smart phone" capable of running one or more applications (e.g., a browser, email, calendar, contact manager, messaging client, game, and media client / player). In some aspects, the system 702 is integrated into a computing device (e.g., an integrated personal digital assistant (PDA) and a wireless phone).

[0052] One or more application programs 766 may be loaded into the memory 762 and run on or in association with the operating system 764. Examples of application programs include: a phone dialer, an email program, a personal information management (PIM) program, a word processing program, a spreadsheet program, an Internet browser program, a messaging program, etc. The system 702 also includes a non-volatile storage area 768 within the memory 762. The non-volatile storage area 768 may be used to store persistent information that should not be lost if the system 702 loses power. The application programs 766 may use and store information in the non-volatile storage area 768, such as emails or other messages used by the email application, etc. A synchronization application (not shown) is also located on the system 702 and is programmed to interact with a corresponding synchronization application resident on the host computer to keep the information stored in the non-volatile storage area 768 synchronized with the corresponding information stored at the host computer. It should be understood that other applications may be loaded into the memory 762 and run on the mobile computing device 700 described herein (e.g., a search engine, an extractor module, a relevance ranking module, an answer scoring module, etc.).

[0053] System 702 has a power source 770, which may be implemented as one or more batteries. Power source 770 may also include an external power source, such as an AC adapter or a powered dock to replenish or recharge the batteries.

[0054] The system 702 may also include a radio interface layer 772 that performs the function of sending and receiving radio frequency communications. The radio interface layer 772 facilitates wireless connectivity between the system 702 and the "outside world" via a communications carrier or service provider. Transmissions to and from the radio interface layer 772 are performed under the control of the operating system 764. In other words, communications received by the radio interface layer 772 may be propagated to the application 766 via the operating system 764, and vice versa.

[0055] The visual indicator 720 can be used to provide visual notifications, and / or the audio interface 774 can be used to generate audible notifications via the audio converter 725. In the illustrated embodiment, the visual indicator 720 is a light emitting diode (LED), and the audio converter 725 is a speaker. These devices can be directly coupled to the power supply 770 so that when activated, they remain in working state for a period of time indicated by the notification mechanism, even if the processor 760 and other components may be turned off to save battery power. The LED can be programmed to remain in working state until the user takes action to indicate the power-on state of the device. The audio interface 774 is used to provide audible signals to the user and receive audible signals from the user. For example, in addition to being coupled to the audio converter 725, the audio interface 774 can also be coupled to a microphone to receive audible input, such as to facilitate telephone conversations. According to some embodiments of the present disclosure, as will be described below, the microphone can also be used as an audio sensor to facilitate control of notifications. The system 702 can also include a video interface 776, which starts the operation of the camera 730 on the board to record still images, video streams, etc.

[0056] The mobile computing device 700 implementing the system 702 may have additional features or functionality. For example, the mobile computing device 700 may also include additional data storage devices (removable and / or non-removable), such as magnetic disks, optical disks, or tapes. These additional storage units may be stored in the mobile computing device 700. Figure 7B , shown by non-volatile storage area 768.

[0057] Data / information generated or captured by the mobile computing device 700 and stored via the system 702 may be stored locally on the mobile computing device 700 as described above, or the data may be stored on any number of storage media accessible by the device via the radio interface layer 772 or via a wired connection between the mobile computing device 700 and a separate computing device associated with the mobile computing device 700 (e.g., a server computer in a distributed computing network such as the Internet). It should be appreciated that such data / information may be accessed via the mobile computing device 700 via the radio interface layer 772 or via a distributed computing network. Similarly, such data / information may be easily transferred between computing devices for storage and use according to well-known data / information transmission and storage means, including email and collaborative data / information sharing systems.

[0058] Figure 8One aspect of the architecture of a system for processing data received at a computing system from a remote source (e.g., a personal computer 804, a tablet computing device 806, or a mobile computing device 808 as described above) is shown. The content displayed at the server device 802 can be stored in different communication channels or other storage types. For example, a directory service 822, a portal website 824, a mailbox service 826, an instant messaging storage unit 828, or a social networking website 830 can be used to store various documents.

[0059] 3D environment application 820 can be used by a client communicating with server device 802, and / or 3D environment data storage unit 821 can be used by server device 802. Server device 802 can provide data to and from client computing devices such as personal computer 804, tablet computing device 806, and / or mobile computing device 808 (e.g., smart phone) via network 815. By way of example, the above-described computer system can be embodied in personal computer 804, tablet computing device 806, and / or mobile computing device 808 (e.g., smart phone). In addition to receiving graphics data that can be used for pre-processing at a graphics originating system or post-processing at a receiving computing system, any of these embodiments of the computing device can obtain content from storage unit 816.

[0060] Fig. 9 An exemplary tablet computing device 900 is shown that can perform one or more aspects disclosed herein. In addition, the aspects and functions described herein can be operated on a distributed system (e.g., a cloud-based computing system) in which application functions, memory, data storage and retrieval, and various processing functions can be remotely operated relative to each other through a distributed computing network (such as the Internet or an intranet). Various types of user interfaces and information can be displayed via an on-board computing device display, or via a remote display unit associated with one or more computing devices. For example, various types of user interfaces and information can be displayed on a wall on which various types of user interfaces and information are projected and interact with such a wall. Interaction with numerous computing systems that can be used to implement embodiments of the present invention includes: keystroke input, touch screen input, voice or other audio input, gesture input when the associated computing device is equipped with a detection (e.g., camera) function for capturing and interpreting user gestures for controlling the functions of the computing device, etc.

[0061] For example, aspects of the present disclosure are described above with reference to the block diagrams and / or operational descriptions of the methods, systems, and computer program products according to aspects of the present disclosure. The functions / actions indicated in these frames may not occur in the order shown in any flow chart. For example, two frames that are shown as successive may actually be substantially executed in parallel, or these frames may sometimes be executed in reverse order, depending on the functions / actions involved.

[0062] The description and depiction of one or more aspects provided in this application are not intended to limit or restrict the scope of the disclosure claimed in any way. It is believed that the aspects, examples and details provided in this application are sufficient to convey possession, and enable others to make and use the best mode of the disclosure claimed. The disclosure claimed should not be interpreted as being limited to any aspect, example or detail provided in this application. Regardless of whether it is shown and described in combination or separately, it is intended to selectively include or omit several features (structural and methodological) to produce an embodiment with a specific set of features. The description and illustration of the application have been provided, and those skilled in the art may conceive of variants, modifications and alternative aspects within the spirit of the broader aspects of the general inventive concept embodied in this application without departing from the broader scope of the disclosure claimed.

Claims

1. A system for rendering 2D text in a 3D environment, comprising: one or more processors; as well as A memory coupled to at least one of the one or more processors, the memory comprising computer executable instructions that, when executed by the at least one processor, perform a method comprising: Identifying a 3D plane in the 3D environment, the 3D environment comprising at least one of a virtual reality (VR), an augmented reality (AR), or a mixed reality (MR) environment; Displaying a 2D graphical user interface GUI texture on at least a portion of the 3D plane; inserting a 2D text frame into at least a portion of the 2D GUI texture, wherein a size of the 3D plane and a size of the 2D GUI texture remain unchanged when a size of the 2D text frame is modified, wherein the 2D GUI texture is a two-dimensional object displayed within the 3D environment; and The 2D text frame including the 2D GUI texture is rendered in the 3D environment.

2. The system according to claim 1, wherein: The 3D environment is accessed using a head mounted display device.

3. The system according to claim 1, wherein: Rendering the 2D text frame in the 3D environment includes rendering at least one of the 3D plane and the 2D GUI texture in the 3D environment.

4. The system according to claim 1, wherein: The size of the 2D text frame cannot exceed the size of the 2D GUI texture.

5. The system of claim 1, wherein the method further comprises: The size of the 2D text frame is modified in 3D space using one or more editing controls of the 2D text frame, wherein modifying the size of the 2D text frame does not cause the 2D GUI texture to be reloaded in the 3D environment.

6. The system of claim 1, wherein the method further comprises: applying content to the 2D text frame; as well as The content is rendered when the 2D text frame is rendered.

7. The system of claim 1, wherein the method further comprises: accessing a media editor in the 3D environment; updating the content of the 2D text frame using the media editor; as well as The updated content is rendered in the 3D environment, wherein rendering the updated content comprises updating the 2D GUI texture.

8. The system according to claim 7, wherein: The media editor is a cross-platform, system-independent system accessible to the 3D environment.

9. The system according to claim 7, wherein: The media editor is associated with a properties panel including a set of properties related to the 2D text frame.

10. The system according to claim 9, wherein: Each attribute in the attribute set is associated with an available range of attribute values, wherein the available range of attribute values ​​includes attribute values ​​that do not render content of the 2D text frame illegible.

11. The system according to claim 10, wherein: Determining the available range of the attribute value includes using at least one of a rule set, a decision logic, or a rendering algorithm.

12. A method for rendering 2D text in a 3D environment, comprising: Identifying a 3D plane in the 3D environment, the 3D environment comprising at least one of a virtual reality (VR), an augmented reality (AR), or a mixed reality (MR) environment; Displaying a 2D graphical user interface GUI texture on at least a portion of the 3D plane; inserting a 2D text frame into at least a portion of the 2D GUI texture, wherein a size of the 3D plane and a size of the 2D GUI texture remain unchanged when a size of the 2D text frame is modified, wherein the 2D GUI texture is a two-dimensional object displayed within the 3D environment; and The 2D text frame including the 2D GUI texture is rendered in the 3D environment.

13. The method according to claim 12, further comprising: The size of the 2D text frame is modified in 2D space using one or more editing controls of the 2D text frame, wherein modifying the size of the 2D text frame does not cause the 2D GUI texture to be reloaded in the 3D environment.

14. The method according to claim 12, further comprising: accessing a media editor in the 3D environment; updating the text of the 2D text frame using the media editor; as well as The updated text is rendered in the 3D environment, wherein rendering the updated text comprises updating the 2D GUI texture without reloading the 3D plane.

15. A 3D environment system, comprising: one or more processors; as well as A memory coupled to at least one of the one or more processors, the memory comprising computer executable instructions that, when executed by the at least one processor, perform a method comprising: Identify a 3D plane in a 3D environment of the 3D environment system, wherein the 3D environment includes at least one of a virtual reality (VR), an augmented reality (AR), or a mixed reality (MR) environment; Displaying a 2D graphical user interface (GUI) texture on at least a portion of the 3D plane using a rendering engine; inserting a 2D text frame into at least a portion of the 2D GUI texture using the rendering engine, wherein a size of the 3D plane and a size of the 2D GUI texture remain unchanged when a size of the 2D text frame is modified, wherein the 2D GUI texture is a two-dimensional object displayed within the 3D environment; and The 2D text frame including the 2D GUI texture is rendered in the 3D environment using the rendering engine.

Citation Information

Patent Citations

  • Apparatuses And Methods Of Interacting With 2D Design Documents And 3D Models And Generating Production Textures for Wrapping Artwork Around Portions of 3D Objects

    US20150351477A1