Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Free access

Real-Time Procedural Generation with GPU Work Graphs

Published: 09 August 2024 Publication History
  • Get Citation Alerts
  • Abstract

    We present a system for real-time procedural generation that makes use of the novel GPU programming model, work graphs. The nodes of a work graph are shaders, which dynamically generate new workloads for connected nodes. This greatly simplifies the implementation of recursive procedural algorithms on GPUs. Combined with GPU ray tracing and procedural mesh shaders, our system makes use of this graph structure to tackle various common problems of procedural generation. Our system is very easy to implement, requiring no additional data structures from what would already be available in a modern rendering engine. We demonstrate the real-time editing capabilities on representative examples. We augment the scene in the teaser image with 79,710 instances in 3.74 ms on an AMD Radeon RX 7900 XTX.

    Supplemental Material

    MP4 File - fast forward video
    fast forward video
    MP4 File - overview video
    overview video

    References

    [1]
    Oswin Aichholzer, Franz Aurenhammer, David Alberts, and Bernd Gärtner. 1996. A novel type of skeleton for polygons. Springer.
    [2]
    Timo Aila and Samuli Laine. 2009. Understanding the efficiency of ray traversal on GPUs. In Proceedings of the conference on high performance graphics 2009. 145--149.
    [3]
    Gill Barequet and Evgeny Yakersberg. 2003. Morphing between shapes by using their straight skeletons. In Proceedings of the nineteenth annual symposium on Computational geometry. 378--379.
    [4]
    Blender Online Community. 2024. Blender 4.1 - a 3D modelling and rendering package. http://www.blender.org
    [5]
    Kévin Boulanger, Sumanta N. Pattanaik, and Kadi Bouatouch. 2009. Rendering Grass in Real Time with Dynamic Lighting. 29, 1 (2009), 32--41.
    [6]
    Claus Brenner. 2000. Towards fully automatic generation of city models. International Archives of Photogrammetry and Remote Sensing 33, B3/1; PART 3 (2000), 84--92.
    [7]
    Cyprien Buron, Jean-Eudes Marvie, Gaël Guennebaud, and Xavier Granier. 2015. Dynamic on-mesh procedural generation. In Proceedings of Graphics Interface. Canadian Human-Computer Communications Society, 17--24.
    [8]
    Mark Dokter, Jozef Hladky, Mathias Parger, Dieter Schmalstieg, Hans-Peter Seidel, and Markus Steinberger. 2019. Hierarchical Rasterization of Curved Primitives for Vector Graphics Rendering on the GPU. Computer Graphics Forum 38, 2 (2019), 93--103.
    [9]
    Epic Games. 2024. Procedural Content Generation Framework. (2024). https://dev.epicgames.com/documentation/en-us/unreal-engine/procedural-content-generation--framework-in-unreal-engine
    [10]
    Carsten Faber, Max Oberberger, Bastian Kuth, and Quirin Meyer. 2024. Procedural grass rendering. GPUOpen, March (2024). https://gpuopen.com/learn/mesh%5Fshaders/mesh%5Fshaders-procedural%5Fgrass%5Frendering/
    [11]
    Zengzhi Fan, Hongwei Li, Karl Hillesland, and Bin Sheng. 2015. Simulation and rendering for millions of grass blades. In Proceedings of the 19th Symposium on Interactive 3D Graphics and Games (San Francisco, California) (i3D '15). ACM, New York, NY, USA, 55--60.
    [12]
    Benedict R. Gaster and Lee Howes. 2012. Can GPGPU Programming Be Liberated from the Data-Parallel Bottleneck? Computer 45, 8 (2012), 42--52.
    [13]
    Tobias Hector, Matthäus Chajdas, Maciej Jesionowski, Robert Martin, Qun Lin, Rex Xu, Dominik Witczak, Karthik Srinivasan, Nicolai Haehnle, and Stuart Smith. 2023. VK_AMDX_shader_enqueue.
    [14]
    Klemens Jahrmann and Michael Wimmer. 2013. Interactive Grass Rendering Using Real-Time Tessellation. In WSCG 2013 Full Paper Proceedings (Plzen, CZ), Manuel Oliveira and Vaclav Skala (Eds.). 114--122.
    [15]
    Kavosh Jazar and Paul G. Kry. 2023. Temporal Set Inversion for Animated Implicits. ACM Trans. Graph. 42, 4, Article 134 (jul 2023), 18 pages.
    [16]
    Michael Kenzel, Stefan Lemme, Richard Membarth, Matthias Kurtenacker, Hugo Devillers, Markus Steinberger, and Philipp Slusallek. 2023. AnyQ: An Evaluation Framework for Massively-Parallel Queue Algorithms. In 2023 IEEE International Parallel and Distributed Processing Symposium (IPDPS). 736--745.
    [17]
    Bernhard Kerbl, Michael Kenzel, Joerg H. Mueller, Dieter Schmalstieg, and Markus Steinberger. 2018. The Broker Queue: A Fast, Linearizable FIFO Queue for Fine-Granular Work Distribution on the GPU. In Proceedings of the 2018 International Conference on Supercomputing (Beijing, China) (ICS '18). ACM, New York, NY, USA, 76--85.
    [18]
    Bernhard Kerbl, Michael Kenzel, Dieter Schmalstieg, Hans-Peter Seidel, and Markus Steinberger. 2017. Hierarchical Bucket Queuing for Fine-Grained Priority Scheduling on the GPU. Computer Graphics Forum 36, 8 (2017), 232--246.
    [19]
    Bernhard Kerbl, Michael Kenzel, Martin Winter, and Markus Steinberger. 2022. CUDA and Applications to Task-based Programming. Full-day tutorial, presented at Eurographics '22 (Reims, France).
    [20]
    Markus Lipp, Peter Wonka, and Michael Wimmer. 2010. Parallel generation of multiple L-systems. Computers & Graphics 34, 5 (2010), 585--593. CAD/GRAPHICS 2009 Extended papers from the 2009 Sketch-Based Interfaces and Modeling Conference Vision, Modeling & Visualization.
    [21]
    Amazon Lumberyard. 2017. Amazon Lumberyard Bistro, Open Research Content Archive (ORCA). http://developer.nvidia.com/orca/amazon-lumberyard-bistro
    [22]
    Jean-Eudes Marvie, Cyprien Buron, Pascal Gautron, Patrice Hirtzlin, and Gaël Sourimant. 2012. GPU Shape Grammars. Computer Graphics Forum (2012).
    [23]
    Frank Meinl, Katica Putica, Cristiano Siqueria, Timothy Heath, Justin Prazen, Sebastian Herholz, Bruce Cherniak, and Anton Kaplanyan. 2022. Intel Sample Library. https://www.intel.com/content/www/us/en/developer/topic-technology/graphics-processing-research/samples.html
    [24]
    Paul Merrell, Eric Schkufza, and Vladlen Koltun. 2010. Computer-generated residential building layouts. In ACM SIGGRAPH Asia 2010 papers. 1--12.
    [25]
    Microsoft Cooperation 2024. DirectX-Specs. Microsoft Cooperation. https://github.com/microsoft/DirectX-Specs
    [26]
    Pascal Müller, Peter Wonka, Simon Haegler, Andreas Ulmer, and Luc Van Gool. 2006. Procedural modeling of buildings. In ACM SIGGRAPH 2006 Papers. 614--623.
    [27]
    NVIDIA 2024. CUDA C++ Programming Guide. NVIDIA.
    [28]
    Timo Oksanen and Arto Visala. 2009. Coverage path planning algorithms for agricultural field machines. Journal of field robotics 26, 8 (2009), 651--668.
    [29]
    Marc S. Orr, Bradford M. Beckmann, Steven K. Reinhardt, and David A. Wood. 2014. Fine-grain task aggregation and coordination on GPUs. In 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA). 181--192.
    [30]
    Dimitris Papavasiliou. 2015. Real-time grass (and other procedural objects) on terrain. Journal of Computer Graphics Techniques (JCGT) 4, 1 (2015), 26--49.
    [31]
    Yoav IH Parish and Pascal Müller. 2001. Procedural modeling of cities. In Proceedings of the 28th annual conference on Computer graphics and interactive techniques. 301--308.
    [32]
    Steven G. Parker, James Bigler, Andreas Dietrich, Heiko Friedrich, Jared Hoberock, David Luebke, David McAllister, Morgan McGuire, Keith Morley, Austin Robison, and Martin Stich. 2010. OptiX: a general purpose ray tracing engine. ACM Trans. Graph. 29, 4, Article 66 (jul 2010).
    [33]
    Anjul Patney, Stanley Tzeng, Kerry A. Seitz, and John D. Owens. 2015. Piko: a framework for authoring programmable graphics pipelines. ACM Trans. Graph. 34, 4, Article 147 (jul 2015), 13 pages.
    [34]
    Ken Perlin. 2002. Improving noise. In Proceedings of the 29th annual conference on Computer graphics and interactive techniques. 681--682.
    [35]
    P. Prusinkiewicz and Aristid Lindenmayer. 1990. The algorithmic beauty of plants. Springer-Verlag, Berlin, Heidelberg.
    [36]
    Thomas R.W. Scogland and Wu-chun Feng. 2015. Design and Evaluation of Scalable Concurrent Queues for Many-Core Architectures. In Proceedings of the 6th ACM/SPEC International Conference on Performance Engineering (Austin, Texas, USA) (ICPE '15). ACM, New York, NY, USA, 63--74.
    [37]
    Side Effects Software Inc. 2023. Houdini 20. https://www.sidefx.com/products/houdini/
    [38]
    Markus Steinberger, Bernhard Kainz, Bernhard Kerbl, Stefan Hauswiesner, Michael Kenzel, and Dieter Schmalstieg. 2012. Softshell: dynamic scheduling on GPUs. ACM Trans. Graph. 31, 6, Article 161 (nov 2012), 11 pages.
    [39]
    Markus Steinberger, Michael Kenzel, Pedro Boechat, Bernhard Kerbl, Mark Dokter, and Dieter Schmalstieg. 2014a. Whip-pletree: task-based scheduling of dynamic workloads on the GPU. ACM Trans. Graph. 33, 6, Article 228 (nov 2014), 11 pages.
    [40]
    Markus Steinberger, Michael Kenzel, Bernhard Kainz, Jörg Müller, Peter Wonka, and Dieter Schmalstieg. 2014b. Parallel Generation of Architecture on the GPU. Computer Graphics Forum (2014).
    [41]
    George Stiny and James Gips. 1971. Shape Grammars and the Generative Specification of Painting and Sculpture. IFIP Congress 71, 1460--1465.
    [42]
    Stanley Tzeng, Anjul Patney, and John D. Owens. 2010. Task management for irregular-parallel workloads on the GPU. In Proceedings of the Conference on High Performance Graphics (Saarbrucken, Germany) (HPG '10). Eurographics Association, 29--37.
    [43]
    Carlos A Vanegas, Daniel G Aliaga, Peter Wonka, Pascal Müller, Paul Waddell, and Benjamin Watson. 2010. Modelling the appearance and behaviour of urban spaces. In Computer Graphics Forum, Vol. 29. Wiley Online Library, 25--42.
    [44]
    Carlos A Vanegas, Tom Kelly, Basil Weber, Jan Halatsch, Daniel G Aliaga, and Pascal Müller. 2012. Procedural generation of parcels in urban modeling. In Computer graphics forum, Vol. 31. Wiley Online Library, 681--690.
    [45]
    Martin Winter, Mathias Parger, Daniel Mlakar, and Markus Steinberger. 2021. Are dynamic memory managers on GPUs slow? A survey and benchmarks. In Proceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. 219--233.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Proceedings of the ACM on Computer Graphics and Interactive Techniques
    Proceedings of the ACM on Computer Graphics and Interactive Techniques  Volume 7, Issue 3
    August 2024
    363 pages
    EISSN:2577-6193
    DOI:10.1145/3688389
    Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 09 August 2024
    Published in PACMCGIT Volume 7, Issue 3

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. geometry generation
    2. mesh shaders
    3. ray tracing
    4. work graphs

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 8
      Total Downloads
    • Downloads (Last 12 months)8
    • Downloads (Last 6 weeks)8
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Full Access

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media