Rezmason
|
2364bbc8bc
|
rainPass now renders multiple cameras and viewports, using data from the hardware.
Added quiltPass (which uses holoplay’s quilting shader).
Added a holoplay effect version. (Versions can also now specify a preferred renderer.)
|
2021-12-19 12:08:31 -08:00 |
|
Rezmason
|
68ad689e1e
|
They removed [[block]] from WGSL struct declarations.
|
2021-12-14 23:01:53 -08:00 |
|
Rezmason
|
17b6d7b9aa
|
Fixing a math bug in the WGSL rain pass
|
2021-12-11 23:15:50 -08:00 |
|
Rezmason
|
25e9f10f69
|
Adding "updated" glyph set from The Matrix Resurrections, and a corresponding effect version.
|
2021-12-11 22:21:24 -08:00 |
|
Rezmason
|
508c941fcd
|
The glyph textures can now be rectangular, I think.
|
2021-12-06 22:44:18 -08: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
|
743ba87e86
|
Renaming some variables in the rainPass WGSL shader from what they were in the GLSL version.
|
2021-11-21 00:50:10 -08:00 |
|
Rezmason
|
29329aed7f
|
Messing with the weights in the WebGPU bloom pass's combine shader to better resemble what's in the regl version.
|
2021-11-15 01:06:10 -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
|
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
|
f907c1c91b
|
Fixing a vague comment that got pasted to all the post processing passes.
|
2021-11-14 09:04:41 -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
|
cebd6877bb
|
Just learned about the private storage class. The rain pass can use it to look up the corner positions of quads, rather than derive them mathematically.
|
2021-11-12 00:03:06 -08:00 |
|
Rezmason
|
d05cb3928d
|
Discovered an overlooked vertical flip I wasn't performing in the WGSL resurrection shader.
|
2021-11-11 21:56:44 -08:00 |
|
Rezmason
|
db928bbe7a
|
All the post processing passes are now based on compute pipelines instead of render pipelines.
|
2021-11-11 21:50:27 -08:00 |
|
Rezmason
|
9ad655ca2e
|
Created a pass-through post processing compute pass. The other post-processing passes will be changed over to this kind of thing.
makePassFBO has now been split into makeRenderTarget and makeComputeTarget.
|
2021-11-11 09:18:32 -08:00 |
|
Rezmason
|
9c861fd50b
|
Replacing the final copyToTexture call with a tiny render pass, so that the postprocessing passes can be compute shaders working off of storage textures instead.
|
2021-11-11 08:24:30 -08:00 |
|
Rezmason
|
6586badf42
|
The WebGPU rainPass now performs a high pass filter on its own fragments. I think I prefer this to a separate high pass filter, because this one is pre-blendfunc, ie. fragments will only be added to the texture if they are individually bright enough to contribute.
|
2021-11-09 07:08:07 -08:00 |
|
Rezmason
|
786c83cca0
|
More tweaks to the volumetric mode debug view.
|
2021-11-08 23:04:08 -08:00 |
|
Rezmason
|
11bba1020d
|
Changing my mind a little about how to render the "behind the scenes" version of the effect, in regular and volumetric mode.
An isometric perspective would be neat.
|
2021-11-08 09:29:04 -08:00 |
|
Rezmason
|
1528ca39a5
|
Commenting out the tables and adding select to some shaders in place of the original ternary operator.
|
2021-11-08 03:45:06 -08:00 |
|
Rezmason
|
bade1667ad
|
Making some comments in the WebGPU rainPass and changing the "effect=none" view to be easier on the eyes.
|
2021-11-06 15:19:56 -07:00 |
|
Rezmason
|
89b9f4e363
|
Ported all the post processing regl passes to WebGPU. Fixed the CORS stuff in loadTexture. Renamed createRenderTargetTexture to makePassFBO, to conform with the regl project. Added make1DTexture, which stripePass uses.
|
2021-11-06 05:03:16 -07:00 |
|
Rezmason
|
f8959cd7d9
|
Renaming msdfSampler to linearSampler; adding loadShaderModule utility method; busting the rain render out of its render bundle (which won't be useful long-term).
|
2021-11-03 20:01:59 -07:00 |
|
Rezmason
|
b31e70c1e1
|
Removing the channel override in the vertex shader.
|
2021-11-02 07:35:19 -07:00 |
|
Rezmason
|
4294932d5f
|
Fixed the flickering leftmost column.
|
2021-11-01 08:49:33 -07:00 |
|
Rezmason
|
348b07d237
|
Actually the ping-pong setup isn't necessary for this compute shader, since it does everything in-place.
Undid all the y-flips I could find, and they all canceled one another out, except for the glyph UVs in the fragment shader.
|
2021-11-01 08:38:48 -07:00 |
|
Rezmason
|
6460f4401a
|
Ported the rain compute shader to wgsl. Tons of inverted-y errors abound.
|
2021-11-01 01:52:57 -07:00 |
|
Rezmason
|
1c1b1e4f03
|
We have ping-pong! And all the rain pass's shaders can coexist in one module! And I met and received ample help from @kainino0x and others on the WebGPU Matrix chat!
|
2021-11-01 00:29:16 -07:00 |
|
Rezmason
|
6f58882851
|
The MSDF stuff shouldn't be in its own uniform buffer. This is basically config stuff.
Added a compute pass that currently does nothing while I learn how to make use of it.
|
2021-10-31 20:00:11 -07:00 |
|
Rezmason
|
53e1c5502c
|
There's no existing infrastructure for WGSL yet, so to clean up the shader I'm making do with some simple greps and short-term meticulousness.
|
2021-10-30 23:18:39 -07:00 |
|
Rezmason
|
375560d6a1
|
Fixed a math issue in the symbol UV function.
|
2021-10-30 20:30:55 -07:00 |
|
Rezmason
|
4ea6cadd2f
|
Fixing some y-flip related stuff in the rain pass fragment shader. Consolidating and changing the type of a bunch of info in the config uniform. Improving the code comments.
|
2021-10-30 20:05:07 -07:00 |
|
Rezmason
|
d8701c9408
|
Ported the rain vertex shader to wgsl.
|
2021-10-30 18:07:07 -07:00 |
|
Rezmason
|
923992660c
|
Ported the rain fragment shader to wgsl. Made a small change in both to the function that resolves the glyph symbol float to the coordinate of a glyph in the MSDF texture.
|
2021-10-30 14:49:06 -07:00 |
|
Rezmason
|
4dd0c1be50
|
Organizing shader functions' input and output types. I don't know if this is a good idea in the long run, but it seems useful in the short term.
|
2021-10-30 13:50:46 -07:00 |
|
Rezmason
|
cc75938fcb
|
Passing all the rain pass configs through a giant struct into the rain shader. I've included the compute shader fields, because I have hope that the compute pass can use the same shader module.
|
2021-10-30 13:48:28 -07:00 |
|
Rezmason
|
1516f82554
|
Adding random functions to rain render pass shader
|
2021-10-30 08:41:00 -07:00 |
|
Rezmason
|
94f5f1e5ec
|
Rearranging the shaders and scripts to hopefully make the project easier to work on
|
2021-10-29 09:27:28 -07:00 |
|
Rezmason
|
23d397fa11
|
Now that I can pack integer and float data into one uniform buffer, time.seconds can be represented as a float while time.frames is an integer.
|
2021-10-29 09:02:20 -07:00 |
|
Rezmason
|
e79e741fcf
|
Fixed a struct layout bug. Struct layout and builder now support mixing integer and float data in a struct, and output an ArrayBuffer.
|
2021-10-29 07:43:39 -07:00 |
|
Rezmason
|
81f77c70ae
|
Slowly working out what's required to support uniform buffers that store integers as well as floats
|
2021-10-29 00:38:58 -07:00 |
|
Rezmason
|
1b53b8be1f
|
Experimenting with simplifying the names of the uniform buffers in the rain render pass shader.
|
2021-10-28 22:21:01 -07:00 |
|
Rezmason
|
c3254c3aa1
|
Adding WebGPU to TODO.md. Annotating the parts of the WebGPU code that involve uniform buffer layout issues.
|
2021-10-27 22:34:47 -07:00 |
|
Rezmason
|
c27c20f2cf
|
Consolidating all the bind groups, because I only have four. Stuff shared between render passes will get isolated somehow, but it might be by binding one buffer to multiple render passes' bind group at zero rather than having more than one bind group.
|
2021-10-27 21:08:20 -07:00 |
|
Rezmason
|
a0649bdb34
|
Added screenSize in camera uniforms.
|
2021-10-27 20:51:22 -07:00 |
|
Rezmason
|
f2a54b3141
|
A little bit of shader variable renaming and const declaration during a walkthrough of the existing code on-stream
|
2021-10-27 20:00:39 -07:00 |
|
Rezmason
|
c716d30808
|
Merged the vertex and fragment shader WGSL files, because their bindings can't collide anyhow. The rain render shader now accepts a bind group of time uniforms, which change on every frame, as well as MSDF uniforms, along with an MSDF sampler and texture that's loaded in from the PNG. The shader currently renders the correct grid of quads for volumetric mode, displays the first glyph raw in each one, and every sixty frames, turns on and off the blue channel.
|
2021-10-27 19:04:02 -07:00 |
|
Rezmason
|
8c62146884
|
Fetching WebGPU shaders. Created my first bona fide pipeline. The vertex shader compares the built-in vertex index and the numRows/numColumns uniforms to produce a grid of quads with no vertex or index buffer whatsoever!
|
2021-10-27 19:04:02 -07:00 |
|