Files
matrix/TODO.txt

96 lines
2.9 KiB
Plaintext

TODO:
Test all the versions!
Reformulate the basis
https://buf.com/films/the-matrix-resurrections
Rain pass frag's output should match its debug view output
Move brightness and contrast logic to the later passes
The channels get individually blurred
Then the other passes use the red, green and blue channels for separate things
red: cursor
green: long tail
blue: short tail
Tune the colors
New config properties
Find a way to support the old stuff?
Migrate to WebGPU
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
Resurrections
Support anomaly streaks
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 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"
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