Lapped Solid Textrues Filling a Model with Anisotropic

  • Slides: 38
Download presentation
Lapped Solid Textrues Filling a Model with Anisotropic Textures Kenshi Takayama, Makoto Okabe, Takashi

Lapped Solid Textrues Filling a Model with Anisotropic Textures Kenshi Takayama, Makoto Okabe, Takashi Ijiri, Takeo Igarashi The University of Tokyo 발표: 이성호

Abstract • representing solid objects – with spatially varying oriented textures – by repeatedly

Abstract • representing solid objects – with spatially varying oriented textures – by repeatedly pasting solid texture exemplars • Extend the 2 D lapped textures to 3 D solids • creating solid models – whose textural patterns change gradually – along the depth fields • Identify several texture types 2

Procedural approach • [Perlin 1985; Cutler et al. 2002] • Difficult for non-expert users

Procedural approach • [Perlin 1985; Cutler et al. 2002] • Difficult for non-expert users 3

2 D texture synthesis on cross sections • [Owada et al. 2004; Pietroni et

2 D texture synthesis on cross sections • [Owada et al. 2004; Pietroni et al. 2007] • Limitations – Inconsistency among different cross-sections – Difficulty in handling textures with discontinuous elements • Such as seeds 4

Example-based 3 D solid texture synthesis • [Jagnow et al. 2004; Kopf et al.

Example-based 3 D solid texture synthesis • [Jagnow et al. 2004; Kopf et al. 2007] • For large-scale solid models – The amount of data and computational cost become problematic 5

Lapped textures 6

Lapped textures 6

Lapped solid textures • Arrange solid textures along a tensor field • handle spatially-varying

Lapped solid textures • Arrange solid textures along a tensor field • handle spatially-varying textures • classify solid textures into several types – according to the amount of anisotropy and spatial variation • Designed easily and created efficiently • Little memory and computational cost 7

Classification of solid textures 8

Classification of solid textures 8

 • [Kopf et al. 2007] – 1 -a • [Owada et al. 2004]

• [Kopf et al. 2007] – 1 -a • [Owada et al. 2004] – 1 -b • This paper – 2 -a and 2 -b • Not considered – 2 -c and 2 -d 9

User interface: Texture type 0 10

User interface: Texture type 0 10

Type 1 -a 11

Type 1 -a 11

Type 1 -b 12

Type 1 -b 12

Type 2 -a 13

Type 2 -a 13

Type 2 -b 14

Type 2 -b 14

Manual pasting of textures 15

Manual pasting of textures 15

Algorithm: Tetrahedral mesh • The input mesh model is converted to a tetrahedral mesh

Algorithm: Tetrahedral mesh • The input mesh model is converted to a tetrahedral mesh model – Used the Tet. Gen library [Si 2006] 16

Preparation of solid texture exemplars • Solid texture synthesis [Kopf et al. 2007] •

Preparation of solid texture exemplars • Solid texture synthesis [Kopf et al. 2007] • Noise functions [Cook and De. Rose 2005] • Volume capturing using slicers [Banvard 2002] • In-house voxel editor (this paper) – Created manually from photographs 17

Rendering an LST model • convert tetrahedron model – Into a polygonal model –

Rendering an LST model • convert tetrahedron model – Into a polygonal model – That consists of surface triangles – with a list of 3 D texture coordinates assigned to each of its three vertices • Each surface triangle is rendered multiple times – Approximately 10– 20 times • in most of our results – With alpha blending enabled 18

Cutting • Constructs a scalar field – Using radial basis function (RBF) interpolation [Turk

Cutting • Constructs a scalar field – Using radial basis function (RBF) interpolation [Turk and O’Brien 1999] • Texture coordinates for each triangle on the cross-section – obtained by linear interpolation 19

Volume rendering • Construct a scalar field – over the mesh vertices – To

Volume rendering • Construct a scalar field – over the mesh vertices – To give the distance between the camera and each vertex • Calculate a large number of slices of the model – perpendicular to the camera direction – by iso-surface extraction 20

Creating an alpha mask of the solid texture • Create 3 D mask –

Creating an alpha mask of the solid texture • Create 3 D mask – Using [Nealen et al. 2007] – The alpha value drops off around the boundary of the mask • We assume all the textures in our examples are less structured – Use a constant “splotch” mask shown in Fig. 11 • for all the textures 21

Constructing a tensor field • Type 1 -a and 1 -b – First direction

Constructing a tensor field • Type 1 -a and 1 -b – First direction • user-drawn strokes (1 -a) • Gradient direction of the depth field (1 -b) – Other direction is chosen randomly • when pasting each patch • Type 2 -a and 2 -b – First direction • Gradient direction of the depth field – Second direction • User-drawn strokes – Third direction • Cross product of the two • Magnitudes of tensors – User-specified texture scaling values – Except for types 1 -b and 2 -b • Set automatically from the depth field 22

Interpolating tensor field (1/3) • Laplacian smoothing [Fu et al. 2007] 23

Interpolating tensor field (1/3) • Laplacian smoothing [Fu et al. 2007] 23

Interpolating tensor field (2/3) • Minimizing Laplacians (Eq. 1) while satisfying the collection of

Interpolating tensor field (2/3) • Minimizing Laplacians (Eq. 1) while satisfying the collection of constraints (Eq. 2) in a least squares sense forms a sparse linear system, which can be solved quickly. 24

Interpolating tensor field (3/3) • Perform Laplacian smoothing – for each x-, y-, and

Interpolating tensor field (3/3) • Perform Laplacian smoothing – for each x-, y-, and z-component of the vectors • which are later combined and normalized. • Types 2 -a and 2 -b, – no guarantee that resulting vectors will – always be orthogonal to the first direction – orthogonalize these vectors • To the first direction after smoothing 25

26

26

 • Obtain a depth field – By using thin-plate RBF interpolation in the

• Obtain a depth field – By using thin-plate RBF interpolation in the 3 D Euclidean space [Turk and O’Brien 1999] • the depth field must be defined as a smooth function in 3 D space • Assign depth values – of 0 and 1 to the outermost (red) and the innermost (blue) regions, respectively • Types 1 -b and 2 -b, – These depth values are used directly • As one of the three texture coordinates 27

Selecting a seed tetrahedron • Initialize a list of “uncovered” tetrahedra • One is

Selecting a seed tetrahedron • Initialize a list of “uncovered” tetrahedra • One is selected at random – For each pasting operation • Tetrahedra are removed from the list – If they are completely covered • Repeat this process – Until the “uncovered” list becomes empty • Manual pasting of the textures – Seed tetrahedron is set to the one • Clicked by the user 28

Growing a clump of tetrahedra 29

Growing a clump of tetrahedra 29

Texture optimization 30

Texture optimization 30

31

31

Coverage test of tetrahedron • linearly sample the alpha values of the mask –

Coverage test of tetrahedron • linearly sample the alpha values of the mask – at these discrete points of each tetrahedron – in the clump – which are then accumulated. • Assume that the tetrahedron is completely covered by the overlapping textures – If the accumulated alpha values of all the sampling points of a tetrahedron reach 255 32

Creation of depth-varying solid models • Map the clump of tetrahedra – Into the

Creation of depth-varying solid models • Map the clump of tetrahedra – Into the corresponding depth position • In the texture space • Instead of the central position • alter the positional constraints – from (0. 5, 0. 5)t to (0. 5, dseed, 0. 5, )t, – dseed is the depth value assigned to Tseed • Assuming the s-axis corresponds to the depth orientation 33

Problem & solution 34

Problem & solution 34

Results 35

Results 35

36

36

37

37

Limitations and future work • Patch seams – a texture with strong low-frequency components

Limitations and future work • Patch seams – a texture with strong low-frequency components • Singularities of the tensor field • blurring artifacts • Preparation of exemplar solid textures 38