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