A lenticular display may include, but is not limited to, a display panel and a lenticular lens. The lenticular lens may be a sheet or array of magnifying lenses (also referred to as lenticules) configured so that, when the lenticular display is viewed from slightly different angles, different views of a lenticular image being displayed on the display panel are visible from different viewpoints or viewing angles in front of the display. The lenticular lens may be formed of an optical plastic or glass material. An example conventional application for lenticular lenses the lenses used in lenticular printing, where lenticular lenses are used to give an illusion of depth or to make images appear to change or move as the image is viewed from different angles.
Various embodiments of methods and apparatus for generating lenticular images to be displayed on lenticular displays are described. In these methods, instead of rendering images for multiple viewpoints, interleaving the rendered images, and displaying the interleaved images in real time as is done in conventional methods for generating lenticular images, a fixed 3D mesh is generated offline, and in real-time texture information is mapped to the fixed mesh. An offline method is described in which texture and 3D mesh information is captured for an object (e.g., a face). The captured texture and 3D mesh information is used to render UV map views for multiple viewpoints of the object. View maps (e.g., three view maps, with one view map for each subpixel) are generated from a ray tracing model and calibration data for the lenticular display. A pixel map, referred to as a lenticular to UV map, is then generated from the UV map views and the view maps and stored to memory. In real-time, texture information is captured, and a composite process is performed that generates a lenticular image for multiple viewpoints by sampling pixels from the texture based on the lenticular to UV map. The lenticular image is then displayed on the lenticular display.
In some embodiments, a system may be configured to detect position of one or more persons in the environment based on information captured by one or more sensors, and use that position information to limit the number of viewpoints that are generated during the real-time composite process.
An example application of the methods and apparatus for generating images to be displayed on lenticular displays is in head-mounted device (HMDs)) such as those used in computer-generated reality (CGR) systems. An HMD may include an opaque user-facing display on which CGR content is displayed for viewing by the user, as well as an external lenticular display for displaying a virtual view of the user's face that can be viewed from different viewpoints. The offline method described above may be used to generate lenticular to UV map(s) for the user's face, and the real-time method described above may then be used to generate lenticular images for the lenticular display based on dynamic texture information and the pre-generated lenticular to UV map(s).
This specification includes references to “one embodiment” or “an embodiment.” The appearances of the phrases “in one embodiment” or “in an embodiment” do not necessarily refer to the same embodiment. Particular features, structures, or characteristics may be combined in any suitable manner consistent with this disclosure.
“Comprising.” This term is open-ended. As used in the claims, this term does not foreclose additional structure or steps. Consider a claim that recites: “An apparatus comprising one or more processor units . . . ” Such a claim does not foreclose the apparatus from including additional components (e.g., a network interface unit, graphics circuitry, etc.).
“Configured To.” Various units, circuits, or other components may be described or claimed as “configured to” perform a task or tasks. In such contexts, “configured to” is used to connote structure by indicating that the units/circuits/components include structure (e.g., circuitry) that performs those task or tasks during operation. As such, the unit/circuit/component can be said to be configured to perform the task even when the specified unit/circuit/component is not currently operational (e.g., is not on). The units/circuits/components used with the “configured to” language include hardware—for example, circuits, memory storing program instructions executable to implement the operation, etc. Reciting that a unit/circuit/component is “configured to” perform one or more tasks is expressly intended not to invoke 35 U.S.C. § 112, paragraph (f), for that unit/circuit/component. Additionally, “configured to” can include generic structure (e.g., generic circuitry) that is manipulated by software or firmware (e.g., an FPGA or a general-purpose processor executing software) to operate in manner that is capable of performing the task(s) at issue. “Configure to” may also include adapting a manufacturing process (e.g., a semiconductor fabrication facility) to fabricate devices (e.g., integrated circuits) that are adapted to implement or perform one or more tasks.
“First,” “Second,” etc. As used herein, these terms are used as labels for nouns that they precede, and do not imply any type of ordering (e.g., spatial, temporal, logical, etc.). For example, a buffer circuit may be described herein as performing write operations for “first” and “second” values. The terms “first” and “second” do not necessarily imply that the first value must be written before the second value.
“Based On” or “Dependent On.” As used herein, these terms are used to describe one or more factors that affect a determination. These terms do not foreclose additional factors that may affect a determination. That is, a determination may be solely based on those factors or based, at least in part, on those factors. Consider the phrase “determine A based on B.” While in this case, B is a factor that affects the determination of A, such a phrase does not foreclose the determination of A from also being based on C. In other instances, A may be determined based solely on B.
“Or.” When used in the claims, the term “or” is used as an inclusive or and not as an exclusive or. For example, the phrase “at least one of x, y, or z” means any one of x, y, and z, as well as any combination thereof.
Various embodiments of methods and apparatus for generating images to be displayed on lenticular displays are described. In these methods, instead of rendering images for multiple viewpoints, interleaving the rendered images, and displaying the interleaved images in real time as is done in conventional methods for generating lenticular images, a fixed mesh is generated offline, and in real-time texture information is mapped to the fixed mesh. An offline method is described in which texture and 3D mesh information is obtained for an object (e.g., a user's face), for example via one or more sensors of a device such as a head-mounted display (HMD). The texture and mesh information is used to render UV map views for multiple viewpoints of the object. Broadly defined, a UV map is a flat representation of the surface of a 3D model. View maps (e.g., three view maps, with one view map for each subpixel) are generated from a ray tracing model and calibration data for the lenticular display. A pixel map, referred to as a lenticular to UV map, is then generated from the UV map views and the view maps and stored to memory. In real-time, texture information is captured, and a composite component performs a composite process that generates a lenticular image for multiple viewpoints by sampling pixels from the texture based on the lenticular to UV map. The lenticular image is then displayed on the lenticular display.
The device may also include one or more sensors that may be used to capture information, including but not limited to video and depth information, about the environment. In some embodiments, the device may be configured to detect position of one or more persons in the environment based on information captured by the sensors, and use that position information to limit the number of viewpoints that are composited during the real-time composite process.
An example application of the methods and apparatus for generating images to be displayed on lenticular displays described herein is in computer-generated reality (CGR) systems. A CGR system may include a wearable device such as a headset, helmet, goggles, or glasses (referred to herein as a head-mounted device (HMD)). An HMD may include an opaque user-facing display on which CGR content is displayed for viewing by the user. The HMD may also include an external lenticular display for displaying a virtual representation of the user's face that can be viewed from different viewpoints. The HMD may also include one or more user-facing sensors that may be used to obtain texture and 3D mesh information for the user's face and eyes. An offline method as described herein may be used to generate a lenticular to UV map for the user's face. A real-time method as described herein may then be used to generate lenticular images for the lenticular display based on dynamic texture information capture by the user-facing sensors and the pre-generated lenticular to UV map. The offline and real-time methods may be performed by a controller of the CGR system that includes one or more processors. The lenticular to UV map may be stored in memory of the CGR system for access by the controller when performing the composite. In some embodiments, the CGR system may be configured to detect position of one or more persons in the environment based on information captured by world-facing sensors of the HMD (also referred to as environment sensors), and use that position information to limit the number of viewpoints that are composited during the real-time composite process.
In practice, an HMD may shift or be moved during use when the real-time process is generating virtual views of the user's face. Since the lenticular to UV map generated in the offline process is fixed, this movement may result in misalignment of the virtual face displayed on the lenticular display and the user's real face. In some embodiments, to address this misalignment, a lenticular to UV map of the user's face may be generated during the offline process that is larger than a region or “window” of the face that is displayed on the lenticular display during the real-time process. If movement of the HMD is detected during the real-time process, the window may be moved within the lenticular to UV map based on the detected movement. In some embodiments, as an alternative, the offline process may be repeated upon detecting movement of the HMD on the user's head. In some embodiments, the offline process may be periodically performed during real-time use of the HMD, for example once every few minutes, to re-calibrate alignment of the virtual face displayed on the lenticular display and the user's real face.
While embodiments of the methods and apparatus for generating images to be displayed on lenticular displays are generally described with respect to front-facing lenticular displays for displaying virtual views of a user's face in devices such as HMDs, embodiments may also be applied to or adapted for use in other systems and devices that include lenticular displays.
A physical environment refers to a physical world that someone may interact with and/or sense without the use of electronic devices. The physical environment may include physical features such as a physical object or physical surface. For example, a physical environment may include a physical city that includes physical buildings, physical streets, physical trees, and physical people. People may directly interact with and/or sense the physical environment through, for example, touch, sight, taste, hearing, and smell. An extended reality (XR) environment, on the other hand, refers to a wholly or partially simulated environment that someone may interact with and/or sense using an electronic device. For example, an XR environment may include virtual reality (VR) content, augmented reality (AR) content, mixed reality (MR) content, or the like. Using an XR system, a portion of a person's physical motions, or representations thereof, may be tracked. In response, one or more characteristics of a virtual object simulated in the XR environment may be adjusted such that it adheres to one or more laws of physics. For example, the XR system may detect a user's movement and, in response, adjust graphical and auditory content presented to the user in a way similar to how views and sounds would change in a physical environment. In another example, the XR system may detect movement of an electronic device presenting an XR environment (e.g., a laptop, a mobile phone, a tablet, or the like) and, in response, adjust graphical and auditory content presented to the user in a way similar to how views and sounds would change in a physical environment. In some situations, the XR system may adjust one or more characteristics of graphical content in the XR environment responsive to a representation of a physical motion (e.g., a vocal command).
Various electronic systems enable one to interact with and/or sense XR environments. For example, projection-based systems, head-mountable systems, heads-up displays (HUDs), windows having integrated displays, vehicle windshields having integrated displays, displays designed to be placed on a user's eyes (e.g., similar to contact lenses), speaker arrays, headphones/earphones, input systems (e.g., wearable or handheld controllers with or without haptic feedback), tablets, smartphones, and desktop/laptop computers may be used. A head-mountable system may include an integrated opaque display and one or more speakers. In other examples, a head-mountable system may accept an external device having an opaque display (e.g., a smartphone). The head-mountable system may include one or more image sensors and/or one or more microphones to capture images or video and/or audio of the physical environment. In other examples, a head-mountable system may include a transparent or translucent display. A medium through which light representative of images is directed may be included within the transparent or translucent display. The display may utilize OLEDs, LEDs, uLEDs, digital light projection, laser scanning light source, liquid crystal on silicon, or any combination of these technologies. The medium may be a hologram medium, an optical combiner, an optical waveguide, an optical reflector, or a combination thereof. In some examples, the transparent or translucent display may be configured to selectively become opaque. Projection-based systems may use retinal projection technology to project graphical images onto a user's retina. Projection systems may also be configured to project virtual objects into the physical environment, for example, on a physical surface or as a hologram.
While
Systems with Front-Facing Lenticular Displays
Device 200 may include a user-facing display 210. User-facing display 210 may implement any of various types of display technologies. For example, device 200 may include a display system 210 that displays left and right images on screen(s) that are viewed by a subject, such a as DLP (digital light processing), LCD (liquid crystal display), OLED (organic light-emitting diode), or LCoS (liquid crystal on silicon) technology display system. As another example, display system 210 may be a direct retinal projector system that scans left and right images, pixel by pixel, to the subject's eyes. To scan the images, projectors generate beams that are directed to reflective components that redirect the beams to the user's eyes.
In some embodiments, device 200 may be worn on a user's head so that the display 210 is disposed in front of the user's eyes.
Device 200 may also include a world-facing display 220, mounted in front of the user-facing display 210. World-facing display 220 may be a lenticular display 220, for example as shown in
Device 200 may also include one or more world-facing sensors 250 that collect information about the environment (video, depth information, lighting information, etc.) and one or more user-facing sensors 240 that collect information about the user (e.g., eye or gaze tracking sensors, video of various portions of the user's face). The user-facing sensors 240 may include, but are not limited to one or more eye tracking cameras (e.g., infrared (IR) cameras) that capture views of the user's eyes, and one or more cameras (e.g., RGB video cameras) that capture views of various portions of the user's face. The user-facing sensors 240 may also include sensors that capture depth information for the user's face. The world-facing sensors 250 may include, but are not limited to, one or more cameras (e.g., RGB video cameras) that capture images of the real world environment in a field of view in front of the device 200, and one or more ambient light sensors that capture lighting information for the environment. In some embodiments, the world-facing sensors 250 may also include sensors that capture depth information for objects and surfaces in the environment.
A controller 260 may be implemented in the device 200, or alternatively may be implemented at least in part by an external device (e.g., a computing system or handheld device such as a smartphone, pad, or tablet) that is communicatively coupled to device 200 via a wired or wireless interface. Controller 260 may include one or more of various types of processors, image signal processors (ISPs), graphics processing units (GPUs), coder/decoders (codecs), system on a chip (SOC), CPUs, and/or other components for processing and rendering information captured by sensors 240 and 250, including but not limited to video, images, and depth information. Controller 260 may also render frames that include virtual content based at least in part on inputs obtained from the sensors, and may provide the rendered frames to display 210.
Memory 270 may be implemented in the device 200, or alternatively may be implemented at least in part by an external device (e.g., a computing system) that is communicatively coupled to device 200 via a wired or wireless interface. Memory 270 may, for example, be used to record video or images captured by the sensors 240 and/or 250, to store program instructions that are executable by the controller 260, and to store data that are used by the controller including but not limited to pre-generated lenticular to UV maps as described herein. Memory 270 may include any type of memory, such as dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate (DDR, DDR2, DDR3, etc.) SDRAM (including mobile versions of the SDRAMs such as mDDR3, etc., or low power versions of the SDRAMs such as LPDDR2, etc.), RAMBUS DRAM (RDRAM), static RAM (SRAM), etc. In some embodiments, one or more memory devices may be coupled onto a circuit board to form memory modules such as single inline memory modules (SIMMs), dual inline memory modules (DIMMs), etc. Alternatively, the devices may be mounted with an integrated circuit implementing system in a chip-on-chip configuration, a package-on-package configuration, or a multi-chip module configuration.
Embodiments of a device 200 as illustrated in
As another example, embodiments of a device 200 as illustrated in
Device 200 may, for example, be a head-mounted device (HMD)) such as an HMD used in computer-generated reality (CGR) systems. An HMD may include an opaque user-facing display 210 on which CGR content is displayed for viewing by the user, as well as an external lenticular display 220 for displaying lenticular images that provide a virtual view of the user's face that can be viewed from different viewpoints. When a lenticular image is displayed by lenticular display 220, the lenticular display 220 provides N different viewing angles of a 3D virtual representation of at least a portion of the user's face. For example, a first person can view the user's face from viewing angle V1, a second person can view the user's face from viewing angle V2, and a third person can view the user's face from viewing angle V3. The offline methods described herein may be used to generate a lenticular to UV map for the user's face, and the real-time methods described above may then be used to generate lenticular images for the lenticular display 220 based on dynamic texture information captured by sensors 240 and the pre-generated lenticular to UV map.
In some embodiments, rendering 310 may implement a UV mapping or “texturing” method to map the 2D texture 302 to a 3D model of the object. UV mapping is a 3D modelling process that projects 2D texture information to a 3D model's surface. “UV” refer to the axes of the 2D texture; X, Y, and Z denote the axes of the 3D object in model space. A UV mapping method may generate and use a 2D UV texture map (also referred to as a UV map) that maps 2D (U, V) coordinates of the texture 302 to 3D (X, Y, Z) coordinates of the 3D model to project the 2D texture 304 information on to the 3D model.
A problem with the conventional method of
In some embodiments, rendering 410 may implement a UV mapping method similar to that described for
An issue with the conventional method for rendering an interleaved image for a lenticular display as described in reference to
Embodiments of fixed mesh, dynamic texture lenticular image generation methods are described that are faster and more efficient than the conventional method for generating lenticular images as described in reference to
In these methods, instead of rendering images for multiple viewpoints from dynamic texture and mesh information, interleaving the rendered images, and displaying the interleaved images in real time as is done in conventional methods for generating lenticular images, a fixed mesh is generated offline, and in real-time dynamic texture information is mapped to the fixed mesh. An offline method is described in reference to
A view map generation 514 process generates view maps 516, for example three view maps, with one view map for each R, G, and B subpixel, from a ray tracing model 506 and calibration data 508 for the lenticular display. The view maps describe which of the N views should be used for each subpixel of the lenticular display.
A pixel map generation 520 process then generates a pixel map, referred to as a lenticular to UV map 560, from the UV map views 512 and the view maps 516, and stores the lenticular to UV map 560 to memory. The lenticular to UV map 560 contains a single [x,y] coordinate in the input image (texture 502) for every subpixel of the lenticular display. As long as texture 502 used in the offline process and the images of the object captured in real-time are from the same perspective, the lenticular to UV map 560 can be used to generate respective lenticular images with the same N viewpoints generated in the offline process from the images of the object captured in real-time.
The offline method of
In the off-line method, one or more sensors may dynamically capture data about an object (e.g., a user's face). The data may, for example, include 2D color image(s) captured by camera(s) and depth data captured by depth sensing technology or derived from the captured image(s). The data captured by the sensors may be processed to generate information including 2D texture 502 information (e.g., coloring and shading of the object) and 3D mesh 504 information (e.g., a 3D representation or model of the object, for example a polygon mesh). A rendering 510 method may then generate N UV map views 512 of the object for N viewpoints or viewing angles from the texture 502 and mesh 504 information, where N is the number of viewing angles provided by the lenticular display. Note that the UV map views 512 may be rendered at a reduced resolution when compared to the 3D renderings 312 described in reference to
Thus, the real-time method of
In the real-time method of
Thus, the real-time method of
Referring to
As indicated at 910, UV map views for multiple viewpoints or viewing angles may be rendered from the image and depth data. In some embodiments, a rendering method may generate N UV map views of the object for N viewpoints or viewing angles from the texture and mesh information. Each pixel in a UV map view contains the [x,y] coordinates in the input image that would be needed to get the RGB value from the input image to render an image for the respective viewing angle
As indicated at 920, view maps, for example three view maps, with one view map for each R, G, and B subpixel, are generated from a ray tracing model and calibration data for the lenticular display. The view maps describe which of the N views should be used for each subpixel of the lenticular display.
As indicated at 930, a pixel map, referred to as a lenticular to UV map, is then generated from the UV map views and the view maps. As indicated at 940, the lenticular to UV map is stored to memory. The lenticular to UV map contains a single [x,y] coordinate in the in the input image for every subpixel of the lenticular display.
As indicated at 1000, texture information for a user's face may be obtained, for example from image data captured by one or more user-facing sensors of a device as illustrated in
The offline method of
In some embodiments, to further reduce computation and power consumption during real-time processing, instead of compositing a lenticular image for N viewpoints from dynamic texture information, a lenticular image may be composited using a selected subset of the N viewpoints (e.g. three viewpoints including a left, center, and right viewpoint), and an interpolation method may be used to generate pixels for the viewpoints in between the selected subset of viewpoints.
The methods described herein may be implemented in software, hardware, or a combination thereof, in different embodiments. In addition, the order of the blocks of the methods may be changed, and various elements may be added, reordered, combined, omitted, modified, etc. Various modifications and changes may be made as would be obvious to a person skilled in the art having the benefit of this disclosure. The various embodiments described herein are meant to be illustrative and not limiting. Many variations, modifications, additions, and improvements are possible. Accordingly, plural instances may be provided for components described herein as a single instance. Boundaries between various components, operations and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of claims that follow. Finally, structures and functionality presented as discrete components in the example configurations may be implemented as a combined structure or component. These and other variations, modifications, additions, and improvements may fall within the scope of embodiments as defined in the claims that follow.
This application is a continuation of U.S. patent Ser. No. 18/001,450, filed Dec. 9, 2022, which is a 371 of PCT Application No. PCT/US2021/036472, filed Jun. 8, 2021, which claims benefit of priority to U.S. Provisional Patent Application No. 63/036,945, filed Jun. 9, 2020. The above applications are incorporated herein by reference. To the extent that any material in the incorporated application conflicts with material expressly set forth herein, the material expressly set forth herein controls.
Number | Date | Country | |
---|---|---|---|
63036945 | Jun 2020 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 18001450 | Jan 0001 | US |
Child | 18067604 | US |