61
Texturering & Modeling a Procedual Approach 김김김

Practical methods for texture design web

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Practical methods for texture design web

Texturering & Modelinga Procedual Approach

김정근

Page 2: Practical methods for texture design web

Chapter 6

Practical Methods for Texture Design

Page 3: Practical methods for texture design web

3

AgendaThe User Interface

Parameter Ranges

Color Table Equalization

Exploring the Parameter Domain

Previews

Efficiency

Tricks, Perversions, and Other Fun Texture Abuses

Volume Rendering with Surface Textures

Odd Texture Ideas

2D Mapping Methods

Where We're Going

Page 4: Practical methods for texture design web

4

The User Interface

흥미로운 알고리즘을 만드는 것은 절반의 성공

Page 5: Practical methods for texture design web

5

The User Interface

파라미터 정의사용자가 억세스 할 수 있다는 것을 간과해서는 안된다 .

텍스쳐 유용성사용용도와 계획에 따라 더 유용하게 사용할수 있다

신중한 디자인더 쉽게 사용하게 만들수 있다 .

Page 6: Practical methods for texture design web

6

파라미터의 허용 범위에 대한 제안을 제공쉬운 예로 색상 또는 퍼센티지 레벨 등등

Parameter Ranges The User Interface

Page 7: Practical methods for texture design web

7

Parameter Ranges The User Interface

미스터리 상수“55 와 107 사이에 있을 때만 유용한 패턴을 만드는 “ squiggliness” 한 파라미터

즉석에서 만든듯한 코드프로그래머가 완전히 이해하지 못하고 제작한 것처럼 보일 때

직관적인 내부의 범위가 아닌0 에서 1 사이의 숫자를 입력하면 특정 범위를 매핑하는 선형변환을 사용

Page 8: Practical methods for texture design web

8

Parameter Ranges The User Interface

L + x (H + L)X 가 0 그리고 1 사이라면 L 그리고 H 로부터 값을 입힐수 있다

RGB꼭 0 – 1 일 필요는 없다 RGB 는 0 – 255 값을로 입력하는 것이 가장 쉬운 방법이다 .

일반적인 상식 선에서 정해서 사용한다

Page 9: Practical methods for texture design web

9

Color Table Equalization The User

Interface

룩업테이블 안에 프랙탈 노이즈 값을 공급 ...룩업테이블은 어떻게 만드나 ?

Page 10: Practical methods for texture design web

10

Color Table Equalization The User

Interface

선택한 컬러가 얼마나 영향을 주는지아는 것은 어렵다

프랙탈 노이즈에서 -0.5 보다 아래 값은 검은색 , 0.5 보다 위의 값은 흰색 그사이는 부드러운 회색

어디까지가 회색인걸까 ?

Page 11: Practical methods for texture design web

11

Color Table Equalization The User

Interface

“upper ” 20% “lower” 20%

“Gray Gradient” 60%

Page 12: Practical methods for texture design web

12

Color Table Equalization The User

Interface

노이즈 레벨을 움직이는 2 단계

노말라이즈

비율의 값을 매핑 테이블로 만들기

Page 13: Practical methods for texture design web

13

Color Table Equalization The User

Interface

F = normalized fractal noise value

L = largest scale size

s = size ratio between successive scales (usually

around 0.5)

a = amplitude ratio between successive scales

(usually around 0.5)

n = number of scales added (usually between 3 and

10)

x = hit location (a vector)

Page 14: Practical methods for texture design web

14

Color Table Equalization The User

Interface

배열안의 프렉탈 노이즈의 많은 임의의 값을 저장250,000 샘플을 계산 더 많을 수록 좋다 : 한번에 계산되므로 속도는 문제가 아니다 .

오름차 순 배열로 값을 정렬

Page 15: Practical methods for texture design web

15

Color Table Equalization The User

Interface

Lookup table 텍스쳐 코드에서 100000 조회 값을 저장할 필요가 없다 !

11 단계로 균등하게 간격 샘플 및 샘플 사이의 선형 보간을 저장

Page 16: Practical methods for texture design web

16

Exploring the Parameter Domain The

User Interface

적절한 파라미터의 결정

이전 값을 사용잘되어 있는 값을 사용하는것은 처음부터 시작해야 하는 어려움을 최소화 할수 있다 .

지식을 활용제작된 텍스쳐에 대해 잘 이해하고 적합한 세팅을 통해 정보를 제공이론에 가까운 파라미터를 설정하기 위해 경험과 판단력을 사용하지만 이것은 어려울수 있다 .

심하게 변경랜덤 현상으로 인해 일어나는 효과는 떄로는 매우 효과적일수 있다 .

Polish 단계표면이 현재 좋아보인다면 파라미터를 변경하면 완벽한 표면으로 보이게 함

Page 17: Practical methods for texture design web

17

Exploring the Parameter Domain The

User Interface

적절한 파라미터의 결정

각 텍스쳐의 파라미터 설정을 연구한 것은 파라미터 설정 라이브러리에 장기적인 축척

Page 18: Practical methods for texture design web

18

Previews The User Interface

Generate lowresolution tests!200 x 200 픽셀정도가 적당

테스트 그리고 테스트텍스쳐를 개발하는 것 특히 텍스쳐의 움직이는것을 실행하는 것은 고통스럽다 .

프리뷰를 설계파라미터와 텍스쳐를 편집

Page 19: Practical methods for texture design web

19

Previews The User Interface

MentalMill

Page 20: Practical methods for texture design web

20

Efficiency

복잡한 계산복잡한 표면은 그것을 정의 하는 복잡한 계산을 요구한다

최적화 ?CPU 성능 향상으로 C 코드를 최적화하는데 엄청난 노력을 지출하는것은 실제로 비생상적

“Speedup tricks” This was important in the “good old days” of 25 MHz processors.

효율성효율성은 중요 특히 캐싱과 안티알리아싱 , 알고리즘에 더 집중

Page 21: Practical methods for texture design web

21

TRICKS, PERVERSIONS, AND OTHER FUN TEXTURE ABUSES

좀더 창의적으로 ...

어떤 함수가 (x,y,z) 좌표를 지남

현재 서피스 특성이 있음

몇몇의 사용자 파라미터가 존재

내부 Function 을 기반으로 수정

Page 22: Practical methods for texture design web

22

Volume Rendering with Surface Textures TRICKS, PERVERSIONS, AND OTHER FUN TEXTURE ABUSES

표면 텍스쳐를 가지고 진짜 볼륨텍스쳐로 바꾸는 것

구현 방법광선이 어떤 방향으로부터 도달하고 있는지에 대한 정보를 담고 있는 텍스쳐를 사용하고유저가 스피어 같은 서피스 타입에서만 텍스쳐를 적용할거라고 가정

자세한건 Visual simulation of clouds (1985) by Geoffrey Y. Gardner 참조

트릭광선의 히트 포인트 , 광선의 방향을 알고 있기 때문에 , 직접 스피어에 부딪힌다고 가정하면광선이 스피어를 통과하는 한 정확한 광선의 경로를 알수 있게 된다

Page 23: Practical methods for texture design web

23

Volume Rendering with Surface Textures TRICKS, PERVERSIONS, AND OTHER FUN TEXTURE ABUSES

광선의 정보광선의 정보 를 가지고 볼륨렌더링을 수행할때 최종 출력 색상으로 서피스 컬러를 사용하기만 하면 된다 .* 이 정보는 안개함수의 분석통계 , 3D 볼륨 밀도에 대한 수치통계 또는 일부 다른 볼륨 렌더링 기법이 될 수도 있다

표면의 Emittance ( 단위 면적당 빛등의 방사력 )

렌더러에서 이 Emittance(Luminosity 라고도 부름 ) 을 유저로 하여금 정의할수 있도록 해주고나 RGB Surface Color 를정의할수 있도록 허용한다 .볼륨밀도가 계산된 Intensity 에 이 표면 색상을 설정하면 Gas 형태가 완료 (Chapter 7)

가스는 가스를 정의하는 스피어 안에 담겨 있어야 하지만 어떤 각도에서도 볼수 있는 진정한 3D 효과이다 .

단 카메라의 움직임이 가스의 부피 밀도에 영향을 줄 수 없어야 한다 .

Page 24: Practical methods for texture design web

24

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

텍스쳐의 색상을 제어하는 루틴텍스쳐의 능력을 생각하면 오브젝트 표면에 직접 색상을 적용하는 것보다 텍스쳐를 사용하는 것이 더 유용호스트 렌더러가 텍스쳐로 현재 서피스 색상을 전달하는 경우 그 색상을 조작할수 있는 루틴을 디자인

예를 들어

감마 보정 텍스쳐

“fade” 값을 가진 솔리드 텍스쳐

RGB to HSV

Page 25: Practical methods for texture design web

25

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

구조화된 특징을 이용구조화된 특징을 이용하여 이미지맵을 더 나은것으로 만들수 있다

예를 들어

시계 또는 계산기와 같은 LED display (Chapter 8)

텍스쳐는 파라메터 인자로 10 진수를 사용하고 미리 시뮬레이트 해놓은 7 개 구역 숫자 위에 표시 !

레이더 텍스쳐끈임없이 원주변을 도는 선과 레이더의 깜빡거리는 신호를 점멸

Page 26: Practical methods for texture design web

26

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Mandelbrot 집합그냥 복소수 평면에 히트포인트의 XY position 를 매핑

Page 27: Practical methods for texture design web

27

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 28: Practical methods for texture design web

28

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 29: Practical methods for texture design web

29

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 30: Practical methods for texture design web

30

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 31: Practical methods for texture design web

31

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 32: Practical methods for texture design web

32

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 33: Practical methods for texture design web

33

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 34: Practical methods for texture design web

34

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 35: Practical methods for texture design web

35

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 36: Practical methods for texture design web

36

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 37: Practical methods for texture design web

37

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 38: Practical methods for texture design web

38

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 39: Practical methods for texture design web

39

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 40: Practical methods for texture design web

40

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Page 41: Practical methods for texture design web

41

Odd Texture Ideas TRICKS, PERVERSIONS, AND OTHER FUN

TEXTURE ABUSES

Weathering 텍스쳐표면에 랜덤하게 바리에이션을 추가

Layering 서피스 이미지에 집착하지 마라 !프랙탈 노이즈는 서피스 밝기를 흐트려 놓기 위해 사용

1 + aF 프랙탈노이즈 값을 F 라할때 이 팩터로 오브젝트 서비스 색상을 Scale 할수 있다a 의 미묘한 값에 따라 서피스의 완벽한 색상에 약간 변화가 주어진다

Page 42: Practical methods for texture design web

42

2DMapping Methods TRICKS, PERVERSIONS, AND OTHER

FUN TEXTURE ABUSES

성능상의 장점렌더링 속도를 높일 수 있으면서도 , 리얼타임 그래픽을 사용하는 비디오게임을 위해 3D 하드웨어에서 프로시쥬얼의 사용을 가능케하며 , 안티알리어싱 문제와 적절한 텍스쳐링 아키텍쳐의 부족을 간단하게 해결한다 .

절차적 기법에서3D 절차적 텍스쳐를 2D 이미지 맵으로 변환하고 렌더러에서 변환된 2D 맵을 활용3D 절차적 텍스쳐의 다양한 기능을 이용

텍스쳐 베이킹포괄적인 용어UV 매핑 모델링 툴로써 더 대중적으로 사용하게 된 툴2D 이미지 위치를 가지고 각 서피스 포인트와 맵핑하며 모델 자체가 각 패치 또는 폴리곤의 UV 값을 인코딩( 즉 이미지 UV 가 Surface Point 와 연결되어 있음 )2D 텍스쳐 샘플 결과로 얼마나 필터할지 , 샘플링을 얼마나 고루게 할지를 선택할수 있음

Page 43: Practical methods for texture design web

43

2DMapping Methods TRICKS, PERVERSIONS, AND OTHER

FUN TEXTURE ABUSES

다양한 왜곡 , 수작업으로 힘든 2D 효과예를 들어 지구의 이미지를 언렙

극좌표 매핑 방법 (polar coordinate mapping method)렌더러가 스피어 표면의 3D XYZ 위치를 사용해서 이미지 지도에 해당 위치에 맞는 2D UV 좌표를 찾을수 있게해 줌

Mercator mapping 이 아닌

“Equal angular mapping”

Mercator mapping

Page 44: Practical methods for texture design web

44

2DMapping Methods TRICKS, PERVERSIONS, AND OTHER

FUN TEXTURE ABUSES

2D 맵으로의 변환

3D 맵으로의 역변환

Page 45: Practical methods for texture design web

45

2DMapping Methods TRICKS, PERVERSIONS, AND OTHER

FUN TEXTURE ABUSES

구현농구공은 구형의 표면 Function 을 절차적으로 bruteforce( 전수검사 ) 하는 방식으로 하는 알고리즘을 가지고 정의 -> 포인트가 줄무늬인지 아닌지 여부를 확인

구형의 표면위에 분포된 포인트들이 담긴 큰 테이블은 샘플지점이 표면에 “ Pip” 가 있는지 조사

역 구면 매핑 변환은 텍스쳐맵의 pixel 들을 루프돌기 위해서 사용3D 표면 Point 가 line 이나 pip 내에 위치하고 있는지 에 따라 이미지맵은 회색으로 설정

이렇게 만들어진 텍스쳐맵을 렌더러에서 직접 사용

장점pre-distortion 한 이미지맵이 wrapping 때 렌더러의 subsequence 를 왜곡 (distortion) 을 한 것과 정확하게 보완Seam 도 표시되지 않는다 , 그리고 이미지를 잡아 늘리지 않아도 된다 .

Page 46: Practical methods for texture design web

46

Where We’re Going

컴퓨터그래픽에서 Procedural texturing (and modeling) 의

미개척 분야 (frontier) 는틀림없이 존재한다 .

Page 47: Practical methods for texture design web

47

Where We’re Going

컴퓨터의 발전 = 렌더링 스피드의 향상

복잡한 매터리얼과 지오메트리의 생산이 가능

Page 48: Practical methods for texture design web

48

Where We’re Going

절차적인 도시를 건설하고 1

미터까지 자세히 모든 레벨에서 볼수 있는 행성을 만들 날이 올것이야 !

Page 49: Practical methods for texture design web

49

Where We’re Going

That day has already come.

Page 50: Practical methods for texture design web

50

Where We’re Going

Page 51: Practical methods for texture design web

51

Where We’re Going

절차적 정의꾸준히 시간이 지남에 따라 점점 더 중요해지고 있음

Page 52: Practical methods for texture design web

52

정말 미개척분야가 있을까 ? Where We’re Going

고전 텍스처링 기법의 여러 “결함 (hole)” 을 참조간단한 텍스쳐링에서 가장 큰 차이 중 하나는 외관을 변화시키기 위한 환경 ( 특히 object geome-try) 검사보다 정보화된 텍스쳐를 위한 방법이다 .

Page 53: Practical methods for texture design web

53

예를 들면 Where We’re Going

“Generating Textures on Arbitrary Surfaces Using Reaction-Diffusion”

by Greg Turk(1991)

Page 54: Practical methods for texture design web

54

예를 들면 Where We’re Going

스케일은 곡률의 기반으로 크기변경높은 곡률은 어디인가 플레이트는 유연한 영역을 유지하고 작아야 할 필요가 있다 .

이런 배율을 하기위한 좋은 방법은 ?

오브젝트 지오메트리에 의해 변조될수 있을까 ?

텍스쳐가 지오메트리를 어떻게 검사하나 ?

이용은 할수 있었지만 이분야에서 더 큰 진전은 없었다

Page 55: Practical methods for texture design web

55

블랙박스 텍스쳐 Where We’re Going

“ 항상 많은 제어 파라미터 , 숫자로 상징되는 텍스쳐”텍스쳐가 성장하면 컨트롤수도 성장한다 . 이러한 파라미터가 30~40 개를 가지는건 신기한것이 아니다 .

사용자가 다루기 어려움신중하게 선택하고 레이블이 붙어도 많인 레이어 그리고 노브는 취급하기 어려우며 좋은 사용자 인터페이스로 최소화 해도 사용자 ( 특히 nontechnical 아티스트 ) 를 힘들게 할ㄷ것이다 .

그럼에도 불구하고 계속 사용될 가능성이 높음프로그래머를 위한 텍스쳐를 설계하는데 편리한 방법이러한 파라미터를 어떻게든 추상화하거나 사용자로부터 숨길수 있어야 함

Page 56: Practical methods for texture design web

56

더 나은 인터페이스에 대한 고민 Where

We’re Going

이미지의 모음으로 제공사용자가 많은 파라미터를 다루지 않고 각각의 이미지가 다른 파라미터 ( 사용자로부터 숨겨져 있는 ) 를 사용해서 계산하며 사용자의 경험에 따른 순위와 종류에 따라 확인하며 사용하기 때문에 아티스트 시점에서 매력적이며 사용이 쉽다 .

추상화임의의 복잡한 “파라미터” 를 숨길수 있다

쉽지만은 않다이미지 모음으로 제공하기 위한 파라미터를 선택하기 위해 어떤것이 최선인지 정하고 그 생산을 이끌기 위해 사용자의 환경설정을 사용하는 방법을 결정하는것은 어려운 질문이다 .

“ 숫자파라미터벡터 기반의 강력한 방법의 개발은 절차적 텍스쳐가 더 유용하기 위한 가장 중요한 도구중에 하나가 될것”

Page 57: Practical methods for texture design web

57

더 나은 인터페이스에 대한 고민 Where

We’re Going

특히 공부가 필요한 두 주제

파라미터의 상관관계를 보완하는 것

텍스쳐 파라미터 스페이스2D 좌표 , 3D 좌표 ...

Page 58: Practical methods for texture design web

58

앞으로는 ...? Where We’re Going

70년대Surface 가 어떻게 보이는 문제가 주요 미개척 분야

80년대Lighting 및 Surface 속성 (radiosity 와 BRDF 표면 모델의 개발 포함 )

90년대효율적인 global lighting 와 image-based rendering

현재의 10년 ...(2000년 )Procedural Object 와 Surface 정의

Page 59: Practical methods for texture design web

59

참조

Page 60: Practical methods for texture design web

Q & A

Page 61: Practical methods for texture design web

감사합니다