{"id":106,"date":"2011-03-12T23:55:00","date_gmt":"2011-03-12T22:55:00","guid":{"rendered":"http:\/\/web1611.server104.greatnet.de\/wordpress\/?page_id=106"},"modified":"2026-02-04T19:56:25","modified_gmt":"2026-02-04T18:56:25","slug":"vap","status":"publish","type":"page","link":"https:\/\/www.michael-bussler.de\/?page_id=106","title":{"rendered":"Virtual Aachen Project"},"content":{"rendered":"<p>The idea of the \"Virtual Aachen Project\" was to create a virtual version of the city of Aachen during a practical course held in 2008 at the <a title=\"I8 - Computer Graphics and Multimedia\" href=\"http:\/\/www.graphics.rwth-aachen.de\">computer graphics group<\/a> at RWTH Aachen. The same was previously tried by a group of architects who were only able to reproduce a small fracture of the city by hand.<\/p>\n<p>During the course, groups of 2-3 students focused on the different parts, like reproducing the city layout from city maps, gathering textures, creating hires models of highly recognizable city buildings or bringing it all together in the final rendering to create a virtual walk-through of the city of Aachen. I've been part of the rendering group, where we need to visualize the large amounts of resulting geometry and texture data provided by the other groups in real-time using our own OpenGL-based 3D graphics engine. This is a screen shot of the final result, including a dynamic sky sphere:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/finalcity.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter  wp-image-155\" title=\"Final Rendering\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/finalcity-1024x691.png\" alt=\"\" width=\"540\" height=\"365\" srcset=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/finalcity-1024x691.png 1024w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/finalcity-300x202.png 300w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/finalcity-444x300.png 444w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/finalcity.png 1261w\" sizes=\"(max-width: 540px) 100vw, 540px\" \/><\/a><\/p>\n<h2>The City Model<\/h2>\n<p>The 3D model of Aachen was generated using highly detailed city maps provided by the land registry office (\"Katasteramt\") of Aachen:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/Bildschirmphoto2.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-large wp-image-144\" title=\"Mesh of Aachen\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/Bildschirmphoto2-1024x782.png\" alt=\"\" width=\"400\" height=\"305\" srcset=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/Bildschirmphoto2-1024x782.png 1024w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/Bildschirmphoto2-300x229.png 300w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/Bildschirmphoto2-392x300.png 392w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/Bildschirmphoto2.png 1280w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<h2>Models of Landmark Buildings<\/h2>\n<p>Special models were created during the project to leverage the recognition of certain landmark buildings like the \"Aachener Dom\" or the \"Ponttor\":<\/p>\n<p><a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/dom.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-147 alignleft\" title=\"Aachen Cathedral\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/dom-266x300.png\" alt=\"\" width=\"177\" height=\"200\" srcset=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/dom-266x300.png 266w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/dom.png 513w\" sizes=\"(max-width: 177px) 100vw, 177px\" \/><\/a><a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/ponttor.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-150 alignright\" title=\"ponttor\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/ponttor-300x275.png\" alt=\"\" width=\"218\" height=\"200\" srcset=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/ponttor-300x275.png 300w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/ponttor-327x300.png 327w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/ponttor.png 445w\" sizes=\"(max-width: 218px) 100vw, 218px\" \/><\/a><\/p>\n<h2>View-dependent texturing<\/h2>\n<p>Some Buildings were textured using images taken from different view positions to allow shader-based view dependent texturing. Have a look at the windows and the sign of the building:<\/p>\n<p><a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/cvdtm_left2.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-263 alignleft\" title=\"cvdtm_left\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/cvdtm_left2-e1300660891624-221x300.png\" alt=\"\" width=\"199\" height=\"270\" srcset=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/cvdtm_left2-e1300660891624-221x300.png 221w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/cvdtm_left2-e1300660891624.png 572w\" sizes=\"(max-width: 199px) 100vw, 199px\" \/><\/a><a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/cvdtm_right1.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-264 alignright\" title=\"cvdtm_right\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/cvdtm_right1-e1300660936773-209x300.png\" alt=\"\" width=\"188\" height=\"270\" srcset=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/cvdtm_right1-e1300660936773-209x300.png 209w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/cvdtm_right1-e1300660936773.png 593w\" sizes=\"(max-width: 188px) 100vw, 188px\" \/><\/a><\/p>\n<h2>Implementation<\/h2>\n<p style=\"text-align: left;\">The implementation was done in C++, using our own octree implementation for handling the geometry data, as well as OpenGL for the rendering and Qt to design the GUI:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/gui-final.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-275 aligncenter\" title=\"gui-final\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/gui-final-294x300.png\" alt=\"\" width=\"294\" height=\"300\" srcset=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/gui-final-294x300.png 294w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/gui-final.png 728w\" sizes=\"(max-width: 294px) 100vw, 294px\" \/><\/a><\/p>\n<p>For more information, please have a look at our <a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/08\/VAP-Slides.pdf\">presentation slides<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The idea of the &#8220;Virtual Aachen Project&#8221; was to create a virtual version of the city of Aachen during a practical course held in 2008 at the computer graphics group at RWTH Aachen. The same was previously tried by a group of architects who were only able to reproduce a small fracture of the city [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":66,"menu_order":119,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.michael-bussler.de\/index.php?rest_route=\/wp\/v2\/pages\/106"}],"collection":[{"href":"https:\/\/www.michael-bussler.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.michael-bussler.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.michael-bussler.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.michael-bussler.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=106"}],"version-history":[{"count":13,"href":"https:\/\/www.michael-bussler.de\/index.php?rest_route=\/wp\/v2\/pages\/106\/revisions"}],"predecessor-version":[{"id":708,"href":"https:\/\/www.michael-bussler.de\/index.php?rest_route=\/wp\/v2\/pages\/106\/revisions\/708"}],"up":[{"embeddable":true,"href":"https:\/\/www.michael-bussler.de\/index.php?rest_route=\/wp\/v2\/pages\/66"}],"wp:attachment":[{"href":"https:\/\/www.michael-bussler.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}