Procedural synthesis of geometry

658 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
658
On SlideShare
0
From Embeds
0
Number of Embeds
35
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Procedural synthesis of geometry

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

×