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
|
335ff5ddb7
|
The main module can now pick a renderer based on the "renderer" URL parameter.
|
2021-11-06 05:03:38 -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 |
|
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
|
8f09fade43
|
Contemplating my next steps.
|
2021-11-02 23:20:54 -07:00 |
|
Rezmason
|
8048c9c690
|
That's funny, you can blob a fetch response and chuck it into createImageBitmap().
|
2021-11-02 23:19:54 -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
|
0c26cc7660
|
Moving assets into a subdirectory.
|
2021-10-29 12:21:40 -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
|
dd4fe3cac6
|
Looks like uniform buffers don't need to specify which shader stages use them.
Removed the primitive state from the pipeline descriptor, because the project uses its default values.
|
2021-10-29 09:20:37 -07:00 |
|
Rezmason
|
fb6406e753
|
The texture sampler should operate linearly
|
2021-10-29 09:16: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
|
f9b80224fe
|
More std140 tweaks
|
2021-10-29 08:57:23 -07:00 |
|
Rezmason
|
d4b21a0e4c
|
Moving std140 code to its own module. Here it can evolve into a class or whatever, and it won't clutter the rest of the code.
|
2021-10-29 08:03:55 -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
|
ad2b7e53af
|
buildStruct needs to convert values into arrays
|
2021-10-28 23:56:31 -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
|
c500bdcef0
|
Implemented rudimentary support for std140 alignment of values in uniform buffers.
|
2021-10-28 21:22:13 -07:00 |
|
Rezmason
|
a3c99ff4c0
|
Swapping the camera perspective generating function to mat4.perspectiveZO.
|
2021-10-27 22:45:29 -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 |
|
Rezmason
|
1827fd94a6
|
Removing document onload function from webgpu_main that I left in by mistake
|
2021-10-27 19:04:02 -07:00 |
|
Rezmason
|
3cb20139c4
|
Creating stump render bundle array. This is how WebGPU command buffers are created and executed.
|
2021-10-27 19:04:02 -07:00 |
|
Rezmason
|
6b317af0bb
|
Broke ground on webgpu version.
Split regl_main.js off of main.js, which now detects navigator.gpu. If it exists, it initializes webgpu_main instead.
|
2021-10-27 19:04:02 -07:00 |
|
Rezmason
|
348c384de5
|
More small config tweaks to paradise matrix.
|
2021-10-23 01:54:09 -07:00 |
|
Rezmason
|
7f42280eeb
|
More small config tweaks.
|
2021-10-23 01:38:05 -07:00 |
|
Rezmason
|
69d4e7365c
|
Renaming the shaders again, because the extensions I gave them were confusing GitHub's syntax highlighting.
|
2021-10-23 01:28:32 -07:00 |
|
Rezmason
|
a979e87564
|
More tweaks to Resurrections version.
|
2021-10-23 01:12:50 -07:00 |
|
Rezmason
|
cf5f8c2113
|
Simplifying rainPass.compute's weirder operations.
|
2021-10-23 01:12:31 -07:00 |
|