Rezmason
b6570de106
Fixed some major bugs: the WebGPU cache should store loaded images and text, never GPU resource handles; renamed renderer "formulate" to "configure"; WebGPU renderer's configure function needs early returns after each major await, in case there's a new config; the render loops are now locally stored closures; renderers now have start and stop functions; fixed bugs in the REGL and WebGPU mirror passes; WebGPU bloom pass now enforces texture dimensions are greater than zero; the react component now stores the renderer type in a useRef and returns early from renderer init awaits to prevent multiple renderers from instantiating.
2025-05-25 03:30:26 -07:00
Rezmason
1da1feb356
Converting tabs to spaces in TODO.txt and the quilt pass fragment shader
2025-05-23 12:50:29 -07:00
Rezmason
3b837c6f06
Massive overhaul: the renderers are now classes that implement Renderer; replaced webpack and rollup with vite; converted bundle-contents to "core" and "full" bundle profiles; renamed "inclusions" to "staticAssets", which are "url" base64-encoded images and "raw" text strings; renamed the Matrix component module to the JSX extension; built out a test scaffold at tools/test/index.html to manually test the various deploy options.
2025-05-23 12:49:10 -07:00
Rezmason
f61a4e29c9
Added cache check to WebGPU renderer's loadShader method. Un-commented entries into config.js. Inclusions are now explicit dynamic import lambdas, so the cache functions can detect and call them; however, webpack and rollup seem to use them differently.
2025-05-20 07:57:27 -07:00
Rezmason
22241924c9
regl's destroy function destroys all resources created with it; so does GPUDevice::destroy.
2025-05-08 18:11:06 -07:00
Rezmason
a1332d8f1a
Separating the resource imports from the Matrix.js module
2025-05-07 18:06:15 -07:00
Rezmason
eea341f50c
Exploring ways to preserve the vanilla JS browser demo without compromising on the bundle. Experimenting with embedding images in the bundle as data URIs
2025-05-06 12:59:02 -07:00
Rezmason
1fc4f1f34e
Posting roadmap before cutting a branch to support live config updates
2022-11-15 02:33:37 -08:00
Rezmason
f0898e7ecf
All non-trivial shaders are now loaded from files.
2022-10-11 21:27:46 -07:00
Rezmason
e8be232e9b
Fixing several embarrassing bugs.
...
WebGPU and REGL projects now flipY again, and they properly flip the symbolY glyph coordinate in the rain pass's fragment shader.
Switching on some older code that was disabled for FF Nightly support— it makes more sense to wait for that support as implementations finalize.
Added mipmap to images loaded into REGL project.
2022-10-11 09:25:24 -07:00
Rezmason
3843dd90d1
Moving bloom strength math to the combine steps, and fixing a redundant multiply issue in the REGL based renderer
2022-10-04 21:53:53 -07:00
Rezmason
fb3fb89d95
Softening the MSDF, ready to move on
2022-10-02 20:47:52 -07:00
Rezmason
95b67d1dad
Detect and advise against running through SwiftShader
2022-10-02 13:20:50 -07:00
Rezmason
8f90edb516
Updating Readme to link to friends of the project and the Vice article
2022-09-29 22:15:01 -07:00
Rezmason
cde709b044
Renaming paletteEntries to palette
2022-09-29 22:15:01 -07:00
Rezmason
beb70473aa
Fixed a WebGPU sequencing issue when skipIntro=true&once=false, caused by updating the cells and intro cells in the same compute pass. The WebGPU and REGL projects are now also slightly more alike.
2022-09-25 19:43:51 -07:00
Rezmason
e2be02c498
Added textures to base and glint shapes.
2022-09-17 13:51:48 -07:00
Rezmason
eddbd12c36
Added glint brightness and contrast, makes a big difference
2022-09-17 10:09:52 -07:00
Rezmason
9c2d6d7ed8
Adding "glint", the shapes that appear on top of the glyphs in the Resurrections opening titles.
2022-09-17 01:24:23 -07:00
Rezmason
6a3d38e965
More updates to the readme and todo
2022-09-16 21:42:37 -07:00
Rezmason
9ab9924294
Migrated changes to WebGPU
2022-09-16 21:08:00 -07:00
Rezmason
6969514c9b
The cursor channel of the rain pass is now propagated in isolation to the effect passes.
2022-09-15 23:33:47 -07:00
Rezmason
17a615eec7
Altering course. The only remaining goal of the recode is to isolate the cursor glyphs and process them separately.
2022-09-15 21:23:11 -07:00
Rezmason
3b456baef9
Move brightness from the shine compute shader to the fragment shader and clean it up
2022-09-15 21:10:33 -07:00
Rezmason
b0613f9bc3
Removing brightness-based cycle style— I can no longer see any evidence that it occurs.
...
Updated the readme file
2022-09-15 00:41:04 -07:00
Rezmason
4c6e6fd662
Removed sun shower. Thunder and ripples are now handled by a third compute shader.
2022-09-14 23:09:00 -07:00
Rezmason
ec831ce6f1
Adding named debug groups to the WebGPU passes, and switching the pipeline create calls to the async methods
2022-09-11 20:09:32 -07:00
Rezmason
c4fe2c53e4
Cleaning up TODO. Tried adding a pixel grill to the rain pass frag shader, but it moired and it didn't look very good.
2022-09-11 10:36:43 -07:00
Rezmason
4449b4ea2d
Adding the card animation to the playtrix
2022-09-10 17:05:15 -07:00
Rezmason
f9ac81817f
Updated the playdate glyph textures and increased their cycle speed a little bit
2022-09-09 22:57:57 -07:00
Rezmason
9b8d5b34b5
Added an IcoMoon font for the expanded glyph set
2022-09-09 00:10:05 -07:00
Rezmason
ed49105c69
Cursors are now much more robustly detected, and the debug view— previously called the computation texture— now resembles BUF's behind-the-scenes VFX footage. Isolated the isometric camera option from the debug view
2022-09-08 23:13:52 -07:00
Rezmason
77d6176fd5
Updating the WebGPU code to match the REGL code
2022-09-08 19:51:39 -07:00
Rezmason
2eb7b70926
Split the rain pass's compute shader in two, with one governing brightness and the other governing glyph cycling. This allows glyphs to randomly cycle properly, and leaves room to store new properties.
2022-09-07 22:05:03 -07:00
Rezmason
76d37fc752
Freeing up a rain pass channel
2022-09-06 23:23:39 -07:00
Rezmason
bfa18d6926
Updated the Resurrections MSDF texture
2022-09-06 01:08:47 -07:00
Rezmason
17b0e11cb7
Expanding the to-do list to include audio, regenerated "updated glyph set, Playdate version, reformulation goals and Resurrections version
2022-09-04 23:34:09 -07:00
Rezmason
3da3db61f1
Camera input and mirror effect now also work in WebGPU. Added the "once" parameter, which renders a single frame. Fixed bugs in gpu-buffer.
2022-08-11 00:08:05 -07:00
Rezmason
e024f4bd4d
Add camera setup to WebGPU project
2022-08-07 21:29:50 -07:00
Rezmason
b56f63b74b
Fixing the asterisk glyph in the font and glyph sets.
...
Adding the megacity glyph to the font and added a megacity glyph set.
Fixed a bug in the rain pass's fragment shader that caused glyphs in the last column to go missing
2022-04-28 18:18:15 -07:00
Rezmason
577e94c7d1
Moving bloomPass's pyramids off of mipmaps fixes its appearance in Firefox Nightly
2021-12-06 07:34:04 -08:00
Rezmason
9896e2da84
Fixing a Firefox Nightly issue in the rain pass.
2021-12-05 22:58:32 -08:00
Rezmason
e27c1820cb
Figuring out what's wrong in FF Nightly
2021-12-05 19:30:49 -08:00
Rezmason
b540ef4620
Explicitly using rgba8unorm format for rain pass render targets
2021-11-17 18:27:10 -08:00
Rezmason
3e6196a964
A merge into master revealed some problems with the way ES modules are imported. This will require some investigation.
2021-11-15 01:35:05 -08:00
Rezmason
b26155d20e
Adding some more comments. Destructuring the context object in the pass modules. A little code cleanup in bloomPass. Changing the endPass sampler to be cheaper.
2021-11-15 01:05:05 -08:00
Rezmason
1b61e304a5
Refactoring the pass and pipeline, so that inputs and size are handed to and returned from the build function (formerly setSize). This is now the earliest place to build bind groups, which makes sense, because it's also the earliest place to create textures that are proportional to the size of the canvas.
2021-11-15 00:30:09 -08:00
Rezmason
b0a4acdfdb
Rewrote the WebGPU bloom pass based on the classic Unreal solution of blurring and combining the levels of an image pyramid. Fixed the regl bloom pass to use the downscaled blurred mipmap levels to build the first pyramid.
2021-11-14 23:09:29 -08:00
Rezmason
7eecace634
My friend recommended a much simpler blur that doesn't build any image pyramids. Unfortunately my work towards an implementation isn't very promising— it doesn't pack the same wollop as the WebGL version— but I can built my pyramids on top of it.
2021-11-13 21:25:27 -08:00
Rezmason
910d29e175
Poking gpu-buffer a bit because I'm apparently afraid of writing a blur shader which I've already written once.
2021-11-11 23:30:37 -08:00