HISE Logo Forum
    • Categories
    • Register
    • Login

    Some new on the graphic side!

    Scheduled Pinned Locked Moved Blog Entries
    7 Posts 3 Posters 174 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ustkU
      ustk
      last edited by

      Can't help pressing F5 in the forum...

      d.healeyD 1 Reply Last reply Reply Quote 1
      • d.healeyD
        d.healey @ustk
        last edited by

        @ustk Got a short summary?

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

        ustkU 1 Reply Last reply Reply Quote 0
        • ustkU
          ustk @d.healey
          last edited by ustk

          @d-healey In short Matt Gonzalez (indie, not part of the Juce team) further developed Direct2D which was abandoned, with amazing performances.

          But still it’s very old technology, so he’s working on integrating more recent stuff, like Metal just to name one. The work is in progress for a smooth multiplateform compliance, that we should be able to use transparently, as the core C++ level of the Graphic class shouldn’t change much.

          In the end the goal is to send all computation to the GPU, freeing almost entirely the CPU.

          Would be really cool to see more officials stepping into it!

          Can't help pressing F5 in the forum...

          d.healeyD 1 Reply Last reply Reply Quote 0
          • d.healeyD
            d.healey @ustk
            last edited by

            @ustk Any mention of Vulkan?

            Libre Wave - Freedom respecting instruments and effects
            My Patreon - HISE tutorials
            YouTube Channel - Public HISE tutorials

            ustkU 1 Reply Last reply Reply Quote 0
            • ustkU
              ustk @d.healey
              last edited by

              @d-healey yes he mentioned Vulkan. Now I just watched it once and my limited English prevented me from understanding if all will be incorporated, at least by himself. Matt’s talking about what he’s dreaming to see implemented, but I don’t know if he’ll be able to get all the job done alone…

              Can't help pressing F5 in the forum...

              d.healeyD 1 Reply Last reply Reply Quote 1
              • d.healeyD
                d.healey @ustk
                last edited by

                @ustk Cool, thanks for the info :)

                Libre Wave - Freedom respecting instruments and effects
                My Patreon - HISE tutorials
                YouTube Channel - Public HISE tutorials

                1 Reply Last reply Reply Quote 0
                • A
                  aaronventure
                  last edited by aaronventure

                  don't forget you can just feed the transcript into chatgpt and ask about it, though the accuracy will depend on the transcript accuracy which can suffer when acronyms are used or the speakers' english is not very good. If you feed in the transcript with timestamps, you can just ask for a timestamp for specific claims and check it out.

                  Here’s a summary of Matt Gonzalez’s talk on JUCE Graphics: Past, Present, and Future:

                  Introduction

                  • Background: Matt Gonzalez is a veteran audio developer with over 20 years of experience, known for contributions to JUCE 8's Direct2D graphics.
                  • Focus: This talk discusses the evolution, technical details, and future direction of JUCE's graphics system, particularly in moving from CPU to GPU rendering.

                  The State of JUCE Graphics

                  • JUCE Strengths:
                    • Cross-platform compatibility.
                    • Excellent for audio processing.
                  • Historical Weakness:
                    • Graphics performance has been a longstanding pain point for JUCE users.
                    • Historically reliant on a CPU-based software renderer, which limits rendering speed and capability.

                  Transition to GPU Rendering

                  • Direct2D Implementation:
                    • Matt reworked JUCE’s Direct2D renderer during the pandemic, enabling GPU-based rendering for JUCE applications on Windows.
                    • Direct2D bypasses the CPU for rasterization tasks, utilizing the GPU for significant performance improvements.
                    • Demonstrations showed up to a 10x speedup in certain scenarios (e.g., tiling and transforming images).

                  Challenges in Transition

                  1. GPU-Specific Issues:
                    • GPUs are optimized for 3D rendering, so 2D tasks like stroking paths, text rendering, and clipping present challenges.
                  2. Legacy Compatibility:
                    • Ensuring compatibility with existing JUCE components and the software renderer required addressing legacy constraints.
                    • Examples:
                      • Maintaining support for nested renderers (Direct2D, OpenGL, GDI).
                      • Adapting the JUCE image class for GPU-based storage.
                  3. Conceptual Shifts:
                    • Moving graphics tasks to the GPU necessitates new mental models, as GPU rendering involves massively parallel processing.
                  4. Design Trade-Offs:
                    • Balancing ease of use for developers with cutting-edge performance required difficult decisions.

                  Advancing JUCE Graphics

                  • New Features via GPU Rendering:

                    • Mesh Gradients: Advanced gradients with flexible control over color transitions and shapes.
                    • Real-Time Effects: Blur, embossing, and shadowing effects executed directly on the GPU.
                    • Dynamic Rendering: Procedurally generated UI elements like buttons, eliminating the need for pre-rendered assets.
                  • Future Goals:

                    • Replace the low-level graphics context (LLGC) entirely with GPU-based solutions.
                    • Build a cross-platform GPU renderer that works with Vulkan, Metal, and DirectX 12 for all platforms.
                    • Shift all rendering logic to shaders for maximum performance and flexibility.

                  Prototype Metal Renderer

                  • Matt demonstrated a Metal-based renderer for macOS, achieving 4-5x speedups over Core Graphics.
                  • Key Advantages:
                    • Seamlessly integrates with existing JUCE graphics APIs.
                    • Opens possibilities for developers to leverage GPU shaders for custom effects and advanced visuals.

                  Community Contributions

                  • MCAL Module: A new library developed by Matt, providing additional Direct2D features not included in JUCE 8, such as advanced gradients and image processing effects.
                  • Call to Action: Developers are encouraged to experiment with these tools and provide feedback to shape future development.

                  Closing Thoughts

                  • JUCE’s transition to GPU rendering marks a significant leap forward, enabling richer, faster, and more visually dynamic UIs.
                  • Challenges remain in balancing legacy compatibility with innovation, but progress in tools like Direct2D and Metal sets the stage for a modern, cross-platform graphics pipeline.

                  Resources & Contact

                  • Recommended resources: Metal by Example and JUCE forums for further exploration.
                  • Matt encourages discussions and questions through Discord for developers eager to delve deeper.

                  This talk underscores JUCE’s journey from outdated rendering to modern GPU-based solutions, highlighting exciting new possibilities for developers.

                  1 Reply Last reply Reply Quote 3
                  • First post
                    Last post

                  34

                  Online

                  1.7k

                  Users

                  11.8k

                  Topics

                  102.7k

                  Posts