Files
matrix/TODO.txt

93 lines
2.9 KiB
Plaintext

TODO:
Reformulate the basis
Separate cursor and non-cursor parts of the code into rain pass output channels
Downstream passes can add them or color them separately
Add cursorColor to config
Switch operator/resurrections/classic to this
Tune ALL the versions!
Migrate to WebGPU
Update the README
Audio system
Toggle (or number representing frequency)
Load the sound effect
Play it multiple times with delay
Random pan
Random volume?
Randomize pitch a little?
Playdate version
Audio system
Falling sound
Launch sound
Undocking sound
Docking sound
Maybe crank sounds? Not sure yet
Support Resurrections anomaly streaks
Kind of like the cursor: new rain pass output channel, new config prop
MSDF
They should line up in Photoshop without too much trouble, actually
Texture
Maybe give normal Matrix code a pixel grill texture
Lighting
Different parts of a streak glow at different intensities, at different times
The streaks often dim slower, ie. are brighter, than the glyphs beneath them
Imagine they're metallic or something
Support Resurrections SDF bevel and "lights"
https://shaderfun.com/2018/07/23/signed-distance-fields-part-8-gradients-bevels-and-noise/
Get the "normals" and color right
Note: even completely dark glyphs can have glint on their edges
"Golden hour"
Stuff MSDF-derived normal vectors from rain pass frag into two of its output channels
Anomaly mode toggles between this and anomaly streaks
WebGPU
Why is it brighter than the regl version?
Create a project that tests them side-by-side
That's right, two canvases, one regl and one webgpu
program them both to do the same basic ops in a floating point texture
display that texture
Retrieve the texture from the GPU and spit it out
Possible causes of difference
Color space
Floating point math
Texture interpolation
Blur implementation
Try https://github.com/brendan-duncan/wgsl_reflect
Get rid of end pass once it's possible to copy a bgra8unorm to a canvas texture
Switch to rgba32float somehow?
Why isn't this straightforward?
Try shorthand
Share a bind group and layout just for time?
Try using a buffer for the stripe pass 1D texture
Improve loop support
Write an explanation of the rain pass (and include images)
Compute
Volumetric quads
Fullscreen quad and spacial mapping
MSDFs
Zion Control's matrix variant
From Reloaded
Idea: Build a UI
Changes some uniforms
Effect selection would swap out the desired effect pass, somehow
The color palette stuff would be hard
Deja vu effect: flashing rows
Make them flash all the time
Then use a thunder-like pattern to show and hide the flash
gpu-buffer, working title
Support type aliasing (type Q = array<i32, 5>)
Support shorthand (vec4f)
Build mocha tests, example project
Give it its own repo, microsite