CityGML is an OpenGeospatial (OGC) standard for describing 3D models of cities and landscapes. It describes buildings, roads, rivers, bridges, vegetation, and city furniture using a hierarchical XML format. CityGML has support for levels of details (LODs) which can be used to speed up loading and rendering. Recently, we have added a new CityGML reader to VTK and ParaView in order to support IARPA CORE3D, an ongoing effort which is producing Urban 3D data from satellite imagery and point clouds. The reader creates a multiblock dataset with field arrays to specify the texture file and colors (material) associated with each block.
Because VTK does not support (yet) applying texture or color to individual blocks, we use a ParaView script (see citygml-paraview-apply-texture) to flatten the multiblock dataset so we can color and texture the resulting polygonal datasets. We use a similar technique in VTK to test the reader (see TestCityGMLReader.cxx)
The reader has two parameters: level of detail (LOD) which specifies the LOD we read the elements from, and use transparency as opacity. Because the sample file used to generate the previous images specifies opacity values rather than transparency values, the reader needs this second option set. The figure below shows another sample CityGML file displayed in ParaView.
The CityGML reader is available in VTK and ParaView source code. If you have any questions or need consulting related to this work, please email us at email@example.com.
Supported by the Intelligence Advanced Research Projects Activity (IARPA) via Department of Interior/ Interior Business Center (DOI/IBC) contract number D17PC00286. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright annotation thereon. Disclaimer: The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of IARPA, DOI/IBC, or the U.S. Government.
There is also an additional parameter, number of buildings that specifies how many buildings should be read from the file.