Texturering & Modelinga Procedual Approach
김정근
Chapter 11
Procedural Synthesis of Ge-
ometry
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
4
Procedural Geometric In-stancing
PGI절차적으로 Scene Graph 내에서 인스턴스를 증가하며
Procedure호출된 인스턴스 노드에 대한 억세스 권할을 가지며
인스턴스화 되는 시점에 Procedure 가 실행
해당 노드의 변화 , 쉐이딩 파라미터를 변경
Scene Graph 내에서 다른 개체 노드를 참조하는 인스턴스를 변경
Global Scene Graph 변수에 억세스 - object-to-world 좌표 변환 매트릭스와 노드 사이의 파라미터 전달
5
Parameter Passing PGI
L-system 개선 실제 값을 사용하여 모양을 변경하는데 사용할 수 있음
Parent 와 Child Geometry 간의 관계를 보다 복잡한 관계로 구성
ParametersInstancing 에서는 새롭지 않은 컨셉
SPHIGS (Simple Programmer's Hierarchical Graphics Standard) 안에서도존재하지만 이전에 구현된것과는 다른 구조로 나누어 제어 하기 위해서도 사용
6
Parameter Passing PGI
“ 파라미터들은 재귀를 허용하기 위해 스택을 사용하여 표준 양식의 인스턴스에 바인딩”
“ 파라미터들은 Transformations 을 변경하거나 ,더 많은 인스턴스들에게로 전달”
7
Example:Inductive Instancing Parameter Passing - PGI
각각의 리스트가 동일한 Element 를 가진네개의 인스턴드들로 구성되지만
각각의 인스턴스의 변환 컴포넌트는 Geometry 를 네 개의 서로 다른 사본으로
묘사하기 위해 다른 값을 가진다 .
8
Example:Inductive Instancing Parameter Passing - PGI
Clump
Instances Instances Instances Instances
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
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 는 지오메트리를 네개의 서로 다른 사본으로 묘사하기위해 다른값을
가짐”
11
Example:Inductive Instancing Parameter Passing - PGI
똑같은 물체를 수십억 개 다룰 때에는인스턴싱의 반복 수행 절차를줄이는 것조차 까다로워 진다
12
Example:Inductive Instancing Parameter Passing - PGI
귀납적인 인스턴싱O(log n) 부터 O(1) 까지 명시적으로 정의된 단계의 순서를 줄이기 위해 instancing 파라미터를 사용
한 개의 리스트를 가지고 있는 n 번째 잔디 grass(n) 를 한개의 오브젝트라고 정의하면 그 정의에 따라서 0 번째 잔디 grass(0) 가 의미하는 바는 한개의 풀잎 인스턴스임이 귀납적으로 유추
13
Example:Inductive Instancing Parameter Passing - PGI
14
Example:Inductive Instancing Parameter Passing - PGI
귀납적인 인스턴싱i 번째 잔디 grass(i) 의 인스턴스 한개는 네개의 풀잎을 가지게 되어 기본 (basis) 단위를 만듬
귀납 instancing 은 프롤로그의 서술적 논리와 형태가 비슷
적당하게 구성된 , 정의된 이름과 Match 되는 것을 찾을때까지 인스턴스 이름을 호출하여 비교할 것
예를 들어 grass(15) 는 grass(0) 과 Match 하지 않지만 grass(n) 과 Match 될 것
15
Accessing
World Coordinates PGI
Object 는로컬 좌표 프레임에서 정의되지만 월드 좌표계로 인스턴스 된다
어떤 상황에서는인스턴스가 글로벌 위치와 방향을 기준으로 Geometry 를 변경해야 하는 경우도 있다
W 행렬 변환Object 의 정의와 특정 인스턴스가 주어졌을때 Object 의 인스턴스화와 맵핑되는 행렬을 W 라고 하면 W 행렬 변환을 통해 로컬 좌표가 월드 좌표로 맵핑된다 .
16
Accessing
World Coordinates PGI
한개의 인스턴스의 범위 안에서 처음 인스턴스화를 시작할 때부터 object-to-world transformation 을 사용할 수 있고 인스턴스의
변환에 영향을 받지 않는다 .
Procedural Geometric Instancing 은 Rotation 에 의한 Scale이
글로벌 위치나 기준에 의존하는 Scale 을 따르는 Rotation 과 달라서 발생되는 Ordering 문제를
해결
17
Example:Tropism
Accessing World Coordinates - PGI
외부 방향성나뭇가지 패턴에 영향을 줌
하향 Tropism 중력을 시뮬레이션해서 처지는 나뭇가지를 표현
측면 tropism 을 이용하면 바람이 불때 나무 모습이 표현
상향 Tropism 햇빛을 향해 성장하는 나뭇가지를 표현
Tropism 방향은 나뭇가지의 로컬 좌표시스템과 관계없이 균일글로벌 원점이 주어졌을때 Tropism 에 영향받는 인스턴스 하나가 Tropism 의 방향으로 그자체를 회전하여 반응할수 있다
18
Example:Tropism
Accessing World Coordinates - PGI
중력의 영향으로 지면 방향으로 시뮬레이션
19
Example:Tropism
Accessing World Coordinates - PGI
20
Example:Tropism
Accessing World Coordinates - PGI
소스코드 수정을 통해다양한 시뮬레이션이 가능하며
Tropism 변수를 Turtle 기반의 L-System 양식에 맞춰 새롭게 파라메터화된 심볼로 포함시킬 수 있음PGI 는 이러한 툴들을 통해 씬을 기술
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)
22
Example:Geometry MappingAccessing World Coordinates - PGI
Bezier patch 의 정의평면으로 부터 베지어 표면으로 잔디를 맵핑하고잔디 대신 머리카락처럼 가느다란 필라멘트를 사용하면 풍성한 털이나 헤어를 만들수 있다 .
23
Random Numbers Other Functions - PGI
임의성은 거의 모든 절차적 자연 모델링 시스템 안 그리고 자연 안에서 발견되는 혼란을 시뮬레이션할 수 있다 .
임의의 숫자각종 자연 모델링을 하는데 유용하다
표시법 [a,b]a 그리고 b 사이의 분포된 난수가 균일하게 리턴
가우시안 분포난수를 리턴
Perlin Noiseband-limited 확률 변수을 제공하고 scalar-valued 함수는 노이즈로 구현
world 좌표 위치를 사용하여 노이즈 함수의 전형적인 호출이 지정 :noise(W(0,0,0,1))
24
Example:MeadowsOther Functions - PGI
25
Example:MeadowsOther Functions - PGI
험한 초원의 테레인 모델의 1/f2 power 분포의 세 옥타브를 사용
풀은 절차 노이즈 함수에 의해 수정된 변환을 통해 초원에 instanced
잔디의 게재 위치는 더욱 균일하게 random 측면 변환에 의해 perturbed 되며 , 그 방향이 노이즈 함수에 의해 perturbed
단편적인 브라운 운동은 터레인의 다양한 모형을 만듬
Brownian Motion : 액체나 기체안에 떠서 움직이는 미소입자의 불규칙한 운동
26
Example:MeadowsOther Functions - PGI
벡터값 함수 rotate(x, theta, axis) 는 axis 축에 대한 theta 에 의해 벡터 x 가 회전한 것을 리턴
fnoise 의 definition 의 사용은 단순 보간함수에 의한 노이즈 함수의nonisotropic 아티팩트를 감춘다
27
Levels of DetailOther Functions - PGI
Eyepoint
FOV
Linear Resolution
퍼스펙티브의 룰 하에 스크린위의 픽셀의 영역의 지오메트릭 프로젝트의 크기는 함수보다 높게 바운딩
Condition lod(W(0,0,0,1)) > 1 은 단위 스피어의 크기 인스턴스에 의해 만들어진 프랙탈 모양의 귀납적인 분할을 멈추는데 사용
LOD 는 자세한 장면의 표시를 최적화하는 간단한 것들로 복잡한 형상을 대체
28
Comparison with L- Systems PGI
Context-free L-system
Parameters nonintegral 길이를 필요로 하는 기하학적인 상황을 처리하기 위해 추가
Stochasticism자연의 카오스 영향을 시뮬레이션하기 위해 추가
Various degrees of context sensitivity개발 중인 L-Systen 모델의 한 부분에서 다른 메시지의 전송을 시뮬레이션하는 데 사용
29
Comparison with L- Systems PGI
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) 벡터 중 하나 ) 이 무엇인지를 결정
완벽하지 않지만 전체적으로 인스턴싱 지오메트리의 효과적인 작업을 수행
31
Bounding Vol-umes
절차적 지오메트리의 바운딩볼륨은 절차적 지오메트리가 가질 수 있는 다양한 모양에 대응할 수 있어야만 한다 .
바운딩 볼륨은 PGI Scene Graph 내에 있는 모든 노드들과 관련되어있고 노드와 관련된 Procedure 은 인스턴스화된
바운딩볼륨을 고쳐서 다른 모양으로 변화시킬 수 있다 .
32
Bounding Vol-umes
Fournier, Fussel, Carpenter (1982)초창기 터레인 ( 지형 ) 모델은 midpoint displacement( 중간점 변위 , 위치의 변화량 ) 방법을 사용 미세한 Brownian Motion 을 시뮬레이션Midpoint Displacemet :삼각형이나 사각형 메쉬들에 대하여 표면을 미리 분할하여 나누는 방법
33
Bounding Vol-umes
Midpoint Displacement 을 활용가능한 많이 계산하여 Mesh Element 의 바운딩 볼륨으로 사용* 절차적 지형 모델의 지연 연산 (lazy evaluation) 을 지원
지연 연산 (lazy evaluation)렌더러가 메쉬 element 의 바운딩 볼륨이 안보인다고 판단한다면그 element 는 나눠질 필요가 없음
34
Bounding Vol-umesStatic Bounding Volume
가능한 한 모든 경우의 지오메트리 조합에 대응
Dynamic Bounding Volume절차적으로 부분 부분 평가된 특정 output 에만 딱 맞추어 감싸도록 디자인
형상을 사용하는 데 사용되는 파라미터에 따라 절차적 기하학의 범위를 예측
Dynamic Bounding Volume 들이 Static Bounding Volume 들보다 좀 더 효율적이지만 ,
다른 지오메트리의 의 바운딩 볼륨으로 그대로 갖다 사용하기에는 어렵다 .
35
ConclusionPGI 는기하학적 디테일의 연계를 위한 언어이다 .
연결고리씬 그래프안의 절차적 연결을 위한 연결고리이며 씬 그래프에서 절차적 Ge-ometry 역할을 하고 중간 저장 문제를 극복할 수 있도록 허용
결과인스턴스의 시간에 수행된 인스턴스의 지연 평가를 제공하며 오직 씬의 현재 렌더링에 영향을 미치는 개체
36
ConclusionPGI 는쉐이딩 언어에 대한 기하학적인 보완이다 .
쉐이딩 언어모델의 쉐이딩 정의에 대한 절차적 인터페이스 렌더러를 제공하는 동일한 방법으로 모델의 기하학적 정의에 절차적 인터페이스 렌더러를 제공
37
ConclusionPGI 는
Turtle Graphics 에 의해 만들어진 것보다 더 효율적인 과정으로 Geometry 를 산출
씬 그래프와 과련된 현재 설명을 기반으로 터틀 그래픽 심볼의 L-System 의 제작보다 절차적 모델의 형태보다 더욱 친숙하고 읽기 쉬운 형식
파라미터 설정과 PGI 의 다른 기능은더 작고 읽기 쉬운 자연 모델의 표준 텍스트 기하학 설명을 함
38
Procedural Geometric Mod-eling and the Web Conclusion
Java프로그램이 자동으로 원격 사이트에서 로드 할수 있으며 모든아키텍쳐와 운영체제에서 안전하게 실행하는 시스템
VRML기하학적인 씬 데이터베이스 전송을 위한 표준
둘다 절차적 모델링을 위한 지연 평가 패러다임을 지원하도록 향상시킬수 있음
39
Procedural Geometric Mod-eling and the Web Conclusion
Java자바의 기능이나 세부적인 기하학의 생성 및 계층적 조직을 지원하는 상응하는 언어로 확장
VRML지연 평가 패러다임의 "geometry/coordinates" 양방향 단계에서 네트워크에 남긴다 .
사용자가 이 스크립트를 다운로드할 수 있으며 렌더러는 그것이 절차적으로 관찰자의 입장을 수용하기 위해 필요한 지오메트리를 생성하는 실행
강력한 서버는 씬을 원격 클라이언트 렌더에 필요한 지오메트리를 생성하고네트워크를 통해서만 이러한 지오메트리를 전송
클라이언트 변경 시점으로 서버는 생성과 새로운 씬에 필요한 유일한 새로운 지오메트리를 전송
40
Future Work Conclusion
PGI 를 위한 효율적인 렌더링에 대한 주요 장애물은효과적인 바운딩 볼륨 계층의 구조
Geometry 는 요구에 의해 만들어지기 때문에바운딩 볼륨은 그 내용의 범위를 예측할수 있어야 한다 .
41
Future Work Conclusion
Kajiya(1983), Bouville(1985)프랙탈 터레인 모델을 위해 모델을 위해 절차적 바운딩 모델을 만듬임의의 하위 구분으로 프로세스에 대한 일반화는 미해결로 남아있음
Amburn, Grant, Whitted (1986)Context 가 독립적인 하위 구분 기반 모델 사이에 가중치를 둔 시스템을 개발
Fowler, Prusinkiewicz, Battjes (1992)절차적 모델의 현재 생성된 Geometry 를 기반으로 Phyllotaxis 의 기하학적인 상황에 맞는 모델을 개발
42
AcknowledgmentsProcedural geometric instancing 거의 10 년 동안 개발의 다양한 형태로 되어 , 이 발전의 일부는 인텔에 의해 재정 지원
Anand Ramagapalrao 는 hierarchical bounding 볼륨의 제대로된 정렬을 구현
Chanikarn Kulratanayan 그리고 Hui Fang 은 매우 많은 인상적인 샘플 이미지를 위한 시스템을 사용
GI 뒤에 아이디어의 많은 부분은 대부분 Przemyslaw Prusinkiewicz들과 대화에서 결과로부터 노스웨스트에 걸쳐 다양한 스키 리프트에서 발생
43
Referencehttp://www.scienceall.com/dictionary/dictionary.sca?todo=scienceTermsView&classid=&articleid=254482&bbsid=619&popissue=
Q & A
감사합니다