-
Notifications
You must be signed in to change notification settings - Fork 4
Description
My TODO for vulkan-shadertoy-launcher:
Small fixes:
- fix iTime on pause - currently iTime adds +1 sec during pause because how timer implemented
- make Resize similar to Shadertoy... maybe - on Shadertoy on resize new resized FBO can read previous non-resized FBO.
In vulkan-shadertoy-launcher - on resize just reset all framebuffers to 0, I still think it is more valid and useful and if someone need to have non-resizeble FBO I have NO_RESIZE_BUF define in main.c, or for demo-apps control state like camera position etc on CPU side and send thru uniform or buffer.\
Implementing missing features:
-
Mipmaps for buffers support - I have no idea how to do proper/correct mipmaps using Vulkan 1.0 without extensions.
As I know fastest way to do mipmaps in Vulkan is - using compute shader https://github.com/nvpro-samples/vk_compute_mipmaps it requires extension. (so I mean il implement it as option, to keep Vulkan 1.0 minimal rendering) -
Video-texture support and cubemaps, and maybe 3d texture support. (video encoding? I dont want include 50Mb ffmpeg libraries)
-
Audio - its simple to generate audio texture Some details on Shadertoy FFT my Godot implementation
But playing audio - for Windows can be used mmsystem, example implementation of mmsystem
But for Linux OS - no idea how to make it simple and small without dependencies, including fmod explode bin-build by 500Kb when original size 50Kb... need look into finding solution for it -
Fix discard in Image shader - maybe... required moving rendering of Image shader to its own framebuffer... I do not like creating not needed overhead, so maybe will be optional.
Additional features:
- Wayland decoration support - read comments in wayland_utils.h
- Support wlr-layer-shell support wlr-layer-shell #3
- Add full Headless rendering - to render without starting desktop session
- Export-render to video - frame perfect video recording, using ffmpeg. (maybe as external repository/project) (and tile rendering)
- make config support - .cfg file where user set properties for each buffer