Graph Perf Update: 1296 chars to Region per Frame:
- RaspiPi4 10.25ms (regioned) + 3.4ms (draw)
- PC 2.97ms (regioned) + 0.36ms (draw)
Performance update from commit 607eb99b9cad227dd7be6d149c6b6cf57d060c35
(Note: There I mentioned the total duration for 20 frames, not per frame)
regioned is the process where all single pre-computed OutlineShape instances per Glyph are processed to become one Region. This process includes our Font layouting and Region.addOutlineShape().
Region.addOutlineShape() itself performs the triangulation of the shapes, compounding of all vertices and pushing all data down to the VBO buffer, ready to be rendered. Hence, the crucial Graph hotspot.
Just in case anybody wonders .. current tasks for me re GraphUI are
- Simplify API, enable a more hidden way for resource details less burden, but keep it open
- Make 'shape' interaction more reactive: resize, drag, ..
- Have a few more 'shapes' maybe
- Show animated text like
- Push movie subtitles to screen
- Modern text animation w/ moving, acceleration, collision, sheering, ...
- Start the 'retention' mode reading description from a file
I have two questions for you:
- Is there another API doing something vaguely similar that could be used as an example in terms of performance and simplicity or a standard?
- Would it be difficult to make Graph UI work with Vulkan or WebGPU?
Today I will add a few blog posts regarding updates in the Graph Type Rendering and UI Saga. This first one covers enhancements with user interaction. Earlier we used a scroll-wheel to translate the Shape in the Scene on its Z-axis. Now we can use a build-in 1-pointer drag-zoom, actually scaling the Shape.
Additionally, GLMediaPlayer has been enhanced to deliver a test-screen (texture image) until the stream delivers the first video packets. This allows using it at any state and removes earlier complications to code its status, i.e. whether the stream is available or not. This is used within GraphUI’s MediaButton, see video below.
... will follow up with text/type animation updates today.