of each circle by using the importance sampling strategy on the projection plane proposed by Dachsbacher and Stamminger [2]. Therefore, we can evaluate the local with flexibility between performance and quality. We name this modified method ”Local Translucent Shadow Map”.
(a) (b)
Figure 3.9: Our method for local translucency. (a) Irradiance map rendered from light view with filter. (b) Filter pattern with 17(4x4+1) samples.
3.4 Discussion
Our hybrid method uses two difference concepts to render local and global translucent effects.
Both methods convert the integration over model surface to integration over another space do-main. One is 2D texture space and the other is 2D projection plane. Figure 3.10 shows the system overview of our hybrid method. The integration of local effects and global effects can be evaluated simultaneously in the same pass. Additional pass is needed to render the irradiance map to the projection plane from the light view.
3.4 Discussion 36
Originally, we try to design a method to evaluate the local translucent effect on the texture space. Hence, we can compute the local and global effect over the same domain, texture space.
The overview is shown in Figure 3.11. We develop another importance sampling strategy based on the diffusion function Rd(xi, xo). We study the distribution of Rd(xi, xo) on texture space for each outgoing point xo, and find out the situation is too complicated to analyze because of the stretch of angle and distance. We assume the texture space is isometric mapping, which means there is no stretch on the path of any two points. On the texture of isometric mapping, we can easily apply the importance sampling strategy to evaluate the integration of local effect, similar to the method proposed by Dachsbacher and Stamminger[2].
Unfortunately, parameterization of isometric mapping is only exist in theory. Current method for parameterization only minimize some kind of error stretch, like area preserving, angle pre-serving etc.., but can not eliminate the stretch. Therefore, we develop an adaptive sampling method on current texture to approximate the importance sampling on isometric mapping. For each rendered pixel, we start from the texture location of pixel and generate samples iteratively along one direction. Next sample is determined by the direction, distance, and stretch of current sample.
This method did not work very well in our experiment. Stretch is independent for each triangle, and the difference of stretch may be vary large for adjacent triangles in some case. In our method of adaptive sampling, we only consider the information of current sample. There-fore, the change along the path of current sample and next sample can not be took into account, which makes significant errors appear,as shown in Figure 3.12. The difference of stretch make the path in three-dimensional model space to change direction when passing the boundary the triangle.
Figure 3.13 shows an example of this problem sampling method for one point on the fore-head of MaxPlanck. As you can see, the shape and direction of sampling is still circular be-cause the path crosses few triangle at the beginning. When the distance between two samples is increased, the path is turning into another direction. The shape of sampling is not circular anymore.
3.4 Discussion 37
In order to overcome this problem, extra information need to be take into account. This will force us to lose the advantage of GPU-based texture space importance, rendering translucent material with lower precomputation overhead. Therefore, we use another approach to evaluate the local effect of translucency.
3.4 Discussion 38
Figure 3.10: System overview of our hybrid method. The local and global effect are computed over the projection space and the texture space respectively.
3.4 Discussion 39
Figure 3.11: System overview of our ideal method. The local and global effect are both com-puted over the texture space.
3.4 Discussion 40
(a) (b)
Figure 3.12: Diagram of adaptive sampling method on (a) texture space and (b) model space.
Red point is current sample; Blue point is next sample; Green points are intersection of path and boundary of triangle.
(a) (b)
Figure 3.13: Result samples of adaptive sampling method on (a) texture space and (b) model space for one outgoing point at the forehead. The color in (b) is the visualization of diffusion function Rd(xi, xo) for the outgoing point.
C H A P T E R 4
Result
All experiments are performed on Intel core 2 due E6600 2.4GHz PC using NVIDIA Geforece 8800 GTX graphics hardware. Most of our models are scaled to 10 mm and rendered in 512 × 512 screen resolution using difference scattering parameters described in [10].
4.1 GPU-based Texture Space Importance Sampling
Performance
Table 4.1 and 4.2 show the performance of our texture space importance sampling method using a resolution of 1024 × 1024 for irradiance map with difference sample numbers. We decompose performance into two part, preprocessing and integration. Preprocessing includes rendering irradiance to texture and importance sampling. Integration include the final stage of run-time, evaluation of the translucency. Figure 4.1 shows three difference result image of our method.
We compare our method with ”Efficient rendering of Local Subsurface Scattering” LSS [2]
in performance. Table 4.3 and Table 4.4 shows the performance of LSS. The performance of
41
4.1 GPU-based Texture Space Importance Sampling 42
preprocessing in our method and LSS are both around 6 ms to 7ms. The computation cost our of integration in LSS is about 8 ∼ 9 times of our method.
Number of Samples
Model Triangle 49 100 169 256 400 900 1600 2500
Sphere(28K) 28560 5.31 5.29 6.47 5.20 5.25 5.14 5.12 5.60
CowHead 2072 5.34 5.23 4.86 5.11 5.16 5.14 4.86 4.70
TexHead 8924 5.30 5.26 5.10 5.31 5.46 5.42 5.14 4.59
MaxPlanck 9951 5.29 5.11 5.33 5.19 5.31 5.29 4.95 4.65
Parasaur 7685 5.29 5.43 5.17 5.52 5.41 5.71 6.25 6.15
Table 4.1: Performance of preprocessing in our method with difference model in millisecond (ms).
Number of Samples
Model Triangle 49 100 169 256 400 900 1600 2500
Sphere(28K) 28560 448.6 242.3 179.7 101.5 65.9 29.8 16.5 10.4
CowHead 2072 1123.0 623.7 393.3 267.4 177.3 81.0 45.1 28.4
TexHead 8924 822.6 448.5 277.1 187.5 122.5 55.7 30.8 19.4
MaxPlanck 9951 783.9 430.1 268.0 180.5 118.0 53.4 29.8 18.7 Parasaur 7685 1069.9 602.1 377.5 258.6 168.3 76.2 42.9 27.0 Table 4.2: Performance of integration in our method with difference model in frame per second (fps).
4.1 GPU-based Texture Space Importance Sampling 43
Figure 4.1: Result image using our method in Table 4.2. (a) MaxPlanck with skimmilk and 900 samples in 53.4 fps (b) Parasaur with skin1 and 1600 samples in 42.9 fps (c) TexHead with marble and 2500 samples in 19.4 fps.
Number of Samples
Model Triangle 49 100 169 256 400 900 1600 2500
TexHead 8924 6.27 6.26 6.12 6.37 6.51 6.49 6.73 6.90
MaxPlanck 9951 6.16 6.82 6.95 6.18 6.42 6.18 5.46 6.26
Parasaur 7685 5.93 6.05 6.04 6.04 6.12 5.97 5.86 5.95
Table 4.3: Performance of preprocessing in LSS with difference model in millisecond (ms).
Number of Samples
Model Triangle 49 100 169 256 400 900 1600 2500
TexHead 8924 108.6 53.3 30.7 20.4 13.2 5.7 3.2 2.1
MaxPlanck 9951 100.2 50.1 29.1 18.7 11.9 5.3 2.9 1.9
Parasaur 7685 145.8 70.0 41.3 27.6 17.4 7.7 4.3 2.8
Table 4.4: Performance of integration in LSS with difference model in frame per second (fps).
4.1 GPU-based Texture Space Importance Sampling 44
Compare Quality to Real-Time Method
We compare our result image to LSS and ”Local Translucent Shadow Map” (LTSM) which is described in section 3.3.2. Figure 4.2 shows image of 10mm MaxPlanck with marble material in difference views by three methods. Because Dachsbacher and Stamminger rendered the irradiance map from camera view, irradiance will be caught poorly when the camera turn to the other side of light source. ”Local Translucent Shadow Map” can both render local and global effects, but same noticeable error will occur at the boundary of shadow map, as shown in the second row of Figure 4.2.
Figure 4.2: Top row are rendered by our method using 1600 samples in 29.8 fps. Second row are rendered by LTSM using 1600 samples in 8.0 fps. Third row are rendered by LSS[2] under same condition in 2.9 fps.
4.1 GPU-based Texture Space Importance Sampling 45
Compare Quality to Non-Real-Time Method
We also compare our result image to non-real-time method proposed by Jensen and Buhler [9]. Figure 4.3 and 4.4 show 10 mm and 40 mm igea rendered by our method and non-real-time method with different materials. As you can see from image, our texture space importance sampling method can real-time render translucent materials which is almost no difference with non-real-time method.
(a) skin1 Ours (b) skin1 Jensen (c) skin2 Ours (d) skin2 Jensen
Figure 4.3: Result image rendered by our method and by Jensen and Buhler [9] with 10mm igea.
(a) skin1 Ours (b) skin1 Jensen (c) skin2 Ours (d) skin2 Jensen
Figure 4.4: Result image rendered by our method and by Jensen and Buhler [9] with 40mm igea.
Our approach can render dynamic translucent material. Figure 4.5 shows examples of dy-namic size from 10 mm to 70 mm. The dominate appearance of translucency changes from the global effects to the local effects with the model size.
4.1 GPU-based Texture Space Importance Sampling 46
(a) skimmilk
(b) skin1
(c) skin2
Figure 4.5: Result image using our method with different model size. Model sizes are 10, 25, 40, 55, 70mm from left to right.
4.1 GPU-based Texture Space Importance Sampling 47
Artifact of Texture Space Importance Sampling
In our experiment, the resolution of irradiance texture can influence the result of sampling.
The obvious reason is that the choice of samples will decrease when the resolution of texture is reduced, which cause some supersampling problem when importance sampling. Figure 4.6 shows images rendered with texture resolution 16x16, 64x64, 128x128, and 256x256. Signifi-cant noise can be seen around the nose and eye in the image with 16x16 texture resolution. In general, texture resolution of 128x128 is good enough to generate accurate result.
(a) 16x16 (b) 64x64 (c) 128x128 (d) 512x512
Figure 4.6: Images of Parasaur model with skimmilk material is rendered with different texture resolution.
Because we render irradiance into texture space, the way how surface map to texture space will influence the accuracy of the integration. If the triangle area is shrunk too much in the texture space, undersampling will happen in importance sampling and result in artifacts. Figure 4.7 shows the images rendered with texture map derived using two parameterization methods, one is area preserving, one is not. There are significant errors around the horn in Figure 4.7(a).
(a) (b) (c) (d)
Figure 4.7: (a)(b) Images of cow head with marble material with difference parameterization result.(b)(d) Corresponding texture space of (a) and (b).