Proceduralization for editing 3d architectural models

The main content of inverse procedural modeling(IPM)

(1)  Infer the split grammar of the building, seek the parameterized grammar rules and/or parameter values that yield the provided model.

(2) Convert a 3D architectural building into a procedural representation

 

 

1. Segmented and labeled components

The input to our approach is a 3D polygonal mesh that can be either manually or automatically segmented. Then, our method performs the component labeling.

1.1 Segmentation

 The segmentation is performed by using an architectural segmentation algorithm that was proposed by ref [1].待补充

1.2 Component labeling

if labels are given by the segmentation approach, then

-compute the bounding box of each component and do a check of triangle counts and bounding box dimensions to ensure the labels are accurate

if no labels are assigned, then

- compare the convex hull of the components in addition to the previous properties to label similar components.

 

 

2. Split grammar definition

The core operation of the grammar is a volumetric split operation.

2.1 Split Tree

A split operation is described by a point dividing an enclosing box into octants and a selection of one of the octants for subsequent use.

A split operation is written as:

where pi is the node to split by a pivot point (vx, vy, vz), and octant q ∈ [1, 8] is extracted. The octant q defines the subvolume corresponding to node pj and it can be logically assigned to either a terminal or a nonterminal of the G.

2.2 Repetition Handling

后面再看。

2.3 Grammar

where G is the grammar, V is the set of non-terminals (i.e., root nodes of subtrees each representing a rule), Σ is the set of terminals (i.e., leaves of T), R is the collection of rules (i.e., split operations), and ω is a starting axiom (i.e., the root node p0).

 

 

 

3.  Grammar extraction

3.1 Tree construction

Goal: organize the labeled input components into a top-down constructed split tree T.

Process:

  • First, all components are placed in a list sorted by decreasing volume of their bounding boxes.
  • Then, the root node p0 is created using the entire building bounding box
  • Afterwards, the next largest component ci from the list is inserted into T. The insertion performs a top-down search to find the parent node Ppci with the tightest fitting bounding box to ci.
  • This step repeats until all components are inserted.

 

3.2 Rule labeling

Goal: identify repeating and non-repeating subtrees – i.e., rules. 

Method:

This approach is inspired by the tree matching algorithms of Apostolico and Galil [3] and consists of two steps:

  • a top-down phase to ensure that similar subtrees are used for the same rule. 

The top-down phase performs a level order comparison of same-label nodes. The comparison includes the node properties as well as the topology of the subtrees.

As for intermediate nodes that were created by the split operator to partition a parent box into a child box - we encode those branches as a "don't care path".

During this comparison, roots of subtrees with similar nodes are marked as repeating occurrences of the same label. If a subtree differs from its group, it is simply given a new

label. 

  • a bottom-up phase to extend subtrees of the same rule to include their parent nodes.

The bottom-up phase carries the labeling up the tree by synchronously comparing parents of same-label root nodes.

 

3.3 Pattern Discovery

 Goal: identify the pattern of repetition of the grammar rules.

Method:

To explicitly discover patterns, we use a transformation space analysis similar to Stava et al[4].

  • First, compute the pairwise distances along each of the x, y, and z axis between all subtree root nodes with same rule label.
  • Then, search for the smallest distance that almost exactly divides all other distances along each axis.

Multiple occurrences of a rule are joined under one node.The smallest distances, the number of occurrences, and the global orientation are converted into the k-parameter pattern use of the subdivide operation (Eqn (3), Figure 4b). For other repetitive use of rules, the common ancestor is output as a rule (Eqn (2), Figure 4c)). Non-repeating and low-repetition subtrees are not considered a pattern and are output as separate rules (Figure 4a).

Eqn (3) is an application pattern of rule R1 to node pi subdivided into sx × sy × sz nodes. The optional vector d = [dx, dy, dz] further defines the pattern:

  • for k = 1, it is the axis of repetition;
  • for k = 2, it is the normal to the plane of repetition,
  • and for k = 3, it is a triplet of Euler angles with respect to each axis.

As an example, the pairwise distances from the upper left window for Figure 4b would be (5,0), (10,0), (0,3), (5,3), (10,3), for upper middle window (5,0), (5,3), (0,3), (5,3), for upper right window: (10,3), (5,3), (0,3), for lower left window: (5,0), (10,0), and for lower middle window: (5,0). If we take the modulo of longer distances (10 modulo 5), the pattern distance is revealed as (5,3) and the frequency of repetition is 3x2x1 along each of the x,y,z axis. The result is the rule “R1(subdivide(pi ,3,2,1))”.

 

3.4 Grammar Exportation

This method is a declare-before-use rule ordering so that contained rules are listed before the containing rules.

Therefore, the output contains: 

  • rule definitions
  • the non-repeating part of the grammar 

Further, leaf nodes Σ contain actual geometry.

 

 

 

References:

[1] Demir I, Aliaga D G, Benes B. Coupled segmentation and similarity detection for architectural models[J]. ACM Transactions on Graphics (TOG), 2015, 34(4): 1-11.

[2] Demir I, Aliaga D G, Benes B. Proceduralization for editing 3d architectural models[C]//2016 Fourth International Conference on 3D Vision (3DV). IEEE, 2016: 194-202.

[3] A. Apostolico and Z. Galil, editors. Pattern Matching Algorithms. Oxford University Press, Oxford, UK, 199

[4] O. Stava, B. Benes, R. Mech, D. G. Aliaga, and P. Kristof. Inverse procedural modeling by automatic generation of L-systems. Comp. Graph. Forum, 29(2):665–674, 2010. 5

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值