mirror of
https://github.com/Rezmason/matrix.git
synced 2026-04-14 12:29:30 -07:00
A little reorganization of methods in the passes.
This commit is contained in:
13
TODO.txt
13
TODO.txt
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user