Procedural Modeling of Buildings Procedural Modeling of Buildings Pascal Muller
ETH Zurich
Peter WonkaArizona State University
Simon HaeglerETH Zurich
Andreas UlmerVirtual Entertainment Productions
Luc Van GoolETH Zurich / K.U.Leuven
AbstractAbstract
◇ CGA Shape 은 Computer Graphics Architecture
◇ 높은 Quality 와 디테일을 가지고 빌딩을 만듦
◇ 싼값에 큰 건축 모델을 만들어 줌
◇ context sensitive shape 법칙은 형상들 사이의 상호작용을 명시화
◇ CGA shape 은 폼페이를 고고학적으로 재건
1. Introduction1. Introduction
◇ 강력한 모델의 생성은 영화와 게임 발전에 영향을 줌
◇ 도시와 같은 큰 3 차원 환경 모델링은 비싼 처리 임
◇ 본 논문에서는 도시를 디테일하게 표현하는 CGA shape 를 제안
◇ 빌딩의 경우 , 초기 볼륨모델을 생성하고 외관을 구조화며 , 문과 창문 장식의 디테일을 계층적 구조로 저장
1. Introduction1. Introduction
그림 1. 절차적 모델의 새로운 형상 문법 CGA 를 이용한 어플리케이션
◇ CGA 는 context sensitive shape rule 을 기반으로 함
◇ 정확한 표기법
◇ 빌딩 절차적 모델링의 context 에서의 상세함
◇ 본 논문의 생산 시스템의 밑그림이 된 순차적 모델링- Semi-Thue process, Chomsky grammars 등등
◇ 식물의 기하학적 모델링 , L-Systems, LOGO-style turtle
◇ 형상 문법은 본래 선과 점의 배열 형식임
1.1 Related Work1.1 Related Work
그림 2. 왼쪽 : 현재의 Procedural architecture 는 개별적인 볼륨에서 그리며 , 미세하게 split rule 을 사용하기 때문에 원하지 않는 창문 교차가 일어남
오른쪽 : 이 예제는 단지 6 개의 rule 을 가지고 교차 없이 건물을 만듦
1.2 Overview1.2 Overview
1. Introduction
2. Shape grammar
3. 복잡한 형상 구성 , 형상 Interaction
4, 5, 6. 모델링 문제에 대한 예제
7. 큰 도시 환경에 대한 확장
8. 장 , 단점
2. A Shape Grammar for CGA2. A Shape Grammar for CGA
그림 3. 왼쪽 : 형상의 Scope, P 점과 X, Y, Z 축 , S 는 형상을 포함하는 박스 오른쪽 : 3 개의 형상 도형으로 구성된 간단한 빌딩 메스 모델
◇ Shape
- non-terminal 과 terminal 형상이 있음
- 점 P, 벡터 X, Y, Z 좌표축 , Size 벡터 S 로 구성됨
- 문법은 형상을 배치하는 작업을 함
◇ Production process
- 형상 A 의 배치를 가지고 시작할 때 ,
(1) 그 집합에서 symbol B 를 가지고 active 형상을 선택하라
(2) B 에 대해 successor 를 계산하기 위한 production rule 을
선택하라 . 그 집합은 BNEW 임
(3) 형상 B 를 inactive 로 표시하고 , 배치를 위해 형상 BNEW 를 추가하라
- 스텝 (1) 을 계속 하고 만약 배치가 더 이상 non-terminal을
포함하고 있지 않다면 , production process 를 끝내라
2. A Shape Grammar for CGA2. A Shape Grammar for CGA
◇ Notation
- Production rule 의 표기법
- id : rule 번호
- predecessor : successor 로 배치된 non-terminal 형상
- cond : 참이면 이 rule 을 적용함
2. A Shape Grammar for CGA2. A Shape Grammar for CGA
◇ Scope rules
- Scope Position P, Translation : T(tx, ty, tz)
- Rotation : Rx(angle), Ry(angle), Rz(angle)
- Scope Size : S(Sx, Sy, Sz)
- OjectId : I(“ObjId”)
2. A Shape Grammar for CGA2. A Shape Grammar for CGA
◇ Basic split rule
- basic split rule 은 현재 scope 를 하나의 축으로 쪼갬
2. A Shape Grammar for CGA2. A Shape Grammar for CGA
그림 4. 왼쪽 : 기본 정면 디자인 오른쪽 : 3 층에 대한 간단한 split
◇ Scaling of rule
- 이전 페이지의 y = 12.8
- 만약 다른 Scope 의 경우라면 , 크기가 조절이 됨
- 그냥 값은 절대값이며 , 문자 r 이 붙으면 상대값으로 표현
2. A Shape Grammar for CGA2. A Shape Grammar for CGA
◇ Repeat
- split rule 에서 명시된 요소로 타일화 함
2. A Shape Grammar for CGA2. A Shape Grammar for CGA
- floor 의 X 축을 따라 B 가 repetitions 만큼 타일화 됨
- repetitions = [Scope.sx/2]
◇ Component split
- Comp 명령어는 더 낮은 차원의 형상으로 쪼갬
2. A Shape Grammar for CGA2. A Shape Grammar for CGA
- Comp(“faces”){A} 는 3 차원 형상의 각 면을 Symbol A 로 형상을 생성
- Comp(“edges”){B}, Comp(“vertices”){C} 은 각각 edges, vertices 로 쪼갬
- Comp(“edge”, 3){A} 는 세 번째 edge 로 정렬된 것을 형상 A 로 생성
3. Mass Modeling3. Mass Modeling
◇ 이전 섹션에서는 복잡한 형상을 표현하는 문법에 대해 설명
◇ Mass Model 을 만드는 방법
◇ façade 와 지붕의 디테일을 만드는 방법
◇ Mass Model 로 부터 façade 와 지붕으로의 변화를 푸는 기술
3.1 Assembling Solids3.1 Assembling Solids
그림 5. Mass Model 에 대한 기본 형상 vocabulary
그림 6. 왼쪽 : 타워의 Mess Model, 가운데 : footprint, 오른쪽 : The same façade rule has been applied onto the different types of solids
그림 7. 지붕타입 : gambrel, cone, gabled hipped..
◇ 주어진 빌딩 부지에 Translation, Rotation, Scaling, Split 연산을 이용하여 Mass Model 을 만듦
◇ CGA shape 문법을 이용하여 Petronas Tower 를 만들지만 위쪽의 뾰족한 부분은 그림 7 과 같은 지붕형상을 이용해야 함
3.1 Assembling Solids3.1 Assembling Solids
그림 8. Volumetric 형상의 결합으로 복잡한 폴리곤이 생성됨
◇ Problem of complex surfaces
- Visible surface 폴리곤을 계산하는 것은 사소한 일이 아님
- façade grammar 에 대한 non-terminal symbol 을 할당하는 간단한 메커니즘이 없음
- 위 문제의 해결책은 Mass Model 을 배치하는 동안 절차적으로 모델링을 하여 단순함을 유지하는 것임
3.1 Assembling Solids3.1 Assembling Solids
◇ Modeling strategy
- 먼저 , 3 차원 형상을 위치시키기 위해 3 차원 scope 를 사용함
- façade, roof surface 를 3 차원에서 추출하여 2 차원 scope 를 만듦
- 같은 방법으로 edge 를 2 차원에서 1 차원 scope 로 추출함
- 일치하는 디자인에 대한 솔루션은 두 개의 메커니즘이 있음 (1) 공간적인 겹침을 테스트함 (Occlusion) (2) 형상 배치에서 근처의 중요한 선과 면을 테스트함 (Snap lines)
3.2 Occlusion3.2 Occlusion
◇ Occlusion 조회는 형상들 사이의 겹침을 테스트함
◇ no occlusion(“none”), partial occlusion(“part”), full occlusion(“full”)
(1) 유도 트리로 저장한 것들을 사용할 수 있음
(2) 명시된 라벨을 가지고 형상의 부분 집합에 대한 조회 ex) Shape.occ(“balcony”)
(3) 가장 중요한 부분의 하나는 유도 트리에서 현재 형상 predecessor 를 제외하고 모든 형상을 포함함
3.2 Occlusion3.2 Occlusion
6: tile : Shape.occ(“ noparent”) == “ none” window7: tile : Shape.occ(“ noparent”) == “ part” wall8: tile : Shape.occ(“ noparent”) == “ full” ε
3.3 Snapping3.3 Snapping
왼쪽은 형상이 겹쳐있으며 , 오른쪽은 그것을 정렬 함
3.3 Snapping3.3 Snapping
◇ Repeat split:1: floor Repeat(“X”,0.2r){ B }
◇ Subdivision split:1: floor Subdiv(“X”,1r,1r,1r,1r,1r){ B | B | B | B | B }
3.3 Snapping3.3 Snapping
◇ Repeat split:1: floor Repeat(“XS”,0.2r){ B }
◇ Subdivision split:1: floor Subdiv(“XS”,1r,1r,1r,1r,1r){ B | B | B | B | B }
4. A Simple Building Model
4. A Simple Building Model
5. A Model for Office Building
5. A Model for Office Building
5. A Model for Office Building
5. A Model for Office Building
6. A Model for Single Family Homes
6. A Model for Single Family Homes
◇ Nice Interplay
1) 토지의 모서리를 나누고 펜스근처에 나무를 배치
2) front, back yard 와 집을 나눔
3) 길을 만들고 거리에 규칙적으로 나무를 배치
4) 차고문과 연결된 차도를 만들고 입구와 연결된 보도를 만듦
7. Results7. Results
◇ 유저 인터페이스
- Text Editor for rules
- GIS Viewer
- Interactive editing
◇ CityEngine framework 를 통합함
◇ 크고 자세한 모델을 만들 수 있음
◇ 그림 1 왼쪽과 같은 5 만 폴리곤의 계산이 1 초 정도 소요됨
7. Results7. Results
◇ 도시 모델링을 계산하기 위해 190 개의 룰을 사용
◇ 도시의 결과는 High LOD 14 억 폴리곤 , Middle LOD 3,100,000 폴리곤 , Low LOD 170,000 폴리곤
7. Results7. Results
8. Conclusion8. Conclusion
◇ 큰 스케일의 도시모델을 얻기 위한 빌딩의 절차적 모델링에 대한 새로운 형상 문법인 CGA shape 을 소개
◇ 지붕의 디자인을 포함하는 빌딩 볼륨메트릭 메스 모델링 부분이
주목 할 만 함
◇ 본 논문은 학계와 산업계에서 만들어진 어떤 도시 모델보다 더 기하학적으로 자세하고 큰 도시 모델을 생성