Commit Graph

19 Commits

Author SHA1 Message Date
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
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
b09887ba0f GPUComputePassEnncoder::dispatch got renamed to dispatchWorkgroups 2022-05-03 12:00:25 -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
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
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
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
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
bbe3d62331 Wrote another utility method for cramming an array of resources into a bind group. 2021-11-08 08:05:56 -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
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