Rezmason
e2be02c498
Added textures to base and glint shapes.
2022-09-17 13:51:48 -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
9ab9924294
Migrated changes to WebGPU
2022-09-16 21:08: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
77d6176fd5
Updating the WebGPU code to match the REGL code
2022-09-08 19:51:39 -07:00
Rezmason
33edffc99c
Removing the "resurrection" effect that mirrored the Matrix Resurrections trailers, as they aren't canon and the color channels of the output textures can be put to better use
2022-09-04 23:56:49 -07:00
Rezmason
3da3db61f1
Camera input and mirror effect now also work in WebGPU. Added the "once" parameter, which renders a single frame. Fixed bugs in gpu-buffer.
2022-08-11 00:08:05 -07:00
Rezmason
fc6821f4db
Making sure copyTextureToTexture can run, even though the WebGPU project still relies on endPass
2022-08-09 22:25:35 -07:00
Rezmason
e024f4bd4d
Add camera setup to WebGPU project
2022-08-07 21:29:50 -07:00
Rezmason
a0c1f22fd1
Updating WebGPU project to satisfy Chrome Canary
2022-08-07 19:17:22 -07:00
Rezmason
a4a0406826
Ran prettier.
2022-05-04 17:42:50 -07:00
Rezmason
a6c88913f5
A pipeline is now an object with a build method and a run method. The build method returns the last step's outputs object.
2022-05-03 12:07:54 -07:00
Rezmason
b09887ba0f
GPUComputePassEnncoder::dispatch got renamed to dispatchWorkgroups
2022-05-03 12:00:25 -07:00
Rezmason
f72d5450e8
Replacing the deprecated loadValue property in the render pass config descriptors' color attachments
2022-04-30 18:16:33 -07:00
Rezmason
e39c26a95a
The delimiter between WGSL struct fields is now a comma, which is also the delimiter between parameters in angle brackets, so gpu-buffer needs to be a little cleverer with the lines it separates.
2022-04-30 18:16:33 -07:00
Rezmason
4118faca27
Pass::endPass --> Pass:end
2022-04-30 18:16:33 -07:00
Rezmason
928067996d
The primary and bloom textures are now combined with a weight so that fainter bloom doesn't create a fainter overall effect.
2021-12-24 21:44:16 -08:00
Rezmason
a962a6128d
Expose dither magnitude and bloom strength through URL parameters.
2021-12-24 20:02:40 -08:00
Rezmason
68ad689e1e
They removed [[block]] from WGSL struct declarations.
2021-12-14 23:01:53 -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
577e94c7d1
Moving bloomPass's pyramids off of mipmaps fixes its appearance in Firefox Nightly
2021-12-06 07:34:04 -08:00
Rezmason
d19f78319b
Rewrite loadTexture, for now, to use GPUQueue::writeTexture (from data supplied by a CanvasContext2D) instead of GPUQueue::copyExternalToTexture (from createImageBitmap).
2021-12-04 15:40:33 -08:00
Rezmason
b540ef4620
Explicitly using rgba8unorm format for rain pass render targets
2021-11-17 18:27:10 -08:00
Rezmason
d273573348
Non-module scripts are now imported through the JS. It's not pretty, but it keeps the WebGPU project from loading regl unnecessarily.
2021-11-15 08:05:31 -08:00
Rezmason
aa56cc4256
Changed the gpu-buffer imports to use a relative path.
2021-11-15 07:41:33 -08:00
Rezmason
b5d9e106fb
prettier has some opinions about bloomPass.
2021-11-15 07:41:18 -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
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
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
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
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
9813e76ffb
The stripe pass wasn't properly handling custom colors.
2021-11-11 08:01:43 -08:00
Rezmason
159e205019
Planning out the bloom pass.
2021-11-10 18:10:57 -08:00
Rezmason
dc4032e42a
A little reorganization of methods in the passes.
2021-11-10 18:10:26 -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
87c2093281
Unifying the interfaces of regl and webgpu makePass and makePipeline.
2021-11-09 09:17:01 -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
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
cf02073ff3
Added orthographic projection and a profile angle to the volumetric mode when effects are off.
2021-11-08 09:47:56 -08:00
Rezmason
bbe3d62331
Wrote another utility method for cramming an array of resources into a bind group.
2021-11-08 08:05:56 -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
415ffa77ee
Driving more uniforms.read calls from the actual shaders.
2021-11-08 03:01:46 -08:00
Rezmason
61a3a6d783
Moved the WebGPU code off of "std140" and onto gpu-uniforms.
2021-11-08 02:23:33 -08:00
Rezmason
bd3d0c76d2
Fixing the names of shaders in the passes. The loadShader utility function now returns the code and the module, since I'm hoping to parse uniform buffer layouts from the code.
2021-11-07 00:41:25 -07: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
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