Commit Graph

21 Commits

Author SHA1 Message Date
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
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
f4130013f4 Moved the makePyramid and resizePyramid methods from the regl solution's util module to bloomPass.
Adding the canvas context's preferred format to the shared pass context (named "canvasFormat").
Added a placeholder bloomPass, which the existing passes now receive input from.
2021-11-09 20:06:59 -08:00
Rezmason
a143e3fc03 Renamed gpu-uniforms to gpu-buffer, and messed around with its API.
I believe all the align, size, stride and byteOffset values are now in the proper units, ie. bytes.
2021-11-08 22:56:00 -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
61a3a6d783 Moved the WebGPU code off of "std140" and onto gpu-uniforms. 2021-11-08 02:23:33 -08: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
230847e5b8 Added runtime texture targets. A pass now returns its resources in getOutputs(), which subsequent passes access as getInputs(). 2021-11-05 01:06:39 -07:00
Rezmason
f0ae7731bb The webgpu project's multi-pass pipeline is borrowed from the regl project, but the outputs don't exist yet. Outputs will be tricky, because RTTs are thrown out and recreated when the canvas resizes, which I think means all the bind groups referencing the old texture have to be destroyed and recreated, too. 2021-11-03 21:42:01 -07:00
Rezmason
0b04947425 Implemented makePass(). Moved rain compute and render stuff into a pass. 2021-11-03 21:30:22 -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
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
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
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
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
33437a722d Finding ways to construct WebGPU descriptors more concisely. Moving some functions to webgpu's utils.js. 2021-10-30 08:40:42 -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