Commit Graph

82 Commits

Author SHA1 Message Date
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
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
658f07c6ab Code intended to leverage imports in the load functions. 2025-05-20 07:59:20 -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
319b53919b Testing hot-swapping renderers, which requires destroying and rebuilding the canvas after all. Fixed a few other related bugs and moved the imports into "bundle-contents.js". 2025-05-08 12:52:48 -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
6663c92f99 Removing holoplay for now. 2025-05-06 08:15:57 -07:00
Rezmason
f3cd449c7d Added WebGPU support and added caching to the WebGPU version. 2025-05-05 19:07:36 -07:00
Rezmason
664f484723 Component now reuses its canvas. regl implementation reuses its regl instance, and caches resources that already loaded. 2025-05-05 18:59:18 -07:00
Rezmason
237990b44c Ran the format script 2025-05-05 08:52:35 -07:00
Rezmason
6183accac5 Repairing the bloom 2025-05-04 22:00:53 -07:00
nohren
3bc0d5d346 Matrix React component 1.0.0 2025-04-24 08:54:03 -07:00
Rezmason
cee10bb1de Adding glyphFlip and glyphRotation parameters. 2024-09-10 21:41:59 -07:00
Rezmason
f14651c2b2 Initializing the regl double buffer with an array of zeroes, to overwrite any garbage values that a browser may have left in there. 2024-06-27 12:48:11 -07:00
Rezmason
4cc4d9191e Removing some unused code from bloom 2022-11-01 08:07:34 -07:00
Rezmason
acc21ef1f4 Separated cursor and glint intensities from their colors, which can now safely reside in their color spaces. 2022-11-01 08:05:48 -07: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
507f907096 Fixing the resize logic 2022-10-04 21:52:44 -07:00
Rezmason
6986ed45f5 Removed flipY from REGL renderer's texture load function, to increase similarity between renderer implementations and rule out a sampling discrepancy 2022-10-04 21:48:21 -07:00
Rezmason
4f257b87f7 Fixed SDF math; texture dimensions were accessed before they loaded in the REGL-based renderer 2022-10-04 21:46:26 -07:00
Rezmason
b86b97fde9 Adding an FPS argument. The renderers now determine whether the current frame should be rendered, and passes use that to determine whether to render or not. The rain pass, however, will still update the simulation at full speed. 2022-10-03 23:45:56 -07:00
Rezmason
51faabfbe6 Corrected the MSDF logic in the GLSL and WGSL shaders, which fixed the rendering in Chrome's software renderer. 2022-10-02 20:35:12 -07:00
Rezmason
95b67d1dad Detect and advise against running through SwiftShader 2022-10-02 13:20:50 -07:00
Rezmason
87bd6c1681 Adding a "testFix" URL variable to help test potential fixes to open bugs in production. 2022-10-01 21:01:06 -07:00
Rezmason
dd7692dfc5 Left in a console log by mistake 2022-09-30 00:12:48 -07:00
Rezmason
7e2acde979 Fixing the transPride and pride stripe colors in the regl code 2022-09-29 22:44:49 -07:00
Rezmason
3828203876 All colors are now color objects 2022-09-29 22:15:01 -07:00
Rezmason
22dd5e8678 RGBs in config are no longer flat 2022-09-29 22:15:01 -07:00
Rezmason
67cfdcb132 Palette pass now accepts colors regardless of their color space 2022-09-29 22:15:01 -07:00
Rezmason
cde709b044 Renaming paletteEntries to palette 2022-09-29 22:15:01 -07:00
Rezmason
44ce50b6d5 Updating pride and trans pride stripe colors to match what's on Wikipedia 2022-09-27 12:18:32 -07:00
Rezmason
965e21d3ba Adding intro and skipIntro option 2022-09-24 07:27:26 -07:00
Rezmason
fb16a9b855 Adjusting the textures, still not super happy with them but they can be replaced later 2022-09-19 20:41:23 -07:00
Rezmason
5f544091a9 Deferring the holoplay import until it's determined that it's needed. Changing the holoplay effect version a little. 2022-09-18 22:30:10 -07:00
Rezmason
b0406978d7 It's hard to tune the glint brightness and contrast 2022-09-18 19:46:26 -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
3fc53f1bab Renaming shine to raindrop, which makes more sense 2022-09-16 17:01:22 -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
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
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
a14b6db911 A couple changes on the REGL side that missed the boat 2022-09-07 23:17:37 -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