A little reorganization of methods in the passes.

This commit is contained in:
Rezmason
2021-11-10 18:10:26 -08:00
parent f4130013f4
commit dc4032e42a
4 changed files with 21 additions and 18 deletions

View File

@@ -1,5 +1,12 @@
TODO: TODO:
WebGPU
Switch post processing to compute shaders
Do one final render pass that draws the compute shader output to the canvas texture
This is a temporary requirement until the canvas context can be configured to generate storage textures
blur pass
Update links in issues
gpu-buffer, working title gpu-buffer, working title
Try and use it for the palette color buffer Try and use it for the palette color buffer
Test it Test it
@@ -8,11 +15,6 @@ gpu-buffer, working title
Capture expected requirements down the road, make roadmap Capture expected requirements down the road, make roadmap
License it and put it somewhere else License it and put it somewhere else
WebGPU
blur pass
Update links in issues
Try to change post processing to compute shaders once they're easier to support
Write an explanation of the rain pass (and include images) Write an explanation of the rain pass (and include images)
Compute Compute
Volumetric quads Volumetric quads
@@ -28,6 +30,7 @@ Resurrection
Audio Audio
Synthesize raindrop sound Synthesize raindrop sound
https://www.instagram.com/tv/CWGodRcoq7T/?utm_medium=copy_link
Use WebAudio to mess with it Use WebAudio to mess with it
Idea: Build a UI Idea: Build a UI

View File

@@ -30,6 +30,10 @@ export default (context, getInputs) => {
const bgURL = "bgURL" in config ? config.bgURL : defaultBGURL; const bgURL = "bgURL" in config ? config.bgURL : defaultBGURL;
const assets = [loadTexture(device, bgURL), loadShader(device, "shaders/wgsl/imagePass.wgsl")]; const assets = [loadTexture(device, bgURL), loadShader(device, "shaders/wgsl/imagePass.wgsl")];
const getOutputs = () => ({
primary: output,
});
const ready = (async () => { const ready = (async () => {
const [bgTex, imageShader] = await Promise.all(assets); const [bgTex, imageShader] = await Promise.all(assets);
@@ -57,10 +61,6 @@ export default (context, getInputs) => {
output = makePassFBO(device, width, height, canvasFormat); output = makePassFBO(device, width, height, canvasFormat);
}; };
const getOutputs = () => ({
primary: output,
});
const execute = (encoder) => { const execute = (encoder) => {
const inputs = getInputs(); const inputs = getInputs();
const tex = inputs.primary; const tex = inputs.primary;

View File

@@ -100,6 +100,10 @@ export default (context, getInputs) => {
let paletteBuffer; let paletteBuffer;
let output; let output;
const getOutputs = () => ({
primary: output,
});
const assets = [loadShader(device, "shaders/wgsl/palettePass.wgsl")]; const assets = [loadShader(device, "shaders/wgsl/palettePass.wgsl")];
const ready = (async () => { const ready = (async () => {
@@ -134,10 +138,6 @@ export default (context, getInputs) => {
output = makePassFBO(device, width, height, canvasFormat); output = makePassFBO(device, width, height, canvasFormat);
}; };
const getOutputs = () => ({
primary: output,
});
const execute = (encoder) => { const execute = (encoder) => {
const inputs = getInputs(); const inputs = getInputs();
const tex = inputs.primary; const tex = inputs.primary;

View File

@@ -92,6 +92,11 @@ export default (context, getInputs) => {
let output; let output;
let highPassOutput; let highPassOutput;
const getOutputs = () => ({
primary: output,
highPass: highPassOutput,
});
const ready = (async () => { const ready = (async () => {
const [msdfTexture, rainShader] = await Promise.all(assets); const [msdfTexture, rainShader] = await Promise.all(assets);
@@ -168,11 +173,6 @@ export default (context, getInputs) => {
highPassOutput = makePassFBO(device, width, height, canvasFormat); highPassOutput = makePassFBO(device, width, height, canvasFormat);
}; };
const getOutputs = () => ({
primary: output,
highPass: highPassOutput,
});
const execute = (encoder) => { const execute = (encoder) => {
// We render the code into an FBO using MSDFs: https://github.com/Chlumsky/msdfgen // We render the code into an FBO using MSDFs: https://github.com/Chlumsky/msdfgen