480 likes | 831 Views
강의 내용 ( 일곱 번째 ). 오늘 강의 내용 (10 월 29 일 ) 트리 자료 구조의 사용 다른 트리 구조 언어 기반 모델 순환적 방법과 프랙탈 물리 기반 모형과 입자 시스템 예습 : Reading Assignment 11 장 물리 기반 모형과 입자 시스템 12 장 데이터로부터의 모델 숙제 8.10 절 읽을 것. 8.5 트리 자료 구조의 사용. 계층구조를 표현하고 모델에 독립적인 순회 알고리즘을 사용해서 렌더링한다 . Left-child-right sibling 을 이용하는 방법
E N D
강의 내용(일곱 번째) • 오늘 강의 내용 (10월 29일) • 트리 자료 구조의 사용 • 다른 트리 구조 • 언어 기반 모델 • 순환적 방법과 프랙탈 • 물리 기반 모형과 입자 시스템 • 예습 : Reading Assignment • 11장 물리 기반 모형과 입자 시스템 • 12장 데이터로부터의 모델 • 숙제 • 8.10절 읽을 것
8.5 트리 자료 구조의 사용 • 계층구조를 표현하고 모델에 독립적인 순회 알고리즘을 사용해서 렌더링한다. • Left-child-right sibling을 이용하는 방법 • Figuretree.dsw 프로그램의 예 • 각 노드의 구조 • 각 노드에 객체를 정의하는 함수 • 그 객체를 부모에 상대적으로 위치시키는 좌표 행렬 • 모델-관측 행렬에 곱해진다.
Preorder 순위 순회 형제들에게는 지역행렬의 영향이 없어야 하므로
노드의 동적인 접근 방식 • 노드의 정의를 동적으로 하면 유연성이 생긴다. • 대화식으로 구조를 변경하기를 원할 때 사용한다. • P377 참조할 것
8.9 다른 트리 구조들 • CSG 트리 • Geometric modeling은 표면을 기술하여 모델링을 하므로 입체에 관한 성질을 다룰 때 어려움을 야기한다. • 디스플레이 모호성을 야기 (그림 8.20) • BSP 트리 • 4진 트리(Quadtree)와 8진 트리(Octree)
CSG(Constructive Solid Geometry) • Combination rules for solids • Each combines two solids • Union(+), Difference(-), Intersection (&) • Results can be used as a new solid • CSG Tree
그림 8.23 CSG 트리 Postorder Tree Traversing
그림 8.25 다각형들의 평면도 BSP Tree : Backward in-order traversal F – D- E-A-C-B
Modeling Technique • Geometric Modeling • Bezier, Spline, NURBS • Solid Modeling • SOR, Sweeping, CSG • Advanced Modeling Technique • Proceduralism • Grammar Based Modeling • Particle System • Fractal Modeling
Geometric Modeling • G.M. deals with the construction of smooth curves and surfaces by using polygon mesh Bezier Surface
Solid Modeling • Representation of Volumes completely surrounded by surfaces. • Geometric Modeling : describe the boundary of objects • Need to distinguish between inside or outside • Also, be able to compute properties of object • ex) CAD, CAM application • Deals with the construction of volumetric objects & its operations. • Techniques • SOR, Sweeping, CSG
Sweeping • Closed polygons and curves generates finite volume by sweeping transformation • Rotation, Sweeping
SOR(Surface Of Revolution) • To generate a 3-D surface, revolve a two dimensional entity. e.g., a line or plane about the axis in space. • called surfaces of revolution
11.6 언어 기반 모델 (Grammar Based Modeling) • 식물이나 지형과 같은 실세계 객체 이미지 생성 • 트리 문법(Tree Grammar) • 생성 규칙 (production rule) • 예) A → BC, B→ABA • 무한히 많은 문자열 생성 • 하나 이상의 규칙 중에서 난수로서 적용할 규칙을 선택한다면 다양한 문자열을 생성 • 절차적 모델(procedural model)
11.6 Grammar Based Modeling • 자연물 모델링에 사용 • 식물학자 Lindenmayer에 의해서 제안 • Prusinkiewicz에 의해 발전됨(L-system) • 식물의 생성정보를 문법에 의해 반복 치환함으로써 모델링
터틀 그래픽스(turtle graphics) • 1 단위 이동 (F), 왼쪽(L), 오른쪽 (R) 방향 전환 • 방향을 바꾸는 각은 고정됨 • 삼각형 • 각이 120도이고, 문자열 FRFRFR • Koch 곡선 • - 60도, F → FLFRRFLF 그림 11.12 Koch 곡선 규칙
그림 11.10 공간 충전 곡선(Space filling Curve) • 모든 F에 대하여 똑같이 한 번 더 적용함. Turtle_koch • (a)를 삼각형에 적용함. (a) koch 곡선 (b) koch 눈송이
특수 기호 ([, ])의 사용 • stack에 turtle의 상태(위치와 방향)을 push/pop을 표시 그림 11.15 그림 11.14 규칙의 두 번 반복 그림 11.14 규칙 FF[RF]F[LF]F
다양한 트리 생성 • turtle의 전진 이동에 해당하는 길이를 조정함. • 보다 많은 생성 규칙과 규칙을 결정하는 확률함수를 추가하면 더욱 다양한 형태의 나무를 얻을 수 있다. 그림 11.16 그림 11.14에서 규칙을 임의로 적용한 결과
직접적인 접근법과 절차적 방법의 비교 • 직선, 다각형 등을 이용하여 각 객체를 필요한 만큼 그리는 방법은 직접적인 방법이다. • - 복잡한 장면의 경우, 사용되는 기본 요소가 매우 많음 • - 관측자로부터 멀리 떨어진 경우에는 아주 작은 크기로 렌더링되기 때문에 이미지로 나타나지 않는다. 그럼에도 불구하고 기본 요소를 다 그려야 한다. • 절차적 방법 • 간단한 알고리즘으로 복잡한 객체를 묘사 • 필요로 하는 상세 정도와 필요로 하는 객체만을 기하학적 객체로 생성할 수 있다.
형상 문법(shape grammar) 그림 11.17 Sierpinski 가스켓을 위한 세 개의 규칙들
11.7 순환적 방법과 프랙탈 • 프랙탈 기하학 (fractal geometry)에 기초한 모델링 방법으로 또 다른 절차적 방법 • 프랙탈 기하학 • Mandelbrot에 의해 개발 • 자기 유사성 (Self-similarity) 을 사용함. • 다른 방법으로는 쉽게 모델링 할 수 없는 많은 실세계의 실체를 모델링 • Graftal : 프랙탈에 의해서 생성된 객체
Fractal Modeling • B. Mandelbrot에 의해 기본 개념 완성. • Self-similarity성질과 브라운 운동의 randomness를 결합하여 모델링 Fractal Mountain
11.7.1 자와 길이 • 해상도의 제한 혹은 측정의 최소 단위의 선택의 필요성 • 지도상의 해안선의 길이를 측정하여 보자. 해안선의 굴곡의 이미지 위에 실을 놓고 그 실의 길이를 측정할 수 있다. • 그러나, 좀 더 자세한 지도가 주어진다면? 더욱 긴 길이를 얻을 수 있다. • 더욱 자세한 지도가 주어진다면? 이러한 작업은 분자 단계까지 계속할 수 있다.
차원(Dimension)의 문제 • Koch의 곡선에서 길이가 1인 직선은 길이가 1/3인 4개의 선분으로 교체된다. • 선분을 교체할 때마다, 전체 선분의 길이는 4/3으로 늘어 난다. 무한히 반복할 수 있다. • 1차원? 혹은 2차원? • 곡선은 극한에서 무한대의 길이를 갖고 일차 미분은 어디서나 불연속이므로 통상적인 1차원은 아님. 그러나, 곡선은 2차원 평면을 채울 수 없음 따라서 2차원이 아님. 그림 11.18 Koch 곡선의 신장
11.7.2 프랙탈 차원할 그림 11.19 선분(1차원), 정사각형(2차원), 정육면체(3차원)
객체들의 h 계수에 의한 크기 변환 h=1/n 이라고 하자 선분의 경우 : K (=n)개의 동일한 선분으로 사각형의 경우 : K (= ) 개의 작은 사각형으로 정육면체의 경우 : K (= ) 개의 작은 정육면체로 분할 그림 11.20 객체들의 분할 h=1/3 ( n=3)
차원의 계산 분할에서 변하지 않는 것은 전체가 부분의 합이므로 어떤 객체에 대해서도 다음의 등식이 만족한다. 이므로 이다. 프랙탈 차원
차원의 계산 Koch 곡선의 경우 : 그림 11.21 Sierpinski 가스켓의 분할
그림 11.22 입체 가스켓 • 각 면을 분할하는 3차원 공간의 입체 가스켓 • 가운데 영역은 버림. 4개의 사면체를 유지함.
그림 11.23 입방체의 분할 • 각 면의 중심과 정육면체 중심에 있는 조각을 제거하면 총 27개의 조각 중에서 20개만 남음.
11.7.3 종점 분할과 브라운 운동 • 프랙탈 곡선은 1≤d≤2 : • - 낮은 차원의 곡선이 높은 차원의 곡선보다 부드러움. • 프랙탈 곡면은 2≤d≤3 : • -낮은 차원의 곡면이 높은 차원의 곡면보다 부드러움. • 거친 정도를 제어함.
그림 11.24 중점 이동 • 브라운 운동 : 유체 입자의 무작위적 움직임. 순환적인 방법 • - 선분의 중점을 찾고, 중점을 법선 방향으로 임의의 거리 만큼 이동 (a) 원래의 선분 (b) 분할 후의 선분
그림 11.25 1,2,4,8,16 단편으로 된 프랙탈 곡선들 • 앞의 중점 이동 과정을 임의의 횟수만큼 반복함 • 난수 발생기의 분산 및 평균 변위는 보통 ½로 줄여야 함. • 법선 방향만이 아닌 임의의 방향으로 중점을 이동시킬 수 있다. • 이 분할될 선분의 길이, 에 비례하는 분산을 갖는 평균이 0 인 • Gaussian 난수 발생기를 사용하면 d 는 생성된 곡선의 프랙탈 차원이며, d=1.5인 값은 실제 브라운 운동에 대응됨.
11.7.4 프랙탈 산 • 산악과 지형의 생성 그림 11.26 4면체 면의 중점 분할 • 변의 중점을 찾은 다음, 각 중점을 이동함. • 난수 발생기의 분산을 제어함으로써 생성되는 객체의 거친 정도를 제어
그림 11.27 프랙탈 산 • 임의의 mesh에도 적용 • x-z 평면에서 사각형 mesh에서 시작하고 좀 더 작은 4개의 사각형으로 분할하여 모든 정점을 y 방향으로 이동 시킴 → 색 그림판 7 (a) 메쉬 (b) 이동된 정점에 의한 분할된 메쉬