Expand this Topic clickable element to expand a topic
Skip to content
Optica Publishing Group

Real-time realistic computer-generated hologram with accurate depth precision and a large depth range

Open Access Open Access

Abstract

Holographic display is an ideal technology for near-eye display to realize virtual and augmented reality applications, because it can provide all depth perception cues. However, depth performance is sacrificed by exiting computer-generated hologram (CGH) methods for real-time calculation. In this paper, volume representation and improved ray tracing algorithm are proposed for real-time CGH generation with enhanced depth performance. Using the single fast Fourier transform (S-FFT) method, the volume representation enables a low calculation burden and is efficient for Graphics Processing Unit (GPU) to implement diffraction calculation. The improved ray tracing algorithm accounts for accurate depth cues in complex 3D scenes with reflection and refraction, which is represented by adding extra shapes in the volume. Numerical evaluation is used to verify the depth precision. And experiments show that the proposed method can provide a real-time interactive holographic display with accurate depth precision and a large depth range. CGH of a 3D scene with 256 depth values is calculated at 30fps, and the depth range can be hundreds of millimeters. Depth cues of reflection and refraction images can also be reconstructed correctly. The proposed method significantly outperforms existing fast methods by achieving a more realistic 3D holographic display with ideal depth performance and real-time calculation at the same time.

© 2022 Optica Publishing Group under the terms of the Optica Open Access Publishing Agreement

1. Introduction

As the display technology aims to reconstruct the real-world scene, holographic display has irreplaceable advantages in providing all depth information [1,2]. And it has been actively researched for near-eye displays to realize virtual and augmented reality applications [35]. Computer-generated hologram (CGH) can reconstruct virtual 3D scenes using the spatial light modulator (SLM) [6], and real-time CGH methods are crucial for dynamic near-eye display applications. However, in the current research status, real-time CGH is achieved by sacrificing depth accuracy or limiting the depth range of reconstruction, which is unable to provide realistic 3D holographic display with ideal depth performance.

The calculation burden of CGH mainly comes from the diffraction calculation. The point source method treats the 3D scene as a collection of point light sources and provides accurate per-pixel focus cues. The diffraction calculation simulates the spherical wave propagation from each point to the hologram plane with a large depth range of reconstruction, which is highly time-consuming. To speed up the computation, a series of look-up-table (LUT) methods pre-calculate the Fresnel zone plate (FZP) of points from different depths [7]. And the complex amplitude of the hologram plane can be synthesized by superposing the tables. It has been improved to reduce the table’s storage [810], but real-time calculation is still not implemented with high-resolution 3D scenes because the traversal doesn’t decrease. Wavefront recording plane (WRP) is another fast calculation method by setting a WRP near the 3D scene [11,12]. Thus, only part of WRP is involved in recording an object point. It can be combined with LUT to further accelerate the speed [13,14]. But this method is only effective for the 3D scene with a small depth range, and the depth range of reconstruction is severely limited.

Layer-based method can calculate CGH of 3D scenes with a large depth range in real-time. The 3D scene is sliced into layers according to different depth ranges, and the complex wavefield of the hologram plane is synthesized by adding the complex wavefield from each layer [1517]. The diffraction calculation mainly uses the fast Fourier transform method or angular spectrum method, and the depth range does not affect calculation speed. Although a large depth range is achieved by those methods, there are limited layers for real-time generation, and the depth information is inaccurate. Polygon-based and line-based methods can also achieve real-time, but occlusion culling cannot be implemented at the same time [18,19].

Deep learning methods are also proposed to accelerate the generation of CGH through various neural networks [20]. In the tensor holography network [21], real-time 3D CGH can be generated using an input 2D image and depth map. But the depth range of reconstruction is limited because a larger receptive field is required to learn a longer diffraction distance, which is similar to WRP. Other deep learning methods focus on speeding up CGH generation for high-quality 2D holographic display [2224] or multi-layers similar to layer-based method [25,26]. No existing deep learning method can generate CGH with both accurate depth precision and a large depth range in real-time.

In the existing CGH methods introduced above, the accuracy of the depth cue is determined by the representation of the 3D scene, and the depth range of reconstruction is influenced by the diffraction calculation method. Current real-time CGH methods fail to provide ideal depth performance at the same time. Furthermore, rendering technology should be introduced to implement interactive display and occlusion culling [15]. Ray tracing and other algorithms can be used for occlusion culling in layer-based and point-based methods [27,28]. Rendering 2D images with accurate occlusion effect is also feasible for deep learning method.

Moreover, ray tracing enables realistic reconstruction with shadows, highlights, and global illumination [27]. The view-dependent effect can also be provided through multi-viewpoint rendering. However, previous methods are based on traditional ray tracing rendering, and the rendered information can be represented by a 2D image and a depth map. For realistic reconstruction, depth information is not completely obtained in traditional 2D rendering of complex 3D scenes such as reflection and refraction. Because multiple depth cues exist in one pixel regarding reflection and refraction. Although traditional ray tracing algorithm uses secondary rays to simulate reflection and refraction phenomena, only amplitude is considered. The amplitude of hit points is added, and the depth information of reflection and refraction is lost. Modification should be made in rendering to fulfill the advantages of 3D holographic display in depth performance, and the representation of 3D scene should support multiple depth cues. For example, multiple focus cues in reflection rendering are obtained in Tsubasa Ichikawa’s method [29]. Still, the depth cues in refraction rendering are inaccurate, and the calculation is time-consuming. Ray tracing is used to provide rendered information, and the calculation burden is still subject to diffraction calculation.

In this paper, a novel real-time CGH method is proposed to realize ideal depth performance. We introduce volume (3D grid) to represent the 3D scene, which can be regarded as dense layers. It supports multiple depth cues and is efficient for S-FFT diffraction calculation in GPU. The ray tracing algorithm is also improved to calculate accurate depth cues and generate additional shapes in the volume to represent reflection and refraction. Firstly, the 3D scene is rendered by ray tracing. Hit points of rays are stored in the 3D volume buffer, and only the rendered points are processed. Meanwhile, the improved ray tracing algorithm obtains accurate depth cues for complex 3D scenes with reflection and refraction. Secondly, S-FFT is used to calculate the complex wavefield propagation. And the volume representation is efficient for GPU to implement S-FFT in real-time. At last, the complex amplitude on the hologram plane is synthesized and encoded into phase-only CGH. Compared with previous CGH methods using 2D image with depth map for 3D scene representation, our method provides more accurate depth cues for realistic reconstruction. Experiments show that the generation speed of CGH is 30fps when the resolution of the 3D volume buffer is 1024 × 1024 and the depth value is 256. The depth range does not affect calculation speed due to the S-FFT diffraction calculation and it is set to 100 mm in our holographic display prototype. The depth precision is also verified by numerical evaluation. As far as we know, the proposed method firstly generates real-time CGH for 1024 × 1024 resolution 3D scenes with accurate depth information and a large depth range. Real-time realistic holographic display is enabled by our method for virtual and augmented reality applications.

2. Principle and methods

2.1 CGH generation using volume representation

The calculation burden in generating CGH mainly comes from the diffraction simulation. In a virtual 3D scene, the hologram plane is placed at $z = 0$, and the object is composed of pixel points. The complex wave field on the hologram plane $H(\xi ,\eta )$ is determined by adding the FZP of each object point using the following equation [7]:

$$H(\xi ,\eta ) = \sum\limits_{s = 1}^S {{A_s}\exp (ik\sqrt {{{(\xi - {x_s})}^2} + {{(\eta - {y_s})}^2} + z_s^2} )} ,$$
where S is the total pixel point number of the object, ${A_s}$ and $({x_s},{y_s},{z_s})$ refer to the amplitude and the coordinate of each object point.

In the paraxial condition, by introducing the 2D Fourier transform, the Fresnel diffraction propagation from the object plane to the hologram plane can be calculated by [16]:

$$H(\xi ,\eta ) = \frac{{\exp (ikf)}}{{i\lambda f}}\exp [\frac{{ik}}{{2f}}({(\xi p)^2} + {(\eta p)^2})] \cdot FFT\{ U(x,y)\exp [\frac{{ik}}{{2f}}({(x \cdot \Delta x)^2} + {(y \cdot \Delta y)^2})]\} ,$$
$$\Delta x = \frac{{\lambda f}}{{Mp}},{\kern 1cm} \Delta y = \frac{{\lambda f}}{{Np}},$$
where $U(x,y)$ is the complex wavefield of object plane, $H(\xi ,\eta )$ is the complex wavefield of hologram plane, k is the wave number, p refers to the pixel pitch of hologram plane, f is the distance of propagation. $\Delta x$ and $\Delta y$ refer to the sample interval of the object plane, which satisfy the relationship in Eq. (3). $M \times N$ represents the number of sampling points of the object plane.

The 3D scene can be sliced into multiple layers according to different depth ranges, and the final complex wave field ${H_{total}}$ on the hologram plane is synthesized by adding the complex wavefield ${H_t}$ propagated from each layer:

$${H_{total}} = \sum\limits_{t = 1}^T {{H_t}},$$
where T is the total layer number. Although $\Delta x$ and $\Delta y$ have different values in each layer, they keep the same ratio:
$$\frac{{\Delta x}}{{\Delta y}} = \frac{N}{M}.$$

In Fig. 1, the whole CGH generation pipeline is illustrated. Our method calculates the diffraction of the 3D scene represented by a 3D volume buffer. Ray tracing is firstly launched to gain the object point distribution, and the rendered points are pre-processed by adding initial phase and multiplied by the quadratic phase factor of the Fresnel diffraction formula before they are stored into the corresponding position in the volume. Then, a batch of 2D FFT is performed. The complex wave field is synthesized by S-FFT method. After the encoding of phase-only hologram, optical reconstruction can be realized using SLM.

 figure: Fig. 1.

Fig. 1. Schematic diagram of the CGH generation pipeline.

Download Full Size | PDF

Ray tracing is launched to render the 3D scene, which is introduced in section 2.2. Before being stored in the 3D volume buffer, the rendered object points $U(x,y,z)$ are pre-processed using the following equations:

$$U(x,y,z) = A(x,y,z)\exp \{ ik[\varphi + \frac{1}{{2{f_z}}}({(\frac{{x\lambda }}{{Mp}})^2} + {(\frac{{y\lambda }}{{Np}})^2})]\} ,$$
$${f_z} = {f_0} + z \cdot \Delta f,$$
where A is the amplitude of the object point, $\varphi$ represents the initial phase. ${f_0}$ is the distance between the hologram plane and the nearest plane of the 3D volume buffer, $\Delta f$ is the distance between two layers of the volume buffer. Using per-pixel ray tracing rendering, only the rendered points are pre-processed, and the total calculation burden of Eq. (6) is the same as pre-processing a single layer. Then the CUDA FFT library is used to calculate the fast 2D Fourier transformation F(u,v,d) of each depth layer d in the volume buffer.

The complex wavefield on the hologram plane is synthesized by the following equation:

$$H{(\xi ,\eta )_{total}} = \sum\limits_{d = 1}^D {H{{(\xi ,\eta )}_d}} = \sum\limits_{d = 1}^D {\frac{{\exp (ik{f_d})}}{{i\lambda {f_d}}}} \exp \{ \frac{{ik}}{{2{f_d}}}[{(\xi p)^2} + {(\eta p)^2}]\} F(u,v,d),$$
$${f_d} = {f_0} + d \cdot \Delta f,$$
where d is the index of the depth layer, and D is the total layer number of the 3D volume buffer. At last, the phase-only CGH is encoded by:
$$h(\xi ,\eta ) = \arg [H{(\xi ,\eta )_{total}}].$$

Equations (8) and (10) are performed in the same thread in GPU, and each thread calculates a pixel of the hologram plane. All hologram pixels are synthesized in parallel and all calculations and data are processed in GPU. The volume representation enables low cost in pre-processing and supports accurate depth cues. The later computation costs are the same as the conventional layer-based method.

2.2 Generation of volume date using ray tracing

To represent the 3D scene by volume buffer, the amplitude and depth of rendered points are required. The amplitude values are the non-zero values in the initial volume buffer, and the depth values of rendered points determine their coordinates in volume buffer.

Different ray tracing procedures are illustrated in Fig. 2. In traditional ray tracing, rays are launched from the camera to the 3D scene to calculate each pixel of the virtual plane [30]. 2D image is obtained in the virtual plane, and multiple ray tracing procedures are performed to render each layer in Fig. 2(a). 2D image and its depth map can also be generated in Fig. 2(b). However, the proposed method only restricts the interval of rays using the virtual plane to match the sampling interval ratio in Eq. (5). After a ray hits the object, the color data of the hit point is saved into the 3D volume buffer to represent the distribution of object points.

 figure: Fig. 2.

Fig. 2. (a) Traditional ray tracing procedure for generating sliced layers. (b) Traditional ray tracing procedure for generating a 2D image and its depth map. (c) The proposed ray tracing procedure for generating the 3D volume buffer.

Download Full Size | PDF

As is shown in Fig. 3, Open3D [31] is used to visualize the 3D data rendered by the above ray tracing procedures with different depth values or layer numbers. In previous layer-based method, real-time calculation is only achieved with limited layers. For example, 50 depth values are provided, and adjacent points are divided into the same layer due to limited layer division. The inaccurate depth precision is visualized as the empty space in Fig. 3(a), especially the tail part of the dragon. Using volume representation or 2D image with its depth map, 256 depth values are provided, and little visible empty space exits in Fig. 3(b). Although a 2D image with its depth map also provides per-pixel depth cues, complete depth information cannot be represented because multiple depth cues exist in one pixel of the depth map in reflection and refraction.

 figure: Fig. 3.

Fig. 3. (a) 3D reconstruction for layer data composed of 50 depth values. (b) 3D reconstruction of 3D volume buffer or 2D image with its depth map.

Download Full Size | PDF

While rendering the 3D scene, the color data of each point can be obtained using illumination models such as Lambert diffuse model:

$$A = {I_{adiff}} + {I_{ldiff}} = {k_d}{I_a} + {k_d}{I_l}\cos \theta ,$$
where A is the amplitude of the rendered object point, it’s composed of ambient and diffuse lighting ${I_{ldiff}}$. ${k_d}$ is the reflection coefficient of the object, ${I_a}$ is the ambient light, ${I_l}$ is the light source, $\theta$ refers to the angle between the vector from light source to object point and the normal vector of the object surface.

The length of the ray path is used to calculate the depth of the hit point for primary rays:

$$depth = \overrightarrow r \cdot l \cdot \overrightarrow z ,$$
where $\overrightarrow r$ is the normalized vector of ray, l is the length of the ray path, $\overrightarrow z$ is the unit vector representing the depth direction on the z-axis. “${\cdot}$” is the dot product.

Compared with other methods providing 256 depth values using an 8-bit grayscale depth map, our approach can generate an arbitrary range of depth values based on the GPU ability. And complete depth information can be obtained, including refraction and reflection.

Besides the depth of the primary hit points, reflection and refraction are considered for complete depth information calculation, which is calculated by secondary rays. Although traditional ray tracing algorithm also uses secondary rays to simulate reflection and refraction phenomena, only amplitude is considered. The amplitude of hit points is added, and the depth information of reflection and refraction is lost. In Fig. 4, we improve the ray tracing algorithm to keep the amplitude and depth of hit points for accurate depth cues.

 figure: Fig. 4.

Fig. 4. (a) Reflection calculation. (b) Refraction calculation. (c) Ray recursion of transparent object.

Download Full Size | PDF

The first 3D scene is composed of a dragon and a mirror, as shown in Fig. 4(a). In reflection calculation, ${d_1}$ is the length of the primary ray from the camera O to the mirror hit point ${P_1}$, ${d_2}$ is the length of the reflection ray from ${P_1}$ to object hit point ${P_2}$, $d_2^{\prime}$ is the distance from ${P_1}$ to reflection image $P_2^{\prime}$. The depth of $P_2^{\prime}$ is calculated by the following equations:

$$depth = \overrightarrow r \cdot ({d_1} + d_2^{\prime})\overrightarrow { \cdot z} ,$$
$$d_2^{\prime} = {d_2}.$$

The second 3D scene is composed of a dragon and a transparent cylinder. In refraction calculation, the length $d_3^{\prime}$ from point ${P_2}$ to point $P_3^{\prime}$ is firstly calculated in the following equation [32,33]:

$$d_3^{\prime} = \frac{{{d_3}\mathrm{\ \cdot }\cos {i_1}\mathrm{\ \cdot }\frac{{{n_2}}}{{{n_1}}}\mathrm{\ \cdot }{{\left[ {1 - (\frac{{n_2^2}}{{n_1^2}} - 1)\mathrm{\ \cdot }{{\tan }^2}{i_1}} \right]}^{\frac{3}{2}}}}}{{\cos {i_2}}},$$
where ${d_3}$ is the length of the ray path from ${P_2}$ to object hit point ${P_3}$. ${i_1}$ is the angle between the refraction ray and the normal of the transparent cylinder surface, and ${i_2}$ is the angle between the incidence ray and the normal of the transparent cylinder surface. ${n_1}$ is the refractive index of air, and ${n_2}$ is the refractive index of the transparent cylinder.

Then the length from ${P_1}$ to $P_3^{\prime}$ is calculated by:

$$d_2^{\prime} + d_3^{^{\prime\prime}} = \frac{{({d_2} + d_3^{\prime}\mathrm{)\ \cdot }\cos {i_3}\mathrm{\ \cdot }\frac{{{n_1}}}{{{n_2}}}\mathrm{\ \cdot }{{\left[ {1 - (\frac{{n_1^2}}{{n_2^2}} - 1)\mathrm{\ \cdot }{{(\tan {i_3})}^2}} \right]}^{\frac{3}{2}}}}}{{\cos {i_4}}},$$
where $d_2^{\prime}$ is the length from ${P_1}$ to $P_2^{\prime}$, and $d_3^{{\prime\prime}}$ is the length from $P_2^{\prime}$ to $P_3^{{\prime\prime}}$. ${i_3}$ is the angle between the refraction ray and the normal of the transparent cylinder surface, and ${i_4}$ is the angle between the incidence ray and the normal of the transparent cylinder surface. And the final depth of $P_3^{{\prime\prime}}$ is:
$$depth = \overrightarrow r \cdot ({d_1} + d_2^{\prime} + d_3^{{\prime\prime}}) \cdot \overrightarrow z .$$

The whole ray path in the second 3D scene is illustrated in Fig. 4(c). In multiple reflection and refraction calculations of a transparent object, the length of the whole ray path is calculated recursively, and the maximum recursion depth is set to be three for fast calculation. The red ray path refers to the primary ray and secondary rays for refraction calculation. The green ray path refers to secondary rays for reflection calculation. The solid line returns the color and ray path length data, while the dotted line returns nothing because the ray doesn’t hit any object before reaching the maximum recursion depth.

3. Experiment and analysis

3.1 Experiment implementation

Optical experiments and numerical analysis are performed to verify the feasibility of the proposed method. The algorithm runs on a computer with Intel i7-11700K, 16GB of RAM, NVIDIA RTX 3080 with 10GB GDDR6X GPU memory and 912GB/s bandwidth. The ray tracing engine is OptiX 6.5, and the fast Fourier transform is processed using CUDA 11.4. The Integrated Development Environment (IDE) is Microsoft Visual Studio 2017, and the operating system is Windows 10. The dragon model from the Stanford 3D scanning repository is used, and the mirror and transparent cylinder models are customized using Blender and OptiX. The resolution of the hologram and 3D scene is 1024 × 1024.

The optical setup is shown in Fig. 5. The wavelength of the laser used in the experiment is 639 nm. It is attenuated and expanded before passing through the polarizer. Then a beam splitter is used to adjust the optical path. A phase-only SLM (HOLOEYE PLUTO) is used to upload the CGH with the pixel size of 8um. A camera (Canon EOS 60D) is used to capture the optical reconstruction of the 3D scene by its complementary metal-oxide-semiconductor (CMOS) detector.

 figure: Fig. 5.

Fig. 5. The optical setup.

Download Full Size | PDF

3.2 Optical experiments

The real-time interactive display of the dragon is shown in Visualization 1, and complex 3D scenes illustrated in Fig. 6 are shown in Visualization 2 and Visualization 3. As shown in Fig. 6(a), three focus cues exist in the natural word reflection phenomenon, and they are the original object ${P_1}$ at the near point, the mirror ${P_2}$ at the middle point, reflection image ${P_3}$ at the far point. In CGH generation, ${P_1}$, ${P_2}$ and ${P_3}$ are placed at 300 mm, 340 mm, and 370 mm from the hologram plane, respectively. In Fig. 7(a),(b),(g), and (h), the original dragon is focused, and others are defocused when focused on the near point. However, when focusing on the middle point in Fig. 7(c) and (d), both mirror and reflection images are focused on in the traditional method because the depth information of the reflection image is lost in 2D image rendering, and the reflection image becomes the texture of the mirror surface. Only the mirror is clear in the proposed method, and the reflection image is defocused in Fig. 7(i) and (j). In Fig. 7(k) and (l), the reflection image is correctly focused in the proposed method at the far point, and nothing is focused on in traditional method in Fig. 7 (e) and (f). Experiment shows that proposed method reconstructs realistic 3D scenes with complete depth cues.

 figure: Fig. 6.

Fig. 6. (a) 3D scene of experiment 1. (b) 3D scene of experiment 2.

Download Full Size | PDF

 figure: Fig. 7.

Fig. 7. 3D reconstruction of experiment 1. (a)-(f) Traditional method with incomplete depth information. (g)-(l) Proposed method with complete depth information.

Download Full Size | PDF

Figure 8 shows the numerical reconstruction and the optical experiment of the 3D scene illustrated in Fig. 6(b). Two focus cues exist in the real-world refraction phenomenon, and they are transparent cylinder ${P_1}$ at the near point, both the original dragon model and the refraction image ${P_2}$ are at the far point. The refraction index of the thin transparent cylinder is 1.4. The dragon model and the refraction image can be focused at the same time. ${P_1}$ is placed at 340 mm from the hologram plane, ${P_2}$ is placed at 370 mm. In Fig. 8(a) and (b), both ${P_1}$ and ${P_2}$ are focused in traditional method due to the lack of refraction image depth cue. It shows that the refraction image becomes the texture of the cylinder surface. However, only ${P_1}$ is focused in proposed method in Fig. 8(e) and (f). In Fig. 8(b) and (d), ${P_2}$ can be correctly focused in proposed method. Experiment shows that proposed method provides correct depth cues of reflection.

 figure: Fig. 8.

Fig. 8. 3D reconstruction of experiment 2. (a)-(d) Traditional method with incomplete depth information. (e)-(h) Proposed method with complete depth information

Download Full Size | PDF

Optically recorded holograms support view-dependent effects, such as specular highlights and occlusions. However, our method only renders the scene and provides accurate occlusion from a single viewpoint. Thus, it doesn’t support view-dependent effects in one CGH. Although these effects can be achieved through multi-viewpoint rendering for stereogram CGH, the amount of calculation will increase. In near-eye display, view-dependent effects can be achieved by pupil tracking because real-time CGH generation is achieved.

3.3 Generation speed and depth precision

In Fig. 9(a) the calculation time of different methods is compared. Our method can be regarded as a particular case of layer-based method by processing dense layers at a time. Firstly, the dense-layer (DL) implementation and single-layer (SL) implementation of layer-based method are compared. Detailed comparison is listed in Table 1. The SL layer-based method is implemented by synthesizing the sub-holograms of each layer in succession. It calculates a single layer at a time and is memory-saving. However, the SL implementation is not efficient for GPU because it has to wait until the current sub-hologram is calculated before calculating the next one. And a GPU thread only calculates one pixel in each layer. But in DL implementation, a thread calculates all pixels in the corresponding x and y position of each layer and saves the cost of creating new threads. The total thread number of SL implementation is the CGH resolution multiplied by the layer number, while that of DL implementation is the CGH resolution. Thus, in synthetization, encoding, and FFT procedures, SL implementation is much slower under the same computation burden. On the other hand, DL implementation reduces the calculation burden in pre-processing, because only the rendered points are processed and saved into the volume. But the SL implementation needs to slice the 3D scene when calculating each layer. In that procedure, every point in each layer should be multiplied by the quadratic phase factor of the Fresnel diffraction formula or avoid this calculation by adding extra judgment. We implement the SL method using the latter one to avoid unwanted multiplication calculation in comparison, but every point still requires a thread to process. The DL implementation only processes the object points without adding any extra judgment, thread synchronization, or creating new threads. Thus, the DL implementation is much faster in pre-processing. Although more GPU memory is occupied, The DL implementation is 15 times faster than SL implementation in total generation time.

 figure: Fig. 9.

Fig. 9. (a) Calculation time of different methods. (b) Calculation time of proposed method in different procedures.

Download Full Size | PDF

Tables Icon

Table 1. Speed comparison between SL and DL implementation using 500 layers

Secondly, WRP combined with the LUT method with different sizes of tables is also evaluated. An 8-bit grayscale image is used to represent 256 depth values (similar to dividing the 3D scene into 256 layers), and a larger table size enables a larger depth range of reconstruction. The proposed method is still faster, even with more depth values. In Fig. 9(b), the calculation time of different procedures using proposed method is shown. It takes 35.5 ms to generate a hologram with 256 depth values. The optical reconstruction can interact in real-time by changing the camera position using an input device.

However, the GPU memory needed by our method is more than using single layers to generate CGH in succession. We have to store the volume data to generate CGH, but the latter only needs to use one layer in each sub-hologram generation. Our method also enables using sub-hologram, which calculates the corresponding sub-volume. The 3D scene can be divided into sub-volumes to save GPU memory for larger CGH resolution.

Mean Absolute Error (MAE) is used to evaluate the depth precision of different methods by:

$$MAE = \frac{1}{N}\sum\limits_{n = 1}^N {|{{d_n} - {{\hat{d}}_n}} |} ,$$
where N is the total point number. ${d_n}$ is the actual depth of rendered pixel points calculated by Eq. (12) or reflection and refraction depth calculated by Eq. (13) and Eq. (17). And it is normalized to 0∼1 from the near plane to the far plane. ${\hat{d}_n}$ is the discretized depth value, representing the actual numerical value in CGH calculation. For example, in layer-based method, ${\hat{d}_n}$ is the depth of the layer where the hit point is divided. In the 2D image and its depth map, ${\hat{d}_n}$ is 256 depth values of the depth map. In proposed method, it’s the depth of the corresponding point of the volume buffer.

Figures 10 and  11 demonstrate the depth precision of traditional and proposed methods in different depth values. The traditional method represents the 3D scene using a 2D image with its depth map generated by traditional 2D rendering. The proposed method represents the 3D scene using volume generated by the proposed ray tracing rendering. The MAE decreases with more depth values in both methods because the error of discretion decreases. But the error in refraction and reflection calculation always exists in traditional method. In proposed method, complete depth information is taken into calculation, thus, the MAE is only affected by discretion. As the depth value increases, more accurate depth precision can be provided in proposed method.

 figure: Fig. 10.

Fig. 10. MAE and error maps of traditional method and proposed method in experiment 1.

Download Full Size | PDF

 figure: Fig. 11.

Fig. 11. MAE and error maps of traditional method and proposed method in experiment 2.

Download Full Size | PDF

The improvement of depth precision is achieved by adding extra object points in the volume. Thus, the calculation speed may be influenced because more points are pre-processed. We compare the generation time of the above two experiments using 256 depth layers both under DL implementation. In experiment 1, the generation time using traditional and proposed methods is 36.81 ms and 37.24 ms, respectively. In experiment 2, it’s 38.14 ms and 38.78 ms, respectively. The generation time is slightly longer, and it doesn’t influence the real-time generation while providing a more accurate reconstruction.

A comprehensive comparison of different fast CGH generation methods is illustrated in Table 2. The resolution of CGH and the 3D scene is 1024 × 1024, and all methods are calculated fully in GPU. The 3D scene is placed at 300 mm from the hologram plane, and the depth range is set to a maximum of 100 mm. Using the single-layer (SL) implementation, the layer-based method can only achieve real-time with limited layers, and the depth precision is inaccurate. WRP combined with the LUT method can only achieve real-time with a narrow depth range. Using volume representation as a dense-layer (DL) implementation with per-pixel ray tracing algorithm, it can achieve real-time holographic display with accurate depth precision cues and a large depth range at the same time. The DL implementation also supports the improved ray tracing algorithm for accurate depth cues of reflection and refraction.

Tables Icon

Table 2. Comprehensive comparison of different fast CGH generation methods

Moreover, those methods rely on fast diffraction calculation from 3D scenes or WRP to hologram plane. The depth range of construction subjects to the accuracy of diffraction calculation, which may influence the quality at different distances. Our method is also paraxial because the S-FFT method of Fresnel diffraction is used. Additional improvement in diffraction calculation can be used to further broaden the distance for virtual and augmented reality [34].

4. Conclusion

In summary, a new CGH method is presented to achieve real-time interactive holographic display with accurate depth precision and a large depth range. 3D scenes are rendered and represented by ray tracing and volume buffer. Thus, accurate depth perception cues such as reflection and refraction can be represented. The volume representation is also efficient for GPU to implement S-FFT in real-time. Numerical evaluation is used to verify the depth precision, providing a quantitative evaluation. Experiments show that our method truthfully provides the accurate depth information, especially in the complex scene with reflection and refraction. Real-time interactive holographic display with accurate depth precision and large depth range is pioneered by proposed method for virtual and augmented reality applications. Further research to reconstruct realistic 3D scenes can be improved in quality optimization for multiple depth cues, color display, combination with deep learning, and so on.

Funding

National Natural Science Foundation of China (62075016, 62175017).

Acknowledgments

The authors would like to thank the six anonymous reviewers for their comments about our manuscript. Portions of this work were presented at the AOPC conference in 2021, entitled “Computer-generated hologram with complete depth information of reflection and refraction using ray tracing rendering”.

Disclosures

The authors declare no conflicts of interest.

Data availability

Data underlying the results presented in this paper are available in Ref. [35].

References

1. C. Chang, K. Bang, G. Wetzstein, B. Lee, and L. Gao, “Toward the next-generation VR/AR optics: a review of holographic near-eye displays from a human-centric perspective,” Optica 7(11), 1563–1578 (2020). [CrossRef]  

2. S. Tay, P. Blanche, R. Voorakaranam, A. V. Tunç, W. Lin, S. Rokutanda, T. Gu, D. Flores, P. Wang, and G. Li, “An updatable holographic three-dimensional display,” Nature 451(7179), 694–698 (2008). [CrossRef]  

3. Y. Chen, M. Hua, T. Zhang, M. Zhou, J. Wu, and W. Zou, “Holographic near-eye display based on complex amplitude modulation with band-limited zone plates,” Opt. Express 29(14), 22749–22760 (2021). [CrossRef]  

4. Y. Li, Q. Yang, J. Xiong, K. Yin, and S. T. Wu, “3D displays in augmented and virtual realities with holographic optical elements [Invited],” Opt. Express 29(26), 42696–42712 (2021). [CrossRef]  

5. G. Li, D. Lee, Y. Jeong, J. Cho, and B. Lee, “Holographic display for see-through augmented reality using mirror-lens holographic optical element,” Opt. Lett. 41(11), 2486–2489 (2016). [CrossRef]  

6. S. Chris, C. Cameron, and M. Stanley, “Computer-generated holography as a generic display technology,” Computer 38(8), 46–53 (2005). [CrossRef]  

7. P. W. M. Tsang, T.-C. Poon, and Y. M. Wu, “Review of fast methods for point-based computer-generated holography [Invited],” Photonics Res. 6(9), 837–846 (2018). [CrossRef]  

8. T. Zhao, J. Liu, Q. Gao, P. He, Y. Han, and Y. Wang, “Accelerating computation of CGH using symmetric compressed look-up-table in color holographic display,” Opt. Express 26(13), 16063–16073 (2018). [CrossRef]  

9. C. Gao, J. Liu, X. Li, G. Xue, J. Jia, and Y. Wang, “Accurate compressed look up table method for CGH in 3D holographic display,” Opt. Express 23(26), 33194–33204 (2015). [CrossRef]  

10. S. Jiao, Z. Zhuang, and W. Zou, “Fast computer generated hologram calculation with a mini look-up table incorporated with radial symmetric interpolation,” Opt. Express 25(1), 112–123 (2017). [CrossRef]  

11. T. Shimobaba, N. Masuda, and T. Ito, “Simple and fast calculation algorithm for computer-generated hologram with wavefront recording plane,” Opt. Lett. 34(20), 3133–3135 (2009). [CrossRef]  

12. Y. Wang, X. Sang, Z. Chen, H. Li, and L. Zhao, “Real-time photorealistic computer-generated holograms based on backward ray tracing and wavefront recording planes,” Opt. Commun. 429, 12–17 (2018). [CrossRef]  

13. D. Pi, J. Liu, Y. Han, S. Yu, and N. Xiang, “Acceleration of computer-generated hologram using wavefront-recording plane and look-up table in three-dimensional holographic display,” Opt. Express 28(7), 9833–9841 (2020). [CrossRef]  

14. D. Yasuki, T. Shimobaba, M. Makowski, D. Blinder, J. Suszek, M. Sypek, T. Birnbaum, P. Schelkens, T. Kakue, and T. Ito, “Three-dimensional hologram calculations using blocked radial and windmill point spread functions,” Opt. Express 29(26), 44283–44298 (2021). [CrossRef]  

15. H. Li, X. Sang, L. Zhao, D. Chen, Z. Chen, Y. Wang, X. Zhao, C. Peng, B. Yan, K. Wang, and C. Yu, “Optimized layered method for real-time interactive holographic display based on ray-tracing technique,” Opt. Eng. 59(10), 102408 (2020). [CrossRef]  

16. H. Zhang, Y. Zhao, L. Cao, and G. Jin, “Layered holographic stereogram based on inverse Fresnel diffraction,” Appl. Opt. 55(3), A154–A159 (2016). [CrossRef]  

17. Y. Zhao, L. Cao, H. Zhang, D. Kong, and G. Jin, “Accurate calculation of computer-generated holograms using angular-spectrum layer-oriented method,” Opt. Express 23(20), 25440–25449 (2015). [CrossRef]  

18. J.-P. Liu and H.-K. Liao, “Fast occlusion processing for a polygon-based computer-generated hologram using the slice-by-slice silhouette method,” Appl. Opt. 57(1), A215–A221 (2018). [CrossRef]  

19. B. David, T. Nishitsuji, and P. Schelkens, “Real-Time Computation of 3D Wireframes in Computer-Generated Holography,” IEEE Trans. on Image Process. 30, 9418–9428 (2021). [CrossRef]  

20. S.-C. Liu and D. Chu, “Deep learning for hologram generation,” Opt. Express 29(17), 27373–27395 (2021). [CrossRef]  

21. L. Shi, B. Li, C. Kim, P. Kellnhofer, and W. Matusik, “Towards real-time photorealistic 3D holography with deep neural networks,” Nature 591(7849), 234–239 (2021). [CrossRef]  

22. Y. Peng, S. ChoI, N. Padmanaban, and G. Wetzstein, “Neural holography with camera-in-the-loop training,” ACM Trans. Graphic. 39(6), 1–14 (2020). [CrossRef]  

23. J. Wu, K. Liu, X. Sui, and L. Cao, “High-speed computer-generated holography using an autoencoder-based deep neural network,” Opt. Lett. 46(12), 2908–2911 (2021). [CrossRef]  

24. S. Choi, J. Kim, Y. Peng, and G. Wetzstein, “Optimizing image quality for holographic near-eye displays with Michelson Holography,” Optica 8(2), 143–146 (2021). [CrossRef]  

25. J. Lee, J. Jeong, J. Cho, D. Yoo, B. Lee, and B. Lee, “Deep neural network for multi-depth hologram generation and its training strategy,” Opt. Express 28(18), 27137–27154 (2020). [CrossRef]  

26. S. Choi, M. Gopakumar, Y. Peng, J. Kim, and G. Wetzstein, “Neural 3D holography: Learning accurate wave propagation models for 3D holographic virtual and augmented reality displays,” ACM Trans. Graphic. 40(6), 1–12 (2021). [CrossRef]  

27. D. Blinder, M. Chlipala, T. Kozacki, and P. Schelkens, “Photorealistic computer generated holography with global illumination and path tracing,” Opt. Lett. 46(9), 2188–2191 (2021). [CrossRef]  

28. A. Gilles, P. Gioia, R. Cozot, and L. Morin, “Hybrid approach for fast occlusion processing in computer-generated hologram calculation,” Appl. Opt. 55(20), 5459–5470 (2016). [CrossRef]  

29. T. Ichikawa, K. Yamaguchi, and Y. Sakamoto, “Realistic expression for full-parallax computer-generated holograms with the ray-tracing method,” Appl. Opt. 52(1), A201–A209 (2013). [CrossRef]  

30. S. Kevin, Ray Tracing from the Ground Up (CRC Press, 2016).

31. Q.-Y. Zhou, J. Park, and V. Koltun, “Open3D: A modern library for 3D data processing,” https://arxiv.org/abs/1801.09847.

32. Q. Yao, “Optics,https://github.com/flyingwolfz/RT-CGH/tree/main/optics.

33. C. Zhong, X. Sang, H. Li, D. Chen, B. Yan, Y. Li, and X. Qin, “Computer-generated hologram with complete depth information of reflection and refraction using ray tracing rendering,” Proc. SPIE 12066, 120660X (2021). [CrossRef]  

34. J. Wang, X. Lei, Y. Wu, F. Jin, and N. Chen, “Holographic display with optical computational Fresnel convolution to broaden distance,” Opt. Express 30(3), 4288–4301 (2022). [CrossRef]  

35. C. Zhong, “RT-CGH,” https://github.com/flyingwolfz/RT-CGH.

Supplementary Material (3)

NameDescription
Visualization 1       Real-time holographic display for "Real-time realistic computer-generated hologram with accurate depth precision and large depth range"
Visualization 2       Real-time holographic display for "Real-time realistic computer-generated hologram with accurate depth precision and large depth range"
Visualization 3       Real-time holographic display for "Real-time realistic computer-generated hologram with accurate depth precision and large depth range"

Data availability

Data underlying the results presented in this paper are available in Ref. [35].

35. C. Zhong, “RT-CGH,” https://github.com/flyingwolfz/RT-CGH.

Cited By

Optica participates in Crossref's Cited-By Linking service. Citing articles from Optica Publishing Group journals and other participating publishers are listed here.

Alert me when this article is cited.


Figures (11)

Fig. 1.
Fig. 1. Schematic diagram of the CGH generation pipeline.
Fig. 2.
Fig. 2. (a) Traditional ray tracing procedure for generating sliced layers. (b) Traditional ray tracing procedure for generating a 2D image and its depth map. (c) The proposed ray tracing procedure for generating the 3D volume buffer.
Fig. 3.
Fig. 3. (a) 3D reconstruction for layer data composed of 50 depth values. (b) 3D reconstruction of 3D volume buffer or 2D image with its depth map.
Fig. 4.
Fig. 4. (a) Reflection calculation. (b) Refraction calculation. (c) Ray recursion of transparent object.
Fig. 5.
Fig. 5. The optical setup.
Fig. 6.
Fig. 6. (a) 3D scene of experiment 1. (b) 3D scene of experiment 2.
Fig. 7.
Fig. 7. 3D reconstruction of experiment 1. (a)-(f) Traditional method with incomplete depth information. (g)-(l) Proposed method with complete depth information.
Fig. 8.
Fig. 8. 3D reconstruction of experiment 2. (a)-(d) Traditional method with incomplete depth information. (e)-(h) Proposed method with complete depth information
Fig. 9.
Fig. 9. (a) Calculation time of different methods. (b) Calculation time of proposed method in different procedures.
Fig. 10.
Fig. 10. MAE and error maps of traditional method and proposed method in experiment 1.
Fig. 11.
Fig. 11. MAE and error maps of traditional method and proposed method in experiment 2.

Tables (2)

Tables Icon

Table 1. Speed comparison between SL and DL implementation using 500 layers

Tables Icon

Table 2. Comprehensive comparison of different fast CGH generation methods

Equations (18)

Equations on this page are rendered with MathJax. Learn more.

H ( ξ , η ) = s = 1 S A s exp ( i k ( ξ x s ) 2 + ( η y s ) 2 + z s 2 ) ,
H ( ξ , η ) = exp ( i k f ) i λ f exp [ i k 2 f ( ( ξ p ) 2 + ( η p ) 2 ) ] F F T { U ( x , y ) exp [ i k 2 f ( ( x Δ x ) 2 + ( y Δ y ) 2 ) ] } ,
Δ x = λ f M p , Δ y = λ f N p ,
H t o t a l = t = 1 T H t ,
Δ x Δ y = N M .
U ( x , y , z ) = A ( x , y , z ) exp { i k [ φ + 1 2 f z ( ( x λ M p ) 2 + ( y λ N p ) 2 ) ] } ,
f z = f 0 + z Δ f ,
H ( ξ , η ) t o t a l = d = 1 D H ( ξ , η ) d = d = 1 D exp ( i k f d ) i λ f d exp { i k 2 f d [ ( ξ p ) 2 + ( η p ) 2 ] } F ( u , v , d ) ,
f d = f 0 + d Δ f ,
h ( ξ , η ) = arg [ H ( ξ , η ) t o t a l ] .
A = I a d i f f + I l d i f f = k d I a + k d I l cos θ ,
d e p t h = r l z ,
d e p t h = r ( d 1 + d 2 ) z ,
d 2 = d 2 .
d 3 = d 3   cos i 1   n 2 n 1   [ 1 ( n 2 2 n 1 2 1 )   tan 2 i 1 ] 3 2 cos i 2 ,
d 2 + d 3 = ( d 2 + d 3 )   cos i 3   n 1 n 2   [ 1 ( n 1 2 n 2 2 1 )   ( tan i 3 ) 2 ] 3 2 cos i 4 ,
d e p t h = r ( d 1 + d 2 + d 3 ) z .
M A E = 1 N n = 1 N | d n d ^ n | ,
Select as filters


Select Topics Cancel
© Copyright 2024 | Optica Publishing Group. All rights reserved, including rights for text and data mining and training of artificial technologies or similar technologies.