SlideShare une entreprise Scribd logo
1  sur  45
Texturering & Modeling
                 a Procedual Approach



               김정근
Chapter 11
Procedural Synthesis of Geometry
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
Procedural Geometric
Instancing
PGI
절차적으로 Scene Graph내에서 인스턴스를 증가하며
인스턴스화 되는 시점에 Procedure가 실행



Procedure
호출된 인스턴스 노드에 대한 억세스 권할을 가지며
해당 노드의 변화, 쉐이딩 파라미터를 변경
Scene Graph내에서 다른 개체 노드를 참조하는 인스턴스를 변경
Global Scene Graph 변수에 억세스
 - object-to-world 좌표 변환 매트릭스와 노드 사이의 파라미터 전달


                                                4
Parameter Passing
PGI



L-system 개선
 실제 값을 사용하여 모양을 변경하는데 사용할 수 있음
 Parent 와 Child Geometry 간의 관계를 보다 복잡한 관계로 구성



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




                                                                5
Parameter Passing
PGI




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


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



                                     6
Example:Inductive Instancing
Parameter Passing - PGI




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


         각각의 인스턴스의 변환 컴포넌트는
       Geometry를 네 개의 서로 다른 사본으로
          묘사하기 위해 다른 값을 가진다.


                                   7
Example:Inductive Instancing
Parameter Passing - PGI




                                      Clump




            Instances     Instances           Instances   Instances




                                                                      8
Example:Inductive Instancing
Parameter Passing - PGI



                                         Patch



                   Clump         Clump           Clump        Clump



                     Instances    Instances       Instances    Instances



                     Instances    Instances       Instances    Instances



                     Instances    Instances       Instances    Instances



                     Instances    Instances       Instances    Instances




                                                                           9
Example:Inductive Instancing
Parameter Passing - PGI




                                                                                                    Plot
                     Patch                                                  Patch                                                  Patch                                                  Patch


Clump        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
Example:Inductive Instancing
Parameter Passing - PGI




                      똑같은 물체를 수십억 개 다룰 때에는
                          인스턴싱의 반복 수행 절차를
                          줄이는 것조차 까다로워 진다
                                         11
Example:Inductive Instancing
Parameter Passing - PGI




귀납적인 인스턴싱
 O(log n) 부터 O(1) 까지 명시적으로 정의된 단계의 순서를 줄이기 위해
 instancing 파라미터를 사용
 한 개의 리스트를 가지고 있는 n번째 잔디 grass(n)를 한개의 오브젝트라고
 정의하면 그 정의에 따라서 0번째 잔디 grass(0) 가 의미하는 바는 한개의
 풀잎 인스턴스임이 귀납적으로 유추




                                                12
Example:Inductive Instancing
Parameter Passing - PGI




                           13
Example:Inductive Instancing
Parameter Passing - PGI




귀납적인 인스턴싱
 i 번째 잔디 grass(i) 의 인스턴스 한개는 네개의 풀잎을 가지게 되어 기본(basis)단위를 만듬
 귀납 instancing은 프롤로그의 서술적 논리와 형태가 비슷
 적당하게 구성된, 정의된 이름과 Match되는 것을 찾을때까지 인스턴스 이름을 호출하
 여 비교할 것
 예를 들어 grass(15)는 grass(0)과 Match하지 않지만 grass(n) 과 Match될 것




                                                              14
Accessing
World Coordinates               PGI




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



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



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




                                                  15
Accessing
World Coordinates                    PGI




 한개의 인스턴스의 범위 안에서 처음 인스턴스화를 시작할 때부터
object-to-world transformation 을 사용할 수 있고 인스턴스의 변환에
                        영향을 받지 않는다.




   Procedural Geometric Instancing 은 Rotation에 의한 Scale이
                글로벌 위치나 기준에 의존하는
 Scale 을 따르는 Rotation 과 달라서 발생되는 Ordering 문제를 해결




                                                           16
Example:Tropism
Accessing World Coordinates - PGI




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



하향 Tropism
  중력을 시뮬레이션해서 처지는 나뭇가지를 표현
  측면 tropism을 이용하면 바람이 불때 나무 모습이 표현



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

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




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



                                                         18
Example:Tropism
Accessing World Coordinates - PGI




                                    19
Example:Tropism
Accessing World Coordinates - PGI




                       소스코드 수정을 통해
                    다양한 시뮬레이션이 가능하며
        Tropism 변수를 Turtle 기반의 L-System 양식에 맞춰 새롭게
                 파라메터화된 심볼로 포함시킬 수 있음
                  PGI는 이러한 툴들을 통해 씬을 기술




                                                     20
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
Example:Geometry Mapping
Accessing World Coordinates - PGI




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




                                    22
Random Numbers
Other Functions - PGI


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

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


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


Perlin Noise
 band-limited 확률 변수을 제공하고 scalar-valued 함수는 노이즈로 구현
 world 좌표 위치를 사용하여 노이즈 함수의 전형적인 호출이 지정:noise(W(0,0,0,1))
                                                           23
Example:Meadows
Other Functions - PGI




                        24
Example:Meadows
Other Functions - PGI



 단편적인 브라운 운동은 터레인의 다양한 모형을 만듬
 험한 초원의 테레인 모델의 1/f2 power 분포의 세 옥타브를 사용

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

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

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




                                                     25
Example:Meadows
Other Functions - PGI




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

fnoise 의 definition의 사용은 단순 보간함수에 의한 노이즈 함수의
nonisotropic 아티팩트를 감춘다
                                               26
Levels of Detail
Other Functions - PGI


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

                                   FOV



                                       Linear Resolution
                        Eyepoint


Condition lod(W(0,0,0,1)) > 1 은 단위 스피어의 크기 인스턴스에 의해 만들어
              진 프랙탈 모양의 귀납적인 분할을 멈추는데 사용
                LOD는 자세한 장면의 표시를 최적화하는 간단한 것들로 복잡한 형상을 대체




                                                            27
Comparison with L- Systems                    PGI




Context-free L-system

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



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



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


                                                    28
Comparison with
L- SystemsPGI




                  29
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
Bounding Volumes

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

바운딩 볼륨은 PGI Scene Graph 내에 있는 모든 노드들과 관련되어
있고 노드와 관련된 Procedure 은 인스턴스화된 바운딩볼륨을 고쳐서
                      다른
            모양으로 변화시킬 수 있다.




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




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




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




                                         33
Bounding Volumes
Static Bounding Volume
가능한 한 모든 경우의 지오메트리 조합에 대응


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



Dynamic Bounding Volume들이 Static Bounding Volume들보다 좀 더 효율적이지만,
    다른 지오메트리의 의 바운딩 볼륨으로 그대로 갖다 사용하기에는 어렵다.




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

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



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



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




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



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




                                          36
Conclusion
PGI는
Turtle Graphics에 의해 만들어진 것보다 더 효율적인 과정으로 Geometry를 산출
씬 그래프와 과련된 현재 설명을 기반으로 터틀 그래픽 심볼의 L-System의
제작보다 절차적 모델의 형태보다 더욱 친숙하고 읽기 쉬운 형식




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




                                                        37
Procedural Geometric Modeling
and the Web    Conclusion




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



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



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



                                        38
Procedural Geometric Modeling
and the Web         Conclusion




Java
자바의 기능이나 세부적인 기하학의 생성 및 계층적 조직을 지원하는 상응하는 언어로 확장
사용자가 이 스크립트를 다운로드할 수 있으며 렌더러는 그것이 절차적으로 관찰자의 입장을
수용하기 위해 필요한 지오메트리를 생성하는 실행


VRML
지연 평가 패러다임의 "geometry/coordinates" 양방향 단계에서 네트워크에 남긴다.
강력한 서버는 씬을 원격 클라이언트 렌더에 필요한 지오메트리를 생성하고
네트워크를 통해서만 이러한 지오메트리를 전송
클라이언트 변경 시점으로 서버는 생성과 새로운 씬에 필요한 유일한 새로운 지오메트리
를 전송




                                                         39
Future Work      Conclusion




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

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




                               40
Future Work                      Conclusion




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



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



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




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


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


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


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

                                                         42
Reference
http://www.scienceall.com/dictionary/dictionary.sca?todo=scienceTermsVie
w&classid=&articleid=254482&bbsid=619&popissue=




                                                                           43
Q&A
감사합니다

Contenu connexe

En vedette (20)

Muconin
MuconinMuconin
Muconin
 
Lecture9: 123.101
Lecture9: 123.101Lecture9: 123.101
Lecture9: 123.101
 
123.312 Retrosynthesis: lecture 5
123.312 Retrosynthesis: lecture 5123.312 Retrosynthesis: lecture 5
123.312 Retrosynthesis: lecture 5
 
Lecture6: 123.101
Lecture6: 123.101Lecture6: 123.101
Lecture6: 123.101
 
123.312 Retrosynthesis: lecture 1
123.312 Retrosynthesis: lecture 1123.312 Retrosynthesis: lecture 1
123.312 Retrosynthesis: lecture 1
 
123.312 Retrosynthesis: Lecture 3
123.312 Retrosynthesis: Lecture 3123.312 Retrosynthesis: Lecture 3
123.312 Retrosynthesis: Lecture 3
 
123.312 Retrosynthesis: Lecture 2
123.312 Retrosynthesis: Lecture 2123.312 Retrosynthesis: Lecture 2
123.312 Retrosynthesis: Lecture 2
 
Lecture8: 123.101
Lecture8: 123.101Lecture8: 123.101
Lecture8: 123.101
 
Lecture3: 123.312
Lecture3: 123.312Lecture3: 123.312
Lecture3: 123.312
 
Lecture1: 123.312
Lecture1: 123.312Lecture1: 123.312
Lecture1: 123.312
 
Lecture2: 123.312
Lecture2: 123.312Lecture2: 123.312
Lecture2: 123.312
 
Lecture7: 123.312
Lecture7: 123.312Lecture7: 123.312
Lecture7: 123.312
 
Organic chemistry and stereoisomers
Organic chemistry and stereoisomersOrganic chemistry and stereoisomers
Organic chemistry and stereoisomers
 
123.312 Retrosynthesis: Lecture 4
123.312 Retrosynthesis: Lecture 4123.312 Retrosynthesis: Lecture 4
123.312 Retrosynthesis: Lecture 4
 
Lecture5: 123.312
Lecture5: 123.312Lecture5: 123.312
Lecture5: 123.312
 
Lecture8: 123.312
Lecture8: 123.312Lecture8: 123.312
Lecture8: 123.312
 
Lecture4: 123.312
Lecture4: 123.312Lecture4: 123.312
Lecture4: 123.312
 
Lecture7: 123.101
Lecture7: 123.101Lecture7: 123.101
Lecture7: 123.101
 
Lecture4: 123.101
Lecture4: 123.101Lecture4: 123.101
Lecture4: 123.101
 
Lecture6: 123.312
Lecture6: 123.312Lecture6: 123.312
Lecture6: 123.312
 

Plus de CARROTCG

20120713 ch13
20120713 ch1320120713 ch13
20120713 ch13CARROTCG
 
20120713 ch12
20120713 ch1220120713 ch12
20120713 ch12CARROTCG
 
120427 celluar texture
120427 celluar texture120427 celluar texture
120427 celluar textureCARROTCG
 
120413 making noises
120413 making noises120413 making noises
120413 making noisesCARROTCG
 
Texture Modeling a Procedual Approach Chater 2 : Building Procedural Textures
Texture Modeling a Procedual Approach Chater 2 : Building Procedural TexturesTexture Modeling a Procedual Approach Chater 2 : Building Procedural Textures
Texture Modeling a Procedual Approach Chater 2 : Building Procedural TexturesCARROTCG
 
Practical methods for texture design web
Practical methods for texture design webPractical methods for texture design web
Practical methods for texture design webCARROTCG
 
Volumetric cloud modeling with implicit functions web
Volumetric cloud modeling with implicit functions webVolumetric cloud modeling with implicit functions web
Volumetric cloud modeling with implicit functions webCARROTCG
 
Texture Modeling a Procedual Approach #01
Texture Modeling a Procedual Approach #01Texture Modeling a Procedual Approach #01
Texture Modeling a Procedual Approach #01CARROTCG
 
120216 ch 12_creating_elements
120216 ch 12_creating_elements120216 ch 12_creating_elements
120216 ch 12_creating_elementsCARROTCG
 
120119 ch 7_time_and_temporal_manipulations
120119 ch 7_time_and_temporal_manipulations120119 ch 7_time_and_temporal_manipulations
120119 ch 7_time_and_temporal_manipulationsCARROTCG
 
120106 ch 6_matte_creation_and_manipulation_web
120106 ch 6_matte_creation_and_manipulation_web120106 ch 6_matte_creation_and_manipulation_web
120106 ch 6_matte_creation_and_manipulation_webCARROTCG
 
120106 ch 5_basic image compositing_re
120106 ch 5_basic image compositing_re120106 ch 5_basic image compositing_re
120106 ch 5_basic image compositing_reCARROTCG
 
111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_web111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_webCARROTCG
 
111028 ch 3_the digital representation of visual information
111028 ch 3_the digital representation of visual information111028 ch 3_the digital representation of visual information
111028 ch 3_the digital representation of visual informationCARROTCG
 
The Art and Science of Digital Compositing Chapter 1,2
The Art and Science of Digital Compositing Chapter 1,2The Art and Science of Digital Compositing Chapter 1,2
The Art and Science of Digital Compositing Chapter 1,2CARROTCG
 

Plus de CARROTCG (18)

20120921
2012092120120921
20120921
 
20120824
2012082420120824
20120824
 
20120810
2012081020120810
20120810
 
20120713 ch13
20120713 ch1320120713 ch13
20120713 ch13
 
20120713 ch12
20120713 ch1220120713 ch12
20120713 ch12
 
120427 celluar texture
120427 celluar texture120427 celluar texture
120427 celluar texture
 
120413 making noises
120413 making noises120413 making noises
120413 making noises
 
Texture Modeling a Procedual Approach Chater 2 : Building Procedural Textures
Texture Modeling a Procedual Approach Chater 2 : Building Procedural TexturesTexture Modeling a Procedual Approach Chater 2 : Building Procedural Textures
Texture Modeling a Procedual Approach Chater 2 : Building Procedural Textures
 
Practical methods for texture design web
Practical methods for texture design webPractical methods for texture design web
Practical methods for texture design web
 
Volumetric cloud modeling with implicit functions web
Volumetric cloud modeling with implicit functions webVolumetric cloud modeling with implicit functions web
Volumetric cloud modeling with implicit functions web
 
Texture Modeling a Procedual Approach #01
Texture Modeling a Procedual Approach #01Texture Modeling a Procedual Approach #01
Texture Modeling a Procedual Approach #01
 
120216 ch 12_creating_elements
120216 ch 12_creating_elements120216 ch 12_creating_elements
120216 ch 12_creating_elements
 
120119 ch 7_time_and_temporal_manipulations
120119 ch 7_time_and_temporal_manipulations120119 ch 7_time_and_temporal_manipulations
120119 ch 7_time_and_temporal_manipulations
 
120106 ch 6_matte_creation_and_manipulation_web
120106 ch 6_matte_creation_and_manipulation_web120106 ch 6_matte_creation_and_manipulation_web
120106 ch 6_matte_creation_and_manipulation_web
 
120106 ch 5_basic image compositing_re
120106 ch 5_basic image compositing_re120106 ch 5_basic image compositing_re
120106 ch 5_basic image compositing_re
 
111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_web111118 ch 4_basic image manipulation_web
111118 ch 4_basic image manipulation_web
 
111028 ch 3_the digital representation of visual information
111028 ch 3_the digital representation of visual information111028 ch 3_the digital representation of visual information
111028 ch 3_the digital representation of visual information
 
The Art and Science of Digital Compositing Chapter 1,2
The Art and Science of Digital Compositing Chapter 1,2The Art and Science of Digital Compositing Chapter 1,2
The Art and Science of Digital Compositing Chapter 1,2
 

Procedural synthesis of geometry

  • 1. Texturering & Modeling a Procedual Approach 김정근
  • 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
  • 7. Example:Inductive Instancing Parameter Passing - PGI 각각의 리스트가 동일한 Element 를 가진 네개의 인스턴드들로 구성되지만 각각의 인스턴스의 변환 컴포넌트는 Geometry를 네 개의 서로 다른 사본으로 묘사하기 위해 다른 값을 가진다. 7
  • 8. Example:Inductive Instancing Parameter Passing - PGI Clump Instances Instances Instances Instances 8
  • 9. Example:Inductive Instancing Parameter 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. Example:Inductive Instancing Parameter Passing - PGI Plot Patch Patch Patch Patch Clump 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. Example:Inductive Instancing Parameter Passing - PGI 똑같은 물체를 수십억 개 다룰 때에는 인스턴싱의 반복 수행 절차를 줄이는 것조차 까다로워 진다 11
  • 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
  • 18. Example:Tropism Accessing World Coordinates - PGI 중력의 영향으로 지면 방향으로 시뮬레이션 18
  • 20. Example:Tropism Accessing World Coordinates - PGI 소스코드 수정을 통해 다양한 시뮬레이션이 가능하며 Tropism 변수를 Turtle 기반의 L-System 양식에 맞춰 새롭게 파라메터화된 심볼로 포함시킬 수 있음 PGI는 이러한 툴들을 통해 씬을 기술 20
  • 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
  • 22. Example:Geometry Mapping Accessing World Coordinates - PGI Bezier patch의 정의 평면으로 부터 베지어 표면으로 잔디를 맵핑하고 잔디 대신 머리카락처럼 가느다란 필라멘트를 사용하면 풍성한 털이나 헤어를 만들수 있다. 22
  • 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
  • 44. Q&A