Procedural Generation of Parcels in Urban Modeling Appendix
Procedural Generation of Parcels in Urban Modeling Appendix
Procedural Generation of Parcels in Urban Modeling Appendix
11
Appendix A: Pseudocodes Algorithm 1 Straight skeleton subdivision subdivSkeleton(B) L SS computeSkeletonOffset(C(B), do f f set ) LS for each face f SS do Append convertToStrip ( f ) to LS end for LS2 mergeOnLogicalStreets (LS) LS3 xDiagonalEdges (LS2) for each strip s in LS3 do slice (s) end for processSmallLargeOrTriangularLots(LS, Amin , Amax ) xDiagonalEdges(LS) for each strip si LS do vi vertex between si and si+1 t triangular portion at vi if T (vi ) = Previous then assign t to si end if if T (vi ) = Next then assign t to si+1 end if end for Algorithm 2 OBB subdivision subdivOBB(B) L recSubdivOBB(C(B)) recSubdivOBB(l) if area(l) (Amin , Amax ) and f rontSideWidth(l) / / (Wmin ,Wmax ) then s computeSplitLine(l) [lA , lB ] split(B, s) if lA or lB have no street access then Rotate s 90 degrees about the normal vector of the plane containing B, with probability [lA , lB ] split(B, s) end if recSubdivOBB(lA ) recSubdivOBB(lB ) else Append l to L end if computeSplitLine(l) OBB computeOBB(l) Let the direction of l be the direction of the shortest side of OBB Let the pivot point of l be the middle point of OBB Apply a random translation of magnitude dOBB to the pivot point of l, where dOBB is the length of the shortest side of OBB
slice(s) origins sample (s) by n((Wmin +W max)/2, 3) remainder = offset faces of s for each point p origins do normal average normal of B near p Create a ray, r, from p, in direction normal [le f t|right] slice remainder by r Append le f t to L remaining right Append remaining to L end for
12
C. Vanegas, T. Kelly, B. Weber, J. Halatsch, D. Aliaga and P. Mller / Procedural Generation of Parcels in Urban Modeling
Appendix B:
Observed Parcels
a Aerial Image
Parcels & road network Observed parcel areas Procedural Parcels Statistical Comparison
0
Aspect Ratio
2430
observed procedural
Area (m2)
C. Vanegas, T. Kelly, B. Weber, J. Halatsch, D. Aliaga and P. Mller / Procedural Generation of Parcels in Urban Modeling
13
Appendix C:
Figure 12: Side by side comparison between real-world (left) and procedural (middle) parcels. The recursive split operations in [WMWG09] (right) often create unrealistic parcel spikes due to the rudimentary split orientation handling and their main drawback is the lack of user-friendly controllability. As a consequence, the geometry and layout of the resulting parcels are noticeably different from those observed in the real world data.
14
C. Vanegas, T. Kelly, B. Weber, J. Halatsch, D. Aliaga and P. Mller / Procedural Generation of Parcels in Urban Modeling
Appendix D:
Figure 13: Subdivision of blocks into parcels in the ancient Roman town of Pompeii. A comparison between the actual parcels of the city (green) and the procedural parcels generated by our OBB-based algorithm (blue) is shown (Top). Procedural 3D buildings and trees are created on top of these parcels (Bottom).
C. Vanegas, T. Kelly, B. Weber, J. Halatsch, D. Aliaga and P. Mller / Procedural Generation of Parcels in Urban Modeling
15
Appendix E:
Figure 14: Procedural houses, trees placed on our procedural parcels from Fig 1.