210 likes | 475 Views
Renderman. A Cellular Texture Basis Function Steven Worley. 석사 1 차 장 석. Contents . Abstract Introduction n th-closet point basis function Computation of F n (x) Application to Texturing Conclusion. A Cellular Texture Basis Function (1). Abstract Solid Texturing
E N D
Renderman A Cellular Texture Basis Function Steven Worley 석사 1차 장 석
Contents • Abstract • Introduction • nth-closet point basis function • Computation of Fn(x) • Application to Texturing • Conclusion
A Cellular Texture Basis Function (1) • Abstract • Solid Texturing • “3D Texturing” 이라고도 불리며, Perlin 과 Peachey에 의해 처음 소개 됨. • Point (x, y, z) 로 표현되기 때문에 Rendered objects의 표면에 detail을 추가하기 위한 매우 좋은 방법.(wood, marble…등) • “Perlin’s noise” 는 solid texturing 의 가장 기초라 할 수 있음.
A Cellular Texture Basis Function (2) • Perlin’s Noise 를 보완할 수 있는 새로운 Function 제안 (A Cellular Texture Basis Function) • Cell을 random하게 배열하여 공간을 나누는 것에 기초. • 포장도로의 표면, 타일로 붙여진 표면, 생물의 딱딱한 피부나 껍질, 구겨진 종이, 얼음, 바위, 분화구 등을 표현할 수 있음. • 미리 계산하거나 table storage 없이 효율적인 계산이 가능. • “More Application of Fractal Noise” 라 할 수 있음
A Cellular Texture Basis Function (3) • Introduction • Procedure Texturing • Image Synthesis에 큰 영향을 줌. • Image Mapping, Hand Modeling of Geometric Details 에 있어서 일일이 modeling 하지 않고도, 복잡한 표면을 rendering 할 수 있게 함. • 이 중에서 가장 유용하고 기초가 되는 기법은 Perlin이 소개한 ‘the fractal noise basis function’.
A Cellular Texture Basis Function (4) • The Perlin’s Fractal Noise Basis Function • Table storage 나 Precomputation 을 필요로 하지 않음. • R3공간에서 정의되고, scalar value 로 return. • Point (x, y, z) 를 Input value 로 받아서 scalar value 을 얻음. • 이 scalar value 는 직접적으로 색의 값으로 표현되거나 regular pattern을 흐트러뜨리는 역할을 함. -> bump mapping에 모방 적용하여 좋은 효과를 가능케 함. • 이런 특성이 많은 application 에 쉽게 적용되기 쉽게 함. (b) (a) < Perlin’s Noise Function(3D Basis) : (a) Wrinkles, (b) Color >
A Cellular Texture Basis Function (5) • Many Texture Algorithms 와 비교 • Fourier methods • Reaction diffusion textures, An algorithm by Miyata -> Extensive Precomputation 이 요구되고, scalar value 로 return 이 되지 않아 매우 복잡하고 규모가 커서 일반적이지 못함. • Many texture algorithms은 제한된 form 때문에 응용이 어려운 반면, Perlin’s noise function은 매우 단순하여 얼마든지 다양하고 쉽게 응용 가능. -> new texture function을 만들고, basis function으로 사용 가능. (b) (a) < Many Texture Algorithms : (a) Reaction diffusion - horse , (b) An algorithm by Miyata – Edo Castle >
A Cellular Texture Basis Function (6) • New Set of Texture Basis Functions (A Cellular Texture Basis Function) • 2가지 기초 개념. • “feature points” 를 R3영역에 흩어 뿌리는 것. • “local points”의 분포도에 따른 scalar function을 만드는 것. • local points 의 분포를 사용하는 또 다른 예 ( Bombing, Lewis Methods…) • The Perlin’s noise basis function과 같이 precomputation 이나 table storage 없이도 효과적인 noise의 표현과 계산이 가능. • 기존의 noise function 보다 매우 다양하고 독특한 효과를 기대할 수 있음.
A Cellular Texture Basis Function (7) • n th-Closet Point Basis Function • Definition • Randomly Distributed Feature Points in R3 • F1(x) : Distance to Closest Feature Point from any Point x in R3 (F1(x) 를 이용해 R3공간에 일반적인 Voronoi region을 형성) Sample location F4 F3 F2 F5 F1 (a) (c) (b) < F1(x) Function : (a) 2D Plane On surface, (b) 2D Plane Off surface, (c) 3D plane >
A Cellular Texture Basis Function (8) • F2(x): Distance to Second Closest Feature Point • Fn(x): Distance to n th Closest Feature Point • Fn(x) Properties • Fn(x) 는 항상 continuous 함. • Fn(x) 는 n에 비례하여 항상 증가.( nondecreasing ) -> , ( Ingeneral : ) • The gradient of Fn(x) : simply the unit direction vector from the n th Closest Feature Point to x.
A Cellular Texture Basis Function (9) • Computation of Fn(x) • How are feature points spread through space ? : Points 가 명확한 grid-like pattern을 피하면서 균등하게 분포. -> Lattice Points 를 jittering 해도, 기본적인 Lattice 구조는 odd patterns 형태가 되도록 함. • Poisson Distribution 적용 • Poisson Distribution (단위 시간당 발생건수: 확률변수 X, 단위 시간당 평균 건수: . • the simplest distribution, 정확한 확률분포를 위해 사용. • 가 적을수록 왼쪽으로 치우치고, 클수록 좌우대칭을 이루는 형태의 분포를 갖게 됨.
A Cellular Texture Basis Function (10) • Cubic Partitioning of R3. • integer coordinates 로 나눔.… (ex. point(1.2, 3.33, 2.3) 는 cube(1, 3, 2)내 에 표현됨 • 각 cube 는 0, 1, 2, 또는 더 많은 feature points 를 포함. • Set Mean Density, lamda . • 의 변화를 통해 알고리즘을 조정.( = 3 일 때, 가장 효과적임.) • Computation Probability of m points occurring in a unit cube ( 각 unit cube 안에 point 가 생길 확률변수, m, feature point의 평균 밀도, . ) • easily calculate… ,
A Cellular Texture Basis Function (11) • Random Number Based on Cube Indices (i, j, k) – 32bit Int. • Generate P • Determine m (보통 m = 4인 경우를 사용) • For m Points Generate (x, y, z) – range (0 ~ 1) : random 하지만 각 cube에서 fix 되도록 함. -> 가장 가까운 feature points 와 cube 공간 안에 있는 points 에 대한 Fn 의 값을 구하게 됨. P(x) x < Probability Density: lambda = 3 (gray), and 4 (black) >
A Cellular Texture Basis Function (12) • Keep List Of n Closet Points In Local Cube • Check Neighboring Cubes : Some Optimization Possible Here • Return Distance, Direction and ID Info of n Closet Feature Points • feature points + direction vector + ID Info -> return -> 이 function을 Solid Textures에 적용할 때 유용함. • Fast Computation • Fast Linear Congruential Generator(LCG) – 난수발생기 • square root 연산을 피하기 위해 squred distance를 sorting 함. • 적절한 의 값 조절 ( = 3일 때, 최적)
A Cellular Texture Basis Function (13) • Application To Texturing (a) F1(x) - 매우 simple - 직접 color spline and bump 로 map 가능 - feature points 주위로 분포 -> 기본적인 voronoi 영역 - example : Polka Dots (물방울 무늬) (b) F2(x)(좌) & F2(x)(우) - 빠른 변화와 내부구조를 형성 - 직접 color spline and bump 로 map 가능하지만 linear combination 을 형성함으로써 더 흥미로운 패턴 생성. < Fn(x) Function 1 >
A Cellular Texture Basis Function (14) (c) F2(x) – F1(x) ; 2D - 모든 x에 있어서 F2(x) > F1(x) - 직접 color spline and bump 로 map 가능 - F2(x) = F1(x) 에서 0 값을 가지고 voronoi boundaries 에서 나타남 - to make latticework of connected ridges, forming a vein-like tracery (d) Constant Base Color plus Fractal Noise over F1 Regions, F2(x) – F1(x) Bump Mapping ; 3D Flagstone texture - F1 function이 가장 가까운 feature point 의 identity 를 나타내는 고유의 ID number를 return 시키면, 이 number는 voronoi cell 에 걸쳐 일정한 values를 만들게 됨. -> 즉 하나의 cell 을 일정한 색으로 shade 가 가능. - F2(x) - F1(x) 에 기초한 Bump Mapping 적용 - 각 cell 에서 fractal noise 로 얼룩 표현
A Cellular Texture Basis Function (15) (e) Linear Combination of Fn : C1F1 + C2F2 + C3F3 + C4F4 (Flagstone-like area) - low n basis function 의 combinations - Cn의 변화를 주어 생성.
A Cellular Texture Basis Function (16) (f) Fractal Version - noise 로 fractal noise 를 만드는 것과 같음. - different weight & Scaling factors 를 이용하여 다양한 표현 - computing a function : range of i (i=0~5) - 위의 Gn을 color and bumps에 대한 index로 사용 * upper - spotted pattern, F1의 fractal version - tongue : fractal noise 사용 - body : linear gradient 가 color variation 을 위해 적용 * lower - More Fractal versions ; Cut Tori
A Cellular Texture Basis Function (17) (g) F1 Fractal Crumple : Seawater (upper) - 가장 유용한 version - Bump Map 으로만 응용 시, 종이나 tinfoil(쵸코렛이나 담배 등을 싸는 은종이) 처럼 surface 를 ‘crumple’시킴. - 부드러운 surface 를 break up 하는 방법으로 예술가들 에게 굉장히 인기. - fractal noise bumps 와는 달리 subtle roughening을 제 공. - 이 crumple appearance를 가진 reflective, bumped map plane은 바닷물과 매우 흡사하게 나타남. (f) More Distance Metrics - Manhattan Metric (lower) - A radial coordinate version : ‘Death Star’ (g) Spatially Varying Density - Object Geometry - 보통 algorithm 은 3D에서 compute 되지만, 2D variants는 속도를 빠르게 함. - 4D variants 는 animated 분야에 사용될 수 있지만 속도가 매우 떨어짐.
A Cellular Texture Basis Function (18) • Conclusion • 많은 상품에 적용해 본 결과, 실질적인 texture design 에서 매우 유용함. • Perlin’s fractal noise 를 보완하며, noise 가 사용되는 어떤 algorithm 에도 ‘A Cellular Texture Basis Function’ 을 적용가능. • 시각적인 효과가 늘 똑같지 않고, image 를 더 다양하게 한다는 점에서 가치가 있음.