45
Texturering & Modeling a Procedual Approach 김김김

Procedural synthesis of geometry

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Procedural synthesis of geometry

Texturering & Modelinga Procedual Approach

김정근

Page 2: Procedural synthesis of geometry

Chapter 11

Procedural Synthesis of Ge-

ometry

Page 3: Procedural synthesis of geometry

3

AgendaProcedural Geometric Instancing

Parameter Passing

Accessing World Coordinates

Other Functions

Comparison with L- Systems

Ordering

Bounding Volumes

Conclusion

Procedural Geometric Modeling and the Web

Future Work

Acknowledgments

Page 4: Procedural synthesis of geometry

4

Procedural Geometric In-stancing

PGI절차적으로 Scene Graph 내에서 인스턴스를 증가하며

Procedure호출된 인스턴스 노드에 대한 억세스 권할을 가지며

인스턴스화 되는 시점에 Procedure 가 실행

해당 노드의 변화 , 쉐이딩 파라미터를 변경

Scene Graph 내에서 다른 개체 노드를 참조하는 인스턴스를 변경

Global Scene Graph 변수에 억세스 - object-to-world 좌표 변환 매트릭스와 노드 사이의 파라미터 전달

Page 5: Procedural synthesis of geometry

5

Parameter Passing PGI

L-system 개선 실제 값을 사용하여 모양을 변경하는데 사용할 수 있음

Parent 와 Child Geometry 간의 관계를 보다 복잡한 관계로 구성

ParametersInstancing 에서는 새롭지 않은 컨셉

SPHIGS (Simple Programmer's Hierarchical Graphics Standard) 안에서도존재하지만 이전에 구현된것과는 다른 구조로 나누어 제어 하기 위해서도 사용

Page 6: Procedural synthesis of geometry

6

Parameter Passing PGI

“ 파라미터들은 재귀를 허용하기 위해 스택을 사용하여 표준 양식의 인스턴스에 바인딩”

“ 파라미터들은 Transformations 을 변경하거나 ,더 많은 인스턴스들에게로 전달”

Page 7: Procedural synthesis of geometry

7

Example:Inductive Instancing Parameter Passing - PGI

각각의 리스트가 동일한 Element 를 가진네개의 인스턴드들로 구성되지만

각각의 인스턴스의 변환 컴포넌트는 Geometry 를 네 개의 서로 다른 사본으로

묘사하기 위해 다른 값을 가진다 .

Page 8: Procedural synthesis of geometry

8

Example:Inductive Instancing Parameter Passing - PGI

Clump

Instances Instances Instances Instances

Page 9: Procedural synthesis of geometry

9

Example:Inductive Instancing Parameter Passing - PGI

Patch

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Page 10: Procedural synthesis of geometry

10

Example:Inductive Instancing Parameter Passing - PGI

PlotPatch

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Patch

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Patch

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Patch

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

Clump

Instances

Instances

Instances

Instances

“Component 는 지오메트리를 네개의 서로 다른 사본으로 묘사하기위해 다른값을

가짐”

Page 11: Procedural synthesis of geometry

11

Example:Inductive Instancing Parameter Passing - PGI

똑같은 물체를 수십억 개 다룰 때에는인스턴싱의 반복 수행 절차를줄이는 것조차 까다로워 진다

Page 12: Procedural synthesis of geometry

12

Example:Inductive Instancing Parameter Passing - PGI

귀납적인 인스턴싱O(log n) 부터 O(1) 까지 명시적으로 정의된 단계의 순서를 줄이기 위해 instancing 파라미터를 사용

한 개의 리스트를 가지고 있는 n 번째 잔디 grass(n) 를 한개의 오브젝트라고 정의하면 그 정의에 따라서 0 번째 잔디 grass(0) 가 의미하는 바는 한개의 풀잎 인스턴스임이 귀납적으로 유추

Page 13: Procedural synthesis of geometry

13

Example:Inductive Instancing Parameter Passing - PGI

Page 14: Procedural synthesis of geometry

14

Example:Inductive Instancing Parameter Passing - PGI

귀납적인 인스턴싱i 번째 잔디 grass(i) 의 인스턴스 한개는 네개의 풀잎을 가지게 되어 기본 (basis) 단위를 만듬

귀납 instancing 은 프롤로그의 서술적 논리와 형태가 비슷

적당하게 구성된 , 정의된 이름과 Match 되는 것을 찾을때까지 인스턴스 이름을 호출하여 비교할 것

예를 들어 grass(15) 는 grass(0) 과 Match 하지 않지만 grass(n) 과 Match 될 것

Page 15: Procedural synthesis of geometry

15

Accessing

World Coordinates PGI

Object 는로컬 좌표 프레임에서 정의되지만 월드 좌표계로 인스턴스 된다

어떤 상황에서는인스턴스가 글로벌 위치와 방향을 기준으로 Geometry 를 변경해야 하는 경우도 있다

W 행렬 변환Object 의 정의와 특정 인스턴스가 주어졌을때 Object 의 인스턴스화와 맵핑되는 행렬을 W 라고 하면 W 행렬 변환을 통해 로컬 좌표가 월드 좌표로 맵핑된다 .

Page 16: Procedural synthesis of geometry

16

Accessing

World Coordinates PGI

한개의 인스턴스의 범위 안에서 처음 인스턴스화를 시작할 때부터 object-to-world transformation 을 사용할 수 있고 인스턴스의

변환에 영향을 받지 않는다 .

Procedural Geometric Instancing 은 Rotation 에 의한 Scale이

글로벌 위치나 기준에 의존하는 Scale 을 따르는 Rotation 과 달라서 발생되는 Ordering 문제를

해결

Page 17: Procedural synthesis of geometry

17

Example:Tropism

Accessing World Coordinates - PGI

외부 방향성나뭇가지 패턴에 영향을 줌

하향 Tropism 중력을 시뮬레이션해서 처지는 나뭇가지를 표현

측면 tropism 을 이용하면 바람이 불때 나무 모습이 표현

상향 Tropism 햇빛을 향해 성장하는 나뭇가지를 표현

Tropism 방향은 나뭇가지의 로컬 좌표시스템과 관계없이 균일글로벌 원점이 주어졌을때 Tropism 에 영향받는 인스턴스 하나가 Tropism 의 방향으로 그자체를 회전하여 반응할수 있다

Page 18: Procedural synthesis of geometry

18

Example:Tropism

Accessing World Coordinates - PGI

중력의 영향으로 지면 방향으로 시뮬레이션

Page 19: Procedural synthesis of geometry

19

Example:Tropism

Accessing World Coordinates - PGI

Page 20: Procedural synthesis of geometry

20

Example:Tropism

Accessing World Coordinates - PGI

소스코드 수정을 통해다양한 시뮬레이션이 가능하며

Tropism 변수를 Turtle 기반의 L-System 양식에 맞춰 새롭게 파라메터화된 심볼로 포함시킬 수 있음PGI 는 이러한 툴들을 통해 씬을 기술

Page 21: Procedural synthesis of geometry

21

Example:Crop CirclesAccessing World Coordinates - PGI

Prusinkiewicz, James, Mech (1994) turtle 문법에서 월드위치를 얻는 용도의 검색명령어로 “ ?” 를 추가

이 정보는 외부 영향을 기반으로 개발된 L-system 을 제거 ( 가지치기 ) 하는데 사용

월드좌표계로 변환해서 외부영향이 존재하는지를 체크해 볼 수있고 , Geometry 는 거의 근접하게 반응

Circle 이나 teapot 과 같이 texture map(crop map) 을 가지고 implicit 하게 묘사(Reeves and Blau 1985)

Page 22: Procedural synthesis of geometry

22

Example:Geometry MappingAccessing World Coordinates - PGI

Bezier patch 의 정의평면으로 부터 베지어 표면으로 잔디를 맵핑하고잔디 대신 머리카락처럼 가느다란 필라멘트를 사용하면 풍성한 털이나 헤어를 만들수 있다 .

Page 23: Procedural synthesis of geometry

23

Random Numbers Other Functions - PGI

임의성은 거의 모든 절차적 자연 모델링 시스템 안 그리고 자연 안에서 발견되는 혼란을 시뮬레이션할 수 있다 .

임의의 숫자각종 자연 모델링을 하는데 유용하다

표시법 [a,b]a 그리고 b 사이의 분포된 난수가 균일하게 리턴

가우시안 분포난수를 리턴

Perlin Noiseband-limited 확률 변수을 제공하고 scalar-valued   함수는 노이즈로 구현

world 좌표 위치를 사용하여 노이즈 함수의 전형적인 호출이 지정 :noise(W(0,0,0,1))

Page 24: Procedural synthesis of geometry

24

Example:MeadowsOther Functions - PGI

Page 25: Procedural synthesis of geometry

25

Example:MeadowsOther Functions - PGI

험한 초원의 테레인 모델의 1/f2 power 분포의 세 옥타브를 사용

풀은 절차 노이즈 함수에 의해 수정된 변환을 통해 초원에 instanced

잔디의 게재 위치는 더욱 균일하게 random 측면 변환에 의해 perturbed 되며 , 그 방향이 노이즈 함수에 의해 perturbed

단편적인 브라운 운동은 터레인의 다양한 모형을 만듬

Brownian Motion : 액체나 기체안에 떠서 움직이는 미소입자의 불규칙한 운동

Page 26: Procedural synthesis of geometry

26

Example:MeadowsOther Functions - PGI

벡터값 함수 rotate(x, theta, axis) 는 axis 축에 대한 theta 에 의해 벡터 x 가 회전한 것을 리턴

fnoise 의 definition 의 사용은 단순 보간함수에 의한 노이즈 함수의nonisotropic 아티팩트를 감춘다

Page 27: Procedural synthesis of geometry

27

Levels of DetailOther Functions - PGI

Eyepoint

FOV

Linear Resolution

퍼스펙티브의 룰 하에 스크린위의 픽셀의 영역의 지오메트릭 프로젝트의 크기는 함수보다 높게 바운딩

Condition lod(W(0,0,0,1)) > 1 은 단위 스피어의 크기 인스턴스에 의해 만들어진 프랙탈 모양의 귀납적인 분할을 멈추는데 사용

LOD 는 자세한 장면의 표시를 최적화하는 간단한 것들로 복잡한 형상을 대체

Page 28: Procedural synthesis of geometry

28

Comparison with L- Systems PGI

Context-free L-system

Parameters nonintegral 길이를 필요로 하는 기하학적인 상황을 처리하기 위해 추가

Stochasticism자연의 카오스 영향을 시뮬레이션하기 위해 추가

Various degrees of context sensitivity개발 중인 L-Systen 모델의 한 부분에서 다른 메시지의 전송을 시뮬레이션하는 데 사용

Page 29: Procedural synthesis of geometry

29

Comparison with L- Systems PGI

Page 30: Procedural synthesis of geometry

30

Ordering PGI

몇몇 렌더링방법은 앞에서 뒤로 지오메트리 순서대로 보내는 것이 이득

Bounding Volume Hierarchy축방향으로 정렬된 목록의 사용을 통해 순서를 정함(6 번 정렬 : 더 극단적인 지점의 증가하지 않는 순서안에서 양 / 음수 x,y,z 방향 )

인스턴스화positionW(0,0,0,1) 로부터 관찰자를 향하는 Unit Vector 와 내적해서 최대값이 나오는 축 (6 개의 벡터 W−1T(±1,0,0,0),W−1T(0,±1,0,0), orW−1T(0,0,±1,0) 벡터 중 하나 ) 이 무엇인지를 결정

완벽하지 않지만 전체적으로 인스턴싱 지오메트리의 효과적인 작업을 수행

Page 31: Procedural synthesis of geometry

31

Bounding Vol-umes

절차적 지오메트리의 바운딩볼륨은 절차적 지오메트리가 가질 수 있는 다양한 모양에 대응할 수 있어야만 한다 .

바운딩 볼륨은 PGI  Scene Graph 내에 있는 모든 노드들과 관련되어있고 노드와 관련된 Procedure 은 인스턴스화된

바운딩볼륨을 고쳐서 다른 모양으로 변화시킬 수 있다 .

Page 32: Procedural synthesis of geometry

32

Bounding Vol-umes

Fournier, Fussel, Carpenter (1982)초창기 터레인 ( 지형 ) 모델은 midpoint displacement( 중간점 변위 , 위치의 변화량 ) 방법을 사용 미세한 Brownian Motion 을 시뮬레이션Midpoint Displacemet :삼각형이나 사각형 메쉬들에 대하여 표면을 미리 분할하여 나누는 방법

Page 33: Procedural synthesis of geometry

33

Bounding Vol-umes

Midpoint Displacement 을 활용가능한 많이 계산하여 Mesh Element 의 바운딩 볼륨으로 사용* 절차적 지형 모델의 지연 연산 (lazy evaluation) 을 지원

지연 연산 (lazy evaluation)렌더러가 메쉬 element 의 바운딩 볼륨이 안보인다고 판단한다면그 element 는 나눠질 필요가 없음

Page 34: Procedural synthesis of geometry

34

Bounding Vol-umesStatic Bounding Volume

가능한 한 모든 경우의 지오메트리 조합에 대응

Dynamic Bounding Volume절차적으로 부분 부분 평가된 특정 output 에만 딱 맞추어 감싸도록 디자인

형상을 사용하는 데 사용되는 파라미터에 따라 절차적 기하학의 범위를 예측

Dynamic Bounding Volume 들이 Static Bounding Volume 들보다 좀 더 효율적이지만 ,

다른 지오메트리의 의 바운딩 볼륨으로 그대로 갖다 사용하기에는 어렵다 .

Page 35: Procedural synthesis of geometry

35

ConclusionPGI 는기하학적 디테일의 연계를 위한 언어이다 .

연결고리씬 그래프안의 절차적 연결을 위한 연결고리이며 씬 그래프에서 절차적 Ge-ometry 역할을 하고 중간 저장 문제를 극복할 수 있도록 허용

결과인스턴스의 시간에 수행된 인스턴스의 지연 평가를 제공하며 오직 씬의 현재 렌더링에 영향을 미치는 개체

Page 36: Procedural synthesis of geometry

36

ConclusionPGI 는쉐이딩 언어에 대한 기하학적인 보완이다 .

쉐이딩 언어모델의 쉐이딩 정의에 대한 절차적 인터페이스 렌더러를 제공하는 동일한 방법으로 모델의 기하학적 정의에 절차적 인터페이스 렌더러를 제공

Page 37: Procedural synthesis of geometry

37

ConclusionPGI 는

Turtle Graphics 에 의해 만들어진 것보다 더 효율적인 과정으로 Geometry 를 산출

씬 그래프와 과련된 현재 설명을 기반으로 터틀 그래픽 심볼의 L-System 의 제작보다 절차적 모델의 형태보다 더욱 친숙하고 읽기 쉬운 형식

파라미터 설정과 PGI 의 다른 기능은더 작고 읽기 쉬운 자연 모델의 표준 텍스트 기하학 설명을 함

Page 38: Procedural synthesis of geometry

38

Procedural Geometric Mod-eling and the Web Conclusion

Java프로그램이 자동으로 원격 사이트에서 로드 할수 있으며 모든아키텍쳐와 운영체제에서 안전하게 실행하는 시스템

VRML기하학적인 씬 데이터베이스 전송을 위한 표준

둘다 절차적 모델링을 위한 지연 평가 패러다임을 지원하도록 향상시킬수 있음

Page 39: Procedural synthesis of geometry

39

Procedural Geometric Mod-eling and the Web Conclusion

Java자바의 기능이나 세부적인 기하학의 생성 및 계층적 조직을 지원하는 상응하는 언어로 확장

VRML지연 평가 패러다임의 "geometry/coordinates" 양방향 단계에서 네트워크에 남긴다 .

사용자가 이 스크립트를 다운로드할 수 있으며 렌더러는 그것이 절차적으로 관찰자의 입장을 수용하기 위해 필요한 지오메트리를 생성하는 실행

강력한 서버는 씬을 원격 클라이언트 렌더에 필요한 지오메트리를 생성하고네트워크를 통해서만 이러한 지오메트리를 전송

클라이언트 변경 시점으로 서버는 생성과 새로운 씬에 필요한 유일한 새로운 지오메트리를 전송

Page 40: Procedural synthesis of geometry

40

Future Work Conclusion

PGI 를 위한 효율적인 렌더링에 대한 주요 장애물은효과적인 바운딩 볼륨 계층의 구조

Geometry 는 요구에 의해 만들어지기 때문에바운딩 볼륨은 그 내용의 범위를 예측할수 있어야 한다 .

Page 41: Procedural synthesis of geometry

41

Future Work Conclusion

Kajiya(1983), Bouville(1985)프랙탈 터레인 모델을 위해 모델을 위해 절차적 바운딩 모델을 만듬임의의 하위 구분으로 프로세스에 대한 일반화는 미해결로 남아있음

Amburn, Grant, Whitted (1986)Context 가 독립적인 하위 구분 기반 모델 사이에 가중치를 둔 시스템을 개발

Fowler, Prusinkiewicz, Battjes (1992)절차적 모델의 현재 생성된 Geometry 를 기반으로 Phyllotaxis 의 기하학적인 상황에 맞는 모델을 개발

Page 42: Procedural synthesis of geometry

42

AcknowledgmentsProcedural geometric instancing 거의 10 년 동안 개발의 다양한 형태로 되어 , 이 발전의 일부는 인텔에 의해 재정 지원

Anand Ramagapalrao 는 hierarchical bounding 볼륨의 제대로된 정렬을 구현

Chanikarn Kulratanayan 그리고 Hui Fang 은 매우 많은 인상적인 샘플 이미지를 위한 시스템을 사용

GI 뒤에 아이디어의 많은 부분은 대부분 Przemyslaw Prusinkiewicz들과 대화에서 결과로부터 노스웨스트에 걸쳐 다양한 스키 리프트에서 발생

Page 43: Procedural synthesis of geometry

43

Referencehttp://www.scienceall.com/dictionary/dictionary.sca?todo=scienceTermsView&classid=&articleid=254482&bbsid=619&popissue=

Page 44: Procedural synthesis of geometry

Q & A

Page 45: Procedural synthesis of geometry

감사합니다