Commit Graph

17 Commits

Author SHA1 Message Date
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
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