texture modeling a procedual approach #01
DESCRIPTION
TRANSCRIPT
Texturering & Modelinga Procedual Approach
김정근
2
Agenda
INTRODUCTION– PROCEDURAL TECHNIQUES AND COMPUTER GRAPHICS
• What Is a Procedural Technique?• The Power of Procedural Techniques
– PROCEDURAL TECHNIQUES AND ADVANCED GEOMETRIC MODELING
BUILDING PROCEDURAL Textures– INTRODUCTION
• Texture• Procedural Texture• Procedural versus Nonprocedural• Implicit and Explicit Procedures• Advantages of Procedural Texture• Disadvantages of Procedural Texture• The RenderMan Shading Language• What If You Don’t Use RenderMan?
Chapter 1
Introduction
4
Procedural Techniques and Computer Graph-ics
역사적 흐름– 컴퓨터 그래픽의 역사와 함께 사용
– 1980 년대 중반에서 후반 동안
• 현실적인 질감 ( 나무 , 돌 , 대리석 등 ) 을 표현
• 물 , 연기 , 증기 , 행성
– 렌더맨의 Shading 언어의 개발로 절차적 기법의 사용이 확대
– 현재 대부분의 상용 렌더링 및 애니메이션 시스템은 절차적 인터페이스도 제공
5
Procedural Techniques and Computer Graph-ics
강력한 CPU
Program-mable
Graphics Processors
인터렉티브하고 복잡한 절차적 모델과 효과를 구상하고 실현할 수 있는 시대
6
What Is a Procedural Technique?
컴퓨터가 만든 모델이나 효과의 일부 특성을 지정하는 코드 세그먼트 또는 알고리즘
7
What Is a Procedural Technique?
8
What Is a Procedural Technique?
9
The Power of Procedural Techniques
Abstraction( 추상화 )
10
The Power of Procedural Techniques
11
The Power of Procedural Techniques
12
The Power of Procedural Techniques
13
The Power of Procedural Techniques
추상화가 가능하다 – 적재적소에 만들어진 함수나 알고리즘을 평가한다 .
데이터를 줄일 수 있다– 디테일이 명시적 이진 않지만 암시적으로 절차적인 데이터를 얻을 수 있다
파라미터를 컨트롤 할 수 있다– 파라미터의 추가로 디테일에 양을 늘릴 수 있다
절차적 기술에 내제하는 뜻밖의 재미를 얻을 수 있다– 예기치 않은 동작 절차 , 확률적 과정
유연성을 제공한다 – 물리학의 복잡한 법률에 제약되지 않고도 제작할 수 있다
정확한 예술적인 효과를 자연 법칙을 시뮬레이션하여 제작할 수 있다
14
Procedural Techniques and Advanced Geometric Modeling
advanced geometric modeling 은 본질적으로 절차적
Grammar-based models, graftals, L-systems 등 복잡한 모델을 시뮬레이션 할때 파라미터 규격을 가짐
Implicit surface models (Meta-balls, Soft Object 등 ) 은 전통적인 기법으로 설명하기 어려운 물체– electron density clouds 의 이미지를 생성하기 위해 Blinn 에 의해 도입
– parametric surfaces 보다 soft objects 를 모델링하거나 애니메이팅할때 뛰어 난 유연성을 제공
– 대표적인 예인 파티클 시스템의 생성 , 위치 , 소멸은 알고리즘에 의해 제어됨
advanced geometric modeling 이 책의 주 목적은 아니지만 더 나은 기법으로 진화하기 위해서 이책에 설명되어 있는 기술과 결합할수 있음
주요 초점은 절차적 Texture, 절차적 모델링 , 절차적 애니메이션
Chapter 2
Building Procedural Textures
16
Building Procedural Textures
기하학적 계산이 절차적 텍스처링에선 필수적
2D 및 3D Point, Vector, 데카르트 좌표시스템 , 내적 , 외적 및 homoge-
neous transformation matrices 등
RGB 의 표현 , Simple Diffuse 과 Specular Shading Models
http://www.slideshare.net/tahersb/hearn-and-baker-2-d-transfor-
mations
17
Introduction
더 나은 렌더링을 하기위해 좀 더 나은 방법을 찾고 있으며 합성 영상의 리얼리즘을 향상시키기 위해 노력
Shading
– 사용자 지정 Surface 속성과 셰이딩 모델에서 픽셀이나 음영 샘플의 색상을 계산하는 과정
Texturing
– Surface 의 형상에 실제로 존재하지 않는 Surface 의 세부 모양을 주기 위해 지점에서 지점으로 Surface 성질을 변화하는 방법
18
Introduction
Shading
– illumination models, lighting models, 또는 reflection models 등으로 불리는 재질과
빛의 상호 작용을 시뮬레이션
– 일반적으로 물리학을 기반으로 하지만 많은 단순한 가설을 만들어 냄
– 완벽하게 세부적인 물리 모델은 가공하기 어려운 계산을 포함
– Diffuse(Lambertian ) shading : 컴퓨터 그래픽에 최초로 사용한 것
– Specular Reflection shading : Phong, Blinn, Cook and Torrance,
– Anisotropic shading : Kajiya
– 1980 년대 초반 대부분의 연구가 global illumination effects 을 시뮬레이션하는 것으로 전환
– Reflection, refraction, scattering of light, Raytracing, radiosity
19
Texture
Catmull(1974) : 최초의 컴퓨터 그래픽 이미지를 만듬 “Futureworld”
서페이스는 파라미터 패치로 표현
– 패치에 대한 U, V 지점의 파라미터 값은 텍스텨 이미지의 해당 픽셀의 위치를 계산하는데 사용
– Simple Point-Sampling 은 Aliasing artifacts 의 확률이 높아짐 : 정교한 샘플링 / 필터링이 필요
Edwin Catmull
– Z-buffering
– texture mapping
– subdivision surface
– the fast rendering of bicubic patches
20
Texture
Texture 맵핑의 초기부터 다양한 연구자들은 다양한 텍스처 이미지를 생성하는 대신 스캔하거나 그것을 그리는 데 합성 질감 모델을 사용
Blinn 과 Newell (1976) Fourier 합성을 사용
Fu and Lusy (1978) 는 문법 기반 Texture 생성 기법을 제안
Schacter 와 Ahuja (1979) 와 Schacter 비행 시뮬레이터를 위한 Texture 이미지를 생성하는 각종 푸리에 합성 및 확률적 모델을 사용
Blinn 과 Newell (1976) 은 mirrorlike Surface 의 반사를 시뮬레이션 하기 위해 반사 Mapping
을 도입– environment mapping
– RayTracing 의 단순화된 형태
21
Blinn 과 Newell (1976) 은 mirrorlike Surface 의 반사를 시뮬레이션 하기 위해 Reflection
Mapping 을 도입– Environment mapping
– RayTracing 의 단순화된 형태
– Normalized 된 vector R = (x,y,z) 의 Latitide 와 Longitude 각도를 사용하여 Texture 이미지에 억세스
Texture
R = 2(N ⋅ V)N – V
Reflection mapping 절차는 음영 처리되는 지점에 카메라 또는 보는 사람의 ray 로 반사 방향 R 을 계산
Reflection Direction
Surface Normal
Point toward The Viewer
Cube mapped reflection example
22
Texture
Blinn (1978) 은 Geometry 의 수정 없이 Bump 의 모양을 시뮬레이트 하기 위한 bump map-
ping 을 도입– Normal 의 결과가 Shading 계산에 사용될 때 Surface 는 Bum 와 indentations 을 가짐
– 실루엣에서 볼 수 있는 건 아닌 Shading Variations 임
Cook (1984) 은 Displacement Mapping 을 소개
23
Texture
Reeves, Salesin, Cook (1987) : Light Source 의 Position 에서 렌더링된 장면의 Depth Im-
age 를 기반으로 이미지 Texture 를 사용하여 Anti-aliased shadows 를 생산하는 알고리즘을 제시– Percentage Closer Filtering
Gardner (1984, 1985) : 나무 , 지형 그리고 구름의 모델에 Texture 를 추가하는 Si-
nusoidal Functions 의 합계에 의해 생성된 Solid Textures 를 사용
24
Texture
Peachey 과 Perlin : 2D Texture 의 대안으로 Solid Textures (Space-Filling Textures) 을 소개– Solid Texture Mapping : 공간 속에 가상적인 공간을 만들어 그 속에 오브젝트를 담아 둔다는 개념
25
Texture
Pelting (Piponi and Borshukov, 2000))– 임의 하위구분으로 surface model 에 seamless texture mapping
Pedersen(1995) Mapping 의 왜곡을 최소화하는데 도움을 주며 상호작용하게 Surface 에 Tex-
ture 를 Patch 할수 있게 함
26
Texture
Praun, Finkelstein, and Hoppe (2000) “lapped Textures”– Swatches 의 Orientation 과 Scale 의 가이드에 의해 사용자 정의된 Vector Field 에 따라 , Texture 의 여러 작은 Swatches 는
중복 방식의 Surface 에 위치함
27
Procedural Texture
Texture 맵핑의 초기부터 다양한 텍스처 이미지를 생성하는 대신 스캔하거나 그것을 그리는 데 합성 질감 모델을 사용
Blinn 과 Newell (1976) Fourier 합성을 사용
Fu and Lusy (1978) 는 문법 기반 Texture 생성 기법을 제안
Schacter 와 Ahuja (1979) 와 Schacter 비행 시뮬레이터를 위한 Texture 이미지를 생성하는 각종 푸리에 합성 및 확률적 모델을 사용
28
Procedural Texture
Fournier, Fussell, and Carpenter (1982) and Haruyama and Barsky (1984)
은 fractal 을 사용하여 Texture 를 생성하는 방법을 제안
Gagalowicz, Ma 1985; Garber 1981 는 Texture 를 제현한 통계 Texture 모델을 개발
29
Procedural Texture
Cook (1984) 은 Shader Tree 를 소개 : 절차적 이미지를 생성하는 것에 가까운 첫번째 시스템중 하나– 광원 , atmosphere 을 통한 감쇠 뿐 아니라 SurfaceSurface 에 다른 Shading 모델의 사용을 가능하게 함
– Shading 모델에 대한 입력을 절차적으로 조절
– Color and transparency Textures, reflection mapping, bump mapping, displacement mapping,
and Solid texturing 등등 모든 쉐이드 트리를 사용하여 구현할수 있음
30
Procedural Texture
Perlin (1985) 은 절차적 Texture 를 제작하는 Language 를 설명– 오늘날 사용하는 절차적 Texture 의 더 대중적인 클래스의 토대를 마련
– 노이즈를 기반으로 초기의 확률적 Texture 를 제작
Turk (1991) 와 Witkin 와 Kass (1991) 은 동물의 껍질에서 착색 패턴을 만드는 생화확적 프로세스에서 영감을 얻어 합성 질감 모델을 설명
31
Procedural versus Nonprocedural
어떤 Texture 가 절차적인가 ? : 절차적인 Texture 의 정의는 파악하기 힘들다
데이터 구조를 설명하는 Entities 와 구별하기 위해 컴퓨터 과학에서 사용
알고리즘을 변경하기 보다는 Parameters 나 Input 의 변경으로 이루어짐
디지털이나 페인트 이미지가 아닌 프로그램 또는 모델로부터 합성 생성함
때로는 디지털이나 페인트 이미지가 절차적 Texture 사이에 포함될 수 있음
좋은 절차적 Texture 는 이미지 Texture 의 절차적 조합 수정 또는 왜곡을 기반으로 할수
있음
32
Implicit and Explicit Procedures
Implicit Explicit
직접 모양을 이루는 지점을 생성특정 지점에 대한 Query 에 절차적인 Answers 를 주는 방식
Isocurve (in 2D)
Isosurface (in 3D)
33
Implicit and Explicit Procedures
Unit Circle 의 간단한 정의 = isocurve
34
Implicit and Explicit Procedures
Implicit Explicit
polygons / parametric curves patches자연적인 돌 질감 , 구름 , 안개 등
Depth buffer renderersRay tracers
* Texture 절차가 아닌 렌더러에 의해 결정
35
매우 compact 하다 고정 해상도가 없다 .
고정 면적이 없다 파라미터를 가진다
Advantages of Procedural Texture
Disadvantages of Procedural Texture
36
Build 하고 Debug 하기어려울 수 있음
결과를 예측하는 것이 어렵다
저장된 Texture 이미지를 억세스하는 것보다 느릴 수 있다
앨리어싱의 문제
37
The RenderMan Shading Language
Shading 모델과 절차적 텍스처를 위한 프로그램 코드를 쓸 수 있는 특별한 용도의 Shad-
ing 언어
Cook(1984) 에 기술된 Shader Tree 에서 유래한 것
문법은 C 와 같지만 Shading 언어가 포함
Shading 언어는 렌더맨 Renderer 에 의해 수행되는 음영계산을 프로그래밍할 수 있음
38
The RenderMan Shading Language
39
What If You Don’t Use RenderMan?
절차적 Texture 에 관심이 있는 다양한 연령층을 대상
렌더맨은 절차적 쉐이더를 표현할 수 있는 편리한 방법
절차적 텍스처 빌딩 블록 함수 기능의 많은 C 언어 구현에 대해 설명
이미지 텍스처에 액세스하는 기능을 제공
– 다른 Renderer 를 사용한다면 그것에 맞게 Texture 함수를 변환할 수 있어야 함
Q & A
감사합니다