Chapter 4 Anisometric Synthesis Process
4.2 Anisometric Solid Texture Synthesis
4.2.1 Pyramid Upsampling
The goal for upsmapling step in anisometric synthesis is the same as it in isometric synthesis. It synthesizes from coarse level to fine level. We upsample the coordinate values of parent voxels for the next level.
The difference is that the child-dependent offset for upsmapling step is dependent on the anisometric field A. The anisometric field A is used to compute the distance for spacing.
26 transformed exemplars ~'
Tx , ~' T , y ~'
Tz to make the result similar to the exemplars Tx, Ty, T according to the 3D vector field. z
Lefebvre and Hoppe [13] presented a method for anisometric synthesis which is able to reproduce arbitrary affine deformations, including shears and non-uniform scales.
They only accessed immediate neighbors of pixel p to construct the neighborhood vector N ( p)
sl . They used the Jacobian field J and the inverse Jacobian field J−1 to infer which pixel neighbors to access, and the results will be transformed by the inverse Jacobian field J−1 at the current point. We apply this method to 3D space.
First, we have to know which 4 voxel neighbors in each direction to voxel v. We use the inverse anisometric field Al−1 to infer the 4 warped neighbors for voxel v, and construct the three warped neighborhood vectors Ns v x
l( )
27
Fig. 4.3 shows the 4 warped neighbors for each voxel v for each direction. Their locations are changed from diagonal locations because of the inverse anisometric fieldAl−1.
28 warped synthesized voxels for each warped neighbor.
]
29
(a) (b) (c) Figure 4.4 Three warped sub-neighbors for warped neighbors of voxel v
We utilize the 4 warped voxels for each direction nearby voxel v . Taking direction x for example, the warped neighbor voxel i′x (i′x =1~4), we can get the most similar 3 voxels (i′ ,x1 i′ ,x2 i′ ) in exemplar x3 T for voxel x i′ from the similarity set. Then we x use the warped relationship with the anisometric fields A between voxel i′ and x voxel v to infer the candidate voxels (ix′1v,ix′2v,ix′3v) in exemplar Tx for voxel v , as shown in Fig. 4.5(b). We want to keep the color consistence in three directions, so we use the precomputed 3D-candidate set to infer the other two coordinates (i(′x→y)v,i(′x→z)v)
30
triple coordinate for voxel v with the best matching triple candidate.
Figure 4.5 The process of forming warped triple candidates in direction x: (a) A voxel v is corrected.
31
Chapter 5
Implementation and Results
We implement our system on a PC with 3.00GHz and 3.00GHz Core2 Extreme CPU and 8.0GB of system memory. We use MATLAB to implement our method. We always use 128×128 input texture, and we can synthesize to any target size which we want. It needs about 2.5 seconds to construct a transformed exemplar from feature vectors. It takes various times to construct a similarity set based on characteristic of the input texture. However, the time does not exceed 11 minutes. And we spend about 3.5 hours constructing a 3D-candidate set. The transformed exemplar from feature vectors and the similarity set can be reused for synthesis process. It means that once the feature vectors and similarity sets are constructed, we can use them for other syntheses with different target sizes for results and with different vector fields.
For a 128×128×128 result data, it needs about 11~12 hours for synthesis process.
For a 256×256×256 result data, it needs about 5 days for synthesis process. We will
32
our results with 128×128 input texture data and 128×128×128 result data in this chapter.
The detail computation times for different textures are shown in Table 5.1. In Section we show some vector fields which we use in anisometric synthesis, and we show synthesis results in Section 5.2.
5.1 Vector Fields
We use different vector field controls: circular pattern on XY plane, emissive pattern on XY plane, slant pattern on XY plane, zigzag pattern on XY plane, and slant control on 3D space.
The vector field about circular and emissive control is in Fig. 5.1. In circular control, we use the green arrows as the primary vectors. On the contrary, we use the blue arrows as the primary vectors in emissive control.
(a) (b) Figure 5.1 5×5×5 3D vector field about circular & emissive control
(a) XY plane (b) three orthogonal axes at every point
33
The vector field about slant control is in Fig. 5.2.
(a) (b)
(c) (d) Figure 5.2 5×5×5 3D vector field about slant control
(a) one axes on XY plane (b) one axes at every point
(c) three axes on XY plane (d) three orthogonal axes at every point
34
The vector field about zigzag control is in Fig. 5.3, and we make it changed by two different directions for slant.
(a) (b)
(c) (d) Figure 5.3 5×5×5 3D vector field about zigzag control
(a) one axes on XY plane (b) one axes at every point
(c) three axes on XY plane (d) three orthogonal axes at every point
35
The vector field about 3D slant control is in Fig. 5.4.
(a) (b)
(c) (d) Figure 5.4 5×5×5 3D vector field about 3D slant control
(a) one axes on XY plane (b) one axes at every point
(c) three axes on XY plane (b) three orthogonal axes at every point
36
5.2 Synthesis Results
The input data in Fig. 5.5(a) (case_1) is a particle-like texture. It contains few kinds of color, and it is very different between particles and background. The particles in case_1 are the same kind. As long as there are few complete particle patterns in the input data, we can synthesize good result, as shown in Fig. 5.5(b)~(e).
We add the circular vector field control to the synthesis, as shown in Fig. 5.6(a)~(d).
Because this texture is not structural enough, the effect by vector field is not obvious.
But we still can see the arc-like patterns.
We add the emissive vector field control to the synthesis, as shown in Fig.
5.7(a)~(d). The effect by vector field is also obscure. Only little emissive-like patterns are appeared in the cross section.
We add the slant vector field control to the synthesis, as shown in Fig. 5.8(a)~(d).
On XY plane, the patterns have slanted directional consistency.
We add the zigzag vector field control to the synthesis, as shown in Fig. 5.9(a)~(d).
In this case, the effect by zigzag vector field control is obscure, just like no vector field.
We add the 3D slant vector field control to the synthesis, as shown in Fig.
5.10(a)~(d). On XY plane, the slant patterns are obvious. On the other two planes, the effect is less than the XY plane, but the spots are squelched.
37
(a) (b)
(c) (d)
(e) (f) Figure 5.5 (a) Input and result data for case_1
(b) cross section at X=126, Y=126, and Z=126 for result data (c) cross section at X=80, Y=80, and Z=80 for result data (d) cross section at X=64, Y=64, and Z=64 for result data (e) 128×128×128 result volume data for case_1
(f) 256×256×256 result volume data for case_1
38
(a) (b)
(c) (d) Figure 5.6 Anisometric results with circular control for case_1
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with circular control for case_1
39
(a) (b)
(c) (d) Figure 5.7 Anisometric results with emissive control for case_1
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with emissive control for case_1
40
(a) (b)
(c) (d) Figure 5.8 Anisometric results with slant control for case_1
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with slant control for case_1
41
(a) (b)
(c) (d) Figure 5.9 Anisometric results with zigzag control for case_1
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with zigzag control for case_1
42
(a) (b)
(c) (d) Figure 5.10 Anisometric results with 3D slant control for case_1
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with 3D slant control for case_1
43
The input data in Fig. 5.11(a) (case_2) is stochastic and marble-like texture. It only contains two kinds of colors, and it is vivid. It has rich information so that only needing small amount of data to represent the whole texture. It means that we can synthesize larger results with this kind of textures. Fig. 5.11(b)~(e) show the result.
We add the circular vector field control to the synthesis, as shown in Fig.
5.12(a)~(d). As we can see, there are circular patterns on XY plane.
We add the emissive vector field control to the synthesis, as shown in Fig.
5.13(a)~(d). On XY plane, we can see some emissive-patterns.
We add the slant vector field control to the synthesis, as shown in Fig. 5.14(a)~(d).
On XY plane, the patterns have slanted directional consistency.
We add the zigzag vector field control to the synthesis, as shown in Fig. 5.15(a)~(d).
In this case, the effect by the zigzag vector field is obscure. The result looks like random distribution.
We add the 3D slant vector field control to the synthesis, as shown in Fig.
5.16(a)~(d). On XY plane, there are blocks of slanted patterns. On the other two planes, the patterns are squelched.
44
(a) (b)
(c) (d)
(e) (f) Figure 5.11 (a) Input and result data for case_2
(b) cross section at X=126, Y=126, and Z=126 for result data (c) cross section at X=80, Y=80, and Z=80 for result data (d) cross section at X=64, Y=64, and Z=64 for result data (e) 128×128×128 result volume data for case_2
(f) 256×256×256 result volume data for case_2
45
(a) (b)
(c) (d) Figure 5.12 Anisometric results with circular control for case_2
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with circular control for case_2
46
(a) (b)
(c) (d) Figure 5.13 Anisometric results with emissive control for case_2
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with emissive control for case_2
47
(a) (b)
(c) (d) Figure 5.14 Anisometric results with slant control for case_2
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with slant control for case_2
48
(a) (b)
(c) (d) Figure 5.15 Anisometric results with zigzag control for case_2
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with zigzag control for case_2
49
(a) (b)
(c) (d) Figure 5.16 Anisometric results with 3D slant control for case_2
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with 3D slant control for case_2
50
The input data in Fig. 5.17(a) (case_3) is a kind of structural textures. The patterns in the input data are small and compact, so the texture is information-rich. Only small size for input data could provide enough patterns for synthesis. It can be synthesized with a few input data and get good results. The result is shown in Fig. 5.17(b)~(e).
We add the circular vector field control to the synthesis, as shown in Fig.
5.18(a)~(d). As we can see, the result is good. The cross sections also display the character of the texture.
We add the emissive vector field control to the synthesis, as shown in Fig.
5.19(a)~(d). On XY plane, the result is good that it has emissive patterns completely.
But on the other two planes, there are some discontinuous lines.
We add the slant vector field control to the synthesis, as shown in Fig. 5.20(a)~(d).
We can see that the result is pretty good in all the three planes. It not only exhibits the character of the texture but also has continuous lines.
We add the zigzag vector field control to the synthesis, as shown in Fig. 5.21(a)~(d).
It has good zigzag patterns on XY plane, but there is a little discontinuity on the other two planes.
We add the 3D slant vector field control to the synthesis, as shown in Fig.
5.22(a)~(d). The result is good. In all the three planes, it has slanted and continuous patterns completely.
51
(a) (b)
(c) (d)
(e) (f) Figure 5.17 (a) Input and result data for case_3
(b) cross section at X=126, Y=126, and Z=126 for result data (c) cross section at X=80, Y=80, and Z=80 for result data (d) cross section at X=64, Y=64, and Z=64 for result data (e) 128×128×128 result volume data for case_3
(f) 256×256×256 result volume data for case_3
52
(a) (b)
(c) (d) Figure 5.18 Anisometric results with circular control for case_3
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with circular control for case_3
53
(a) (b)
(c) (d) Figure 5.19 Anisometric results with emissive control for case_3
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with emissive control for case_3
54
(a) (b)
(c) (d) Figure 5.20 Anisometric results with slant control for case_3
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with slant control for case_3
55
(a) (b)
(c) (d) Figure 5.21 Anisometric results with zigzag control for case_3
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with zigzag control for case_3
56
(a) (b)
(c) (d) Figure 5.22 Anisometric results with 3D slant control for case_3
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with 3D slant control for case_3
57
The input data in Fig. 5.23(a) (case_4) is between structural and stochastic. It has different length and width patterns, but these patterns have the same slanted directions.
Because of the slanted direction, it displays different effects comparing with case_3 adding vector field control. The result is shown in Fig. 5.23(b)~(e).
We add the circular vector field control to the synthesis, as shown in Fig.
5.24(a)~(d). As we can see, the result has vortex-like patterns on XY plane because of the input texture’s slanted direction.
We add the emissive vector field control to the synthesis, as shown in Fig.
5.25(a)~(d). It has the similar result to circular vector field because of the same factor.
We add the slant vector field control to the synthesis, as shown in Fig. 5.26(a)~(d).
We can see that the patterns on XY plane change their directions from slant to horizontal.
We add the zigzag vector field control to the synthesis, as shown in Fig. 5.27(a)~(d).
On XY plane, the patterns separate to two parts. Each part has different effect by the zigzag vector field. The left part has horizontal direction, and the right part has slanted direction.
We add the 3D slant vector field control to the synthesis, as shown in Fig.
5.28(a)~(d). The results has horizontal direction on XY and YZ planes. But on XZ plane, it has point-like patterns.
58
(a) (b)
(c) (d)
(e) (f) Figure 5.23 (a) Input and result data for case_4
(b) cross section at X=126, Y=126, and Z=126 for result data (c) cross section at X=80, Y=80, and Z=80 for result data (d) cross section at X=64, Y=64, and Z=64 for result data (e) 128×128×128 result volume data for case_4
(f) 256×256×256 result volume data for case_4
59
(a) (b)
(c) (d) Figure 5.24 Anisometric results with circular control for case_4
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with circular control for case_4
60
(a) (b)
(c) (d) Figure 5.25 Anisometric results with emissive control for case_4
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with emissive control for case_4
61
(a) (b)
(c) (d) Figure 5.26 Anisometric results with slant control for case_4
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with slant control for case_4
62
(a) (b)
(c) (d) Figure 5.27 Anisometric results with zigzag control for case_4
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with zigzag control for case_4
63
(a) (b)
(c) (d) Figure 5.28 Anisometric results with 3D slant control for case_4
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with 3D slant control for case_4
64
The input data in Fig. 5.29(a) (case_5) is a structural texture. It has simple wooden patterns. Because of its sparse patterns, it has different effects for different vector fields, and we discuss later. The result is shown in Fig. 5.29(b)~(e).
We add the circular vector field control to the synthesis, as shown in Fig.
5.30(a)~(d). The result is bad, just little arc-like patterns on XY plane. The other places in the volume are blurring, and the color of the result is unlike the input texture’s color.
We add the emissive vector field control to the synthesis, as shown in Fig.
5.31(a)~(d). As we can see, there are emissive patterns on XY plane. The color of this result is also odd.
We add the slant vector field control to the synthesis, as shown in Fig. 5.32(a)~(d).
The result is pretty good that it has slanted patterns on XY plane completely. Moreover, the characteristic of the wood is displayed well in the result.
We add the zigzag vector field control to the synthesis, as shown in Fig. 5.33(a)~(d).
On XY plane, we can see the zigzag patterns. The result is sparse because the input texture is also sparse.
We add the 3D slant vector field control to the synthesis, as shown in Fig.
5.34(a)~(d). The result is not bad. It has slanted patterns on all the three planes.
65
(a) (b)
(c) (d)
(e) (f) Figure 5.29 (a) Input and result data for case_5
(b) cross section at X=126, Y=126, and Z=126 for result data (c) cross section at X=80, Y=80, and Z=80 for result data (d) cross section at X=64, Y=64, and Z=64 for result data (e) 128×128×128 result volume data for case_5
(f) 256×256×256 result volume data for case_5
66
(a) (b)
(c) (d) Figure 5.30 Anisometric results with circular control for case_5
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with circular control for case_5
67
(a) (b)
(c) (d) Figure 5.31 Anisometric results with emissive control for case_5
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with emissive control for case_5
68
(a) (b)
(c) (d) Figure 5.32 Anisometric results with slant control for case_5
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with slant control for case_5
69
(a) (b)
(c) (d) Figure 5.33 Anisometric results with zigzag control for case_5
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with zigzag control for case_5
70
(a) (b)
(c) (d) Figure 5.34 Anisometric results with 3D slant control for case_5
(a) cross section at X=126, Y=126, and Z=126 for result data (b) cross section at X=80, Y=80, and Z=80 for result data (c) cross section at X=64, Y=64, and Z=64 for result data (d) anisometric result with 3D slant control for case_5
71
Table 5.1 Computation time without vector field control for different textures Feature Vector Case_4 2.512 seconds 5 minutes
14 seconds Case_5 2.511 seconds 4 minutes
39 seconds locations for each direction) in neighborhood matching. The method by Dong et al. [4]
has to compare the corrected voxel’s direct neighborhoods, so it needs 27 (3×3×3) locations. The same points are following: we also separate the system to two processes which are pre-process and synthesis process. And we compute the same 3D-candidate set in pre-process to accelerate the synthesis process.
72
Chapter 6
Conclusions and Future Works
We have presented an exemplar-based system for solid texture synthesis with anisometric control from a 2D texture. In the preprocessing, we construct the feature vectors, similarity sets, and 3D-candidate sets from a 2D input texture. We replace traditional RGB values with the feature vectors to construct neighbor vectors for more accurate neighborhood matching. The similarity set which records 3 candidates for each
We have presented an exemplar-based system for solid texture synthesis with anisometric control from a 2D texture. In the preprocessing, we construct the feature vectors, similarity sets, and 3D-candidate sets from a 2D input texture. We replace traditional RGB values with the feature vectors to construct neighbor vectors for more accurate neighborhood matching. The similarity set which records 3 candidates for each