texture modeling a procedual approach #01

41
Texturering & Modeling a Procedual Approach 김김김

Upload: carrotcg

Post on 25-Jan-2015

829 views

Category:

Documents


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Texture Modeling a Procedual Approach #01

Texturering & Modelinga Procedual Approach

김정근

Page 2: Texture Modeling a Procedual Approach #01

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?

Page 3: Texture Modeling a Procedual Approach #01

Chapter 1

Introduction

Page 4: Texture Modeling a Procedual Approach #01

4

Procedural Techniques and Computer Graph-ics

역사적 흐름– 컴퓨터 그래픽의 역사와 함께 사용

– 1980 년대 중반에서 후반 동안

• 현실적인 질감 ( 나무 , 돌 , 대리석 등 ) 을 표현

• 물 , 연기 , 증기 , 행성

– 렌더맨의 Shading 언어의 개발로 절차적 기법의 사용이 확대

– 현재 대부분의 상용 렌더링 및 애니메이션 시스템은 절차적 인터페이스도 제공

Page 5: Texture Modeling a Procedual Approach #01

5

Procedural Techniques and Computer Graph-ics

강력한 CPU

Program-mable

Graphics Processors

인터렉티브하고 복잡한 절차적 모델과 효과를 구상하고 실현할 수 있는 시대

Page 6: Texture Modeling a Procedual Approach #01

6

What Is a Procedural Technique?

컴퓨터가 만든 모델이나 효과의 일부 특성을 지정하는 코드 세그먼트 또는 알고리즘

Page 7: Texture Modeling a Procedual Approach #01

7

What Is a Procedural Technique?

Page 8: Texture Modeling a Procedual Approach #01

8

What Is a Procedural Technique?

Page 9: Texture Modeling a Procedual Approach #01

9

The Power of Procedural Techniques

Abstraction( 추상화 )

Page 10: Texture Modeling a Procedual Approach #01

10

The Power of Procedural Techniques

Page 11: Texture Modeling a Procedual Approach #01

11

The Power of Procedural Techniques

Page 12: Texture Modeling a Procedual Approach #01

12

The Power of Procedural Techniques

Page 13: Texture Modeling a Procedual Approach #01

13

The Power of Procedural Techniques

추상화가 가능하다 – 적재적소에 만들어진 함수나 알고리즘을 평가한다 .

데이터를 줄일 수 있다– 디테일이 명시적 이진 않지만 암시적으로 절차적인 데이터를 얻을 수 있다

파라미터를 컨트롤 할 수 있다– 파라미터의 추가로 디테일에 양을 늘릴 수 있다

절차적 기술에 내제하는 뜻밖의 재미를 얻을 수 있다– 예기치 않은 동작 절차 , 확률적 과정

유연성을 제공한다 – 물리학의 복잡한 법률에 제약되지 않고도 제작할 수 있다

정확한 예술적인 효과를 자연 법칙을 시뮬레이션하여 제작할 수 있다

Page 14: Texture Modeling a Procedual Approach #01

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, 절차적 모델링 , 절차적 애니메이션

Page 15: Texture Modeling a Procedual Approach #01

Chapter 2

Building Procedural Textures

Page 16: Texture Modeling a Procedual Approach #01

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

Page 17: Texture Modeling a Procedual Approach #01

17

Introduction

더 나은 렌더링을 하기위해 좀 더 나은 방법을 찾고 있으며 합성 영상의 리얼리즘을 향상시키기 위해 노력

Shading

– 사용자 지정 Surface 속성과 셰이딩 모델에서 픽셀이나 음영 샘플의 색상을 계산하는 과정

Texturing

– Surface 의 형상에 실제로 존재하지 않는 Surface 의 세부 모양을 주기 위해 지점에서 지점으로 Surface 성질을 변화하는 방법

Page 18: Texture Modeling a Procedual Approach #01

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

Page 19: Texture Modeling a Procedual Approach #01

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

Page 20: Texture Modeling a Procedual Approach #01

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 의 단순화된 형태

Page 21: Texture Modeling a Procedual Approach #01

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

Page 22: Texture Modeling a Procedual Approach #01

22

Texture

Blinn (1978) 은 Geometry 의 수정 없이 Bump 의 모양을 시뮬레이트 하기 위한 bump map-

ping 을 도입– Normal 의 결과가 Shading 계산에 사용될 때 Surface 는 Bum 와 indentations 을 가짐

– 실루엣에서 볼 수 있는 건 아닌 Shading Variations 임

Cook (1984) 은 Displacement Mapping 을 소개

Page 23: Texture Modeling a Procedual Approach #01

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 를 사용

Page 24: Texture Modeling a Procedual Approach #01

24

Texture

Peachey 과 Perlin : 2D Texture 의 대안으로 Solid Textures (Space-Filling Textures) 을 소개– Solid Texture Mapping : 공간 속에 가상적인 공간을 만들어 그 속에 오브젝트를 담아 둔다는 개념

Page 25: Texture Modeling a Procedual Approach #01

25

Texture

Pelting (Piponi and Borshukov, 2000))– 임의 하위구분으로 surface model 에 seamless texture mapping

Pedersen(1995) Mapping 의 왜곡을 최소화하는데 도움을 주며 상호작용하게 Surface 에 Tex-

ture 를 Patch 할수 있게 함

Page 26: Texture Modeling a Procedual Approach #01

26

Texture

Praun, Finkelstein, and Hoppe (2000) “lapped Textures”– Swatches 의 Orientation 과 Scale 의 가이드에 의해 사용자 정의된 Vector Field 에 따라 , Texture 의 여러 작은 Swatches 는

중복 방식의 Surface 에 위치함

Page 27: Texture Modeling a Procedual Approach #01

27

Procedural Texture

Texture 맵핑의 초기부터 다양한 텍스처 이미지를 생성하는 대신 스캔하거나 그것을 그리는 데 합성 질감 모델을 사용

Blinn 과 Newell (1976) Fourier 합성을 사용

Fu and Lusy (1978) 는 문법 기반 Texture 생성 기법을 제안

Schacter 와 Ahuja (1979) 와 Schacter 비행 시뮬레이터를 위한 Texture 이미지를 생성하는 각종 푸리에 합성 및 확률적 모델을 사용

Page 28: Texture Modeling a Procedual Approach #01

28

Procedural Texture

Fournier, Fussell, and Carpenter (1982) and Haruyama and Barsky (1984)

은 fractal 을 사용하여 Texture 를 생성하는 방법을 제안

Gagalowicz, Ma 1985; Garber 1981 는 Texture 를 제현한 통계 Texture 모델을 개발

Page 29: Texture Modeling a Procedual Approach #01

29

Procedural Texture

Cook (1984) 은 Shader Tree 를 소개 : 절차적 이미지를 생성하는 것에 가까운 첫번째 시스템중 하나– 광원 , atmosphere 을 통한 감쇠 뿐 아니라 SurfaceSurface 에 다른 Shading 모델의 사용을 가능하게 함

– Shading 모델에 대한 입력을 절차적으로 조절

– Color and transparency Textures, reflection mapping, bump mapping, displacement mapping,

and Solid texturing 등등 모든 쉐이드 트리를 사용하여 구현할수 있음

Page 30: Texture Modeling a Procedual Approach #01

30

Procedural Texture

Perlin (1985) 은 절차적 Texture 를 제작하는 Language 를 설명– 오늘날 사용하는 절차적 Texture 의 더 대중적인 클래스의 토대를 마련

– 노이즈를 기반으로 초기의 확률적 Texture 를 제작

Turk (1991) 와 Witkin 와 Kass (1991) 은 동물의 껍질에서 착색 패턴을 만드는 생화확적 프로세스에서 영감을 얻어 합성 질감 모델을 설명

Page 31: Texture Modeling a Procedual Approach #01

31

Procedural versus Nonprocedural

어떤 Texture 가 절차적인가 ? : 절차적인 Texture 의 정의는 파악하기 힘들다

데이터 구조를 설명하는 Entities 와 구별하기 위해 컴퓨터 과학에서 사용

알고리즘을 변경하기 보다는 Parameters 나 Input 의 변경으로 이루어짐

디지털이나 페인트 이미지가 아닌 프로그램 또는 모델로부터 합성 생성함

때로는 디지털이나 페인트 이미지가 절차적 Texture 사이에 포함될 수 있음

좋은 절차적 Texture 는 이미지 Texture 의 절차적 조합 수정 또는 왜곡을 기반으로 할수

있음

Page 32: Texture Modeling a Procedual Approach #01

32

Implicit and Explicit Procedures

Implicit Explicit

직접 모양을 이루는 지점을 생성특정 지점에 대한 Query 에 절차적인 Answers 를 주는 방식

Isocurve (in 2D)

Isosurface (in 3D)

Page 33: Texture Modeling a Procedual Approach #01

33

Implicit and Explicit Procedures

Unit Circle 의 간단한 정의 = isocurve

Page 34: Texture Modeling a Procedual Approach #01

34

Implicit and Explicit Procedures

Implicit Explicit

polygons / parametric curves patches자연적인 돌 질감 , 구름 , 안개 등

Depth buffer renderersRay tracers

* Texture 절차가 아닌 렌더러에 의해 결정

Page 35: Texture Modeling a Procedual Approach #01

35

매우 compact 하다 고정 해상도가 없다 .

고정 면적이 없다 파라미터를 가진다

Advantages of Procedural Texture

Page 36: Texture Modeling a Procedual Approach #01

Disadvantages of Procedural Texture

36

Build 하고 Debug 하기어려울 수 있음

결과를 예측하는 것이 어렵다

저장된 Texture 이미지를 억세스하는 것보다 느릴 수 있다

앨리어싱의 문제

Page 37: Texture Modeling a Procedual Approach #01

37

The RenderMan Shading Language

Shading 모델과 절차적 텍스처를 위한 프로그램 코드를 쓸 수 있는 특별한 용도의 Shad-

ing 언어

Cook(1984) 에 기술된 Shader Tree 에서 유래한 것

문법은 C 와 같지만 Shading 언어가 포함

Shading 언어는 렌더맨 Renderer 에 의해 수행되는 음영계산을 프로그래밍할 수 있음

Page 38: Texture Modeling a Procedual Approach #01

38

The RenderMan Shading Language

Page 39: Texture Modeling a Procedual Approach #01

39

What If You Don’t Use RenderMan?

절차적 Texture 에 관심이 있는 다양한 연령층을 대상

렌더맨은 절차적 쉐이더를 표현할 수 있는 편리한 방법

절차적 텍스처 빌딩 블록 함수 기능의 많은 C 언어 구현에 대해 설명

이미지 텍스처에 액세스하는 기능을 제공

– 다른 Renderer 를 사용한다면 그것에 맞게 Texture 함수를 변환할 수 있어야 함

Page 40: Texture Modeling a Procedual Approach #01

Q & A

Page 41: Texture Modeling a Procedual Approach #01

감사합니다