{"id":108,"date":"2011-03-12T23:55:34","date_gmt":"2011-03-12T22:55:34","guid":{"rendered":"http:\/\/web1611.server104.greatnet.de\/wordpress\/?page_id=108"},"modified":"2026-02-04T19:55:09","modified_gmt":"2026-02-04T18:55:09","slug":"pbase","status":"publish","type":"page","link":"https:\/\/www.michael-bussler.de\/?page_id=108","title":{"rendered":"Fire and Smoke Simulation"},"content":{"rendered":"<p>Our Fire and Smoke simulation was the result of a practical course \"Physically-Based Animations and Special Effects\" <span style=\"line-height: 1.714285714; font-size: 1rem;\">at the computer graphics group at RWTH Aachen University at which I took part in 2009. <\/span>During one semester, we implemented a technique similar to the one described in the paper \"<a title=\"search google scholar for &quot;Animating Suspended Particle Explosions&quot;\" href=\"http:\/\/scholar.google.de\/scholar?q=Animating+Suspended+Particle+Explosions\" target=\"_blank\" rel=\"noopener\">Animating Suspended Particle Explosions<\/a>\" by Feldman et. al.: A Particle System Suspended In and Interacting with a Fluid Simulation.<\/p>\n<h2>Cross-Platform Implementation<\/h2>\n<p>The program and the GUI were implemented using the Qt Framework. By using qmake, the program can be compiled and executed under Windows and Linux.<\/p>\n<p><a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/gui.png\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-314 alignnone\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/gui-1024x783.png\" alt=\"A screenshot of the graphical user interface\" width=\"438\" height=\"334\" srcset=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/gui-1024x783.png 1024w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/gui-300x229.png 300w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/gui.png 1219w\" sizes=\"(max-width: 438px) 100vw, 438px\" \/><\/a><\/p>\n<h2><span style=\"font-size: 1.285714286rem; line-height: 1.6;\">Particle Rendering<\/span><\/h2>\n<div id=\"attachment_325\" style=\"width: 74px\" class=\"wp-caption alignright\"><a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/blob_inv.png\"><img aria-describedby=\"caption-attachment-325\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-325\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/blob_inv.png\" alt=\"Alpha\" width=\"64\" height=\"64\" \/><\/a><p id=\"caption-attachment-325\" class=\"wp-caption-text\">Alpha<\/p><\/div>\n<p>One challenge during the development of our demo, was to create a reasonable visual impression for the \"burning\" particles. Our idea was to render the burning particles as billboards where shape of the particles can be controlled using an appropriate alpha texture.<\/p>\n<p>The billboards are rendered with special textures defining their current color as the particles deplete and end up as smoke. This also yields an additional degree of freedom for graphic artists:<\/p>\n<p><a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/Feuer1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-322 alignleft\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/Feuer1.png\" alt=\"burn texture\" width=\"128\" height=\"128\" \/><\/a> <a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/Feuer3.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-323 alignleft\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/Feuer3.png\" alt=\"burn texture\" width=\"128\" height=\"128\" \/><\/a> <a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/burn.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-321 alignleft\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/burn.png\" alt=\"burn texture\" width=\"128\" height=\"128\" \/><\/a><\/p>\n<h2>Deep Shadow Map<\/h2>\n<p>Our implementation uses a 3D shadow map of variable resolution for the calculation of\u00c2\u00a0volumetric shadow and light effects. Using this approach, we are able to render the glow effect of the burning particles, as well as self shadowing of the particle cloud and shadows on the ground.<\/p>\n<p><a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/boom4.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-327\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/boom4-300x262.jpg\" alt=\"boom4\" width=\"270\" height=\"236\" srcset=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/boom4-300x262.jpg 300w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/boom4.jpg 333w\" sizes=\"(max-width: 270px) 100vw, 270px\" \/><\/a><a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/shadow3.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-326 alignright\" src=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/shadow3-300x224.png\" alt=\"shadow3\" width=\"300\" height=\"224\" srcset=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/shadow3-300x224.png 300w, https:\/\/www.michael-bussler.de\/media\/2011\/03\/shadow3.png 382w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>For more information, please also have a look at our <a href=\"https:\/\/www.michael-bussler.de\/media\/2011\/03\/final.pdf\">final presentation slides<\/a>.<\/p>\n<h1>Results<\/h1>\n<p><span style=\"line-height: 1.714285714; font-size: 1rem;\">The following videos show some of our results:<\/span><\/p>\n<h2>Single Burst<\/h2>\n<ul>\n<li>grid: 20 x 30 x 20<\/li>\n<li>85.000 particles total<\/li>\n<li>deep shadow map to calculate self occlusion<\/li>\n<\/ul>\n<div class=\"video-wrapper\">\n<figure class=\"video-container\"><iframe loading=\"lazy\" title=\"Single Burst\" width=\"625\" height=\"469\" src=\"https:\/\/www.youtube.com\/embed\/q9fO3ZIvLmo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/figure>\n<\/div>\n<h2>Flamethrower<\/h2>\n<ul>\n<li>grid: 40 x 30 x 20<\/li>\n<li>2000 new particles per step<\/li>\n<li>CPU implementation, rendered with 2 fps<\/li>\n<\/ul>\n<div class=\"video-wrapper\">\n<figure class=\"video-container\"><iframe loading=\"lazy\" title=\"Flamethrower long\" width=\"625\" height=\"469\" src=\"https:\/\/www.youtube.com\/embed\/F8xGKkKkJB0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/figure>\n<\/div>\n<h2>ACG Logo<\/h2>\n<ul>\n<li>50.000 particles total<\/li>\n<li>random wind field<\/li>\n<\/ul>\n<div class=\"video-wrapper\">\n<figure class=\"video-container\"><iframe loading=\"lazy\" title=\"ACG Logo\" width=\"625\" height=\"469\" src=\"https:\/\/www.youtube.com\/embed\/hkWXGRom2fE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/figure>\n<\/div>\n<h2><\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Our Fire and Smoke simulation was the result of a practical course &#8220;Physically-Based Animations and Special Effects&#8221; at the computer graphics group at RWTH Aachen University at which I took part in 2009. During one semester, we implemented a technique similar to the one described in the paper &#8220;Animating Suspended Particle Explosions&#8221; by Feldman et. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":66,"menu_order":118,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.michael-bussler.de\/index.php?rest_route=\/wp\/v2\/pages\/108"}],"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=108"}],"version-history":[{"count":12,"href":"https:\/\/www.michael-bussler.de\/index.php?rest_route=\/wp\/v2\/pages\/108\/revisions"}],"predecessor-version":[{"id":706,"href":"https:\/\/www.michael-bussler.de\/index.php?rest_route=\/wp\/v2\/pages\/108\/revisions\/706"}],"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=108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}