mirror of
https://github.com/Rezmason/matrix.git
synced 2026-04-18 14:19:30 -07:00
A little bit of shader variable renaming and const declaration during a walkthrough of the existing code on-stream
This commit is contained in:
@@ -32,6 +32,8 @@ const loadTexture = async (device, url) => {
|
|||||||
export default async (canvas, config) => {
|
export default async (canvas, config) => {
|
||||||
console.log(config);
|
console.log(config);
|
||||||
|
|
||||||
|
const NUM_VERTICES_PER_QUAD = 6;
|
||||||
|
|
||||||
const numColumns = config.numColumns;
|
const numColumns = config.numColumns;
|
||||||
const numRows = config.numColumns;
|
const numRows = config.numColumns;
|
||||||
|
|
||||||
@@ -183,7 +185,7 @@ export default async (canvas, config) => {
|
|||||||
bundleEncoder.setBindGroup(index, bindGroup);
|
bundleEncoder.setBindGroup(index, bindGroup);
|
||||||
});
|
});
|
||||||
const numQuads = numColumns * numRows;
|
const numQuads = numColumns * numRows;
|
||||||
bundleEncoder.draw(6 * numQuads, 1, 0, 0);
|
bundleEncoder.draw(NUM_VERTICES_PER_QUAD * numQuads, 1, 0, 0);
|
||||||
const renderBundles = [bundleEncoder.finish()];
|
const renderBundles = [bundleEncoder.finish()];
|
||||||
|
|
||||||
let frame = 0;
|
let frame = 0;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
|
let NUM_VERTICES_PER_QUAD:i32 = 6;
|
||||||
let PI:f32 = 3.14159265359;
|
let PI:f32 = 3.14159265359;
|
||||||
let TWO_PI:f32 = 6.28318530718;
|
let TWO_PI:f32 = 6.28318530718; // No, I'm not using Tau.
|
||||||
|
|
||||||
[[block]] struct Uniforms {
|
[[block]] struct Uniforms {
|
||||||
numColumns: i32;
|
numColumns: i32;
|
||||||
@@ -15,7 +16,7 @@ let TWO_PI:f32 = 6.28318530718;
|
|||||||
[[group(1), binding(2)]] var msdfTexture: texture_2d<f32>;
|
[[group(1), binding(2)]] var msdfTexture: texture_2d<f32>;
|
||||||
|
|
||||||
[[block]] struct TimeUniforms {
|
[[block]] struct TimeUniforms {
|
||||||
time: i32;
|
now: i32;
|
||||||
frame: i32;
|
frame: i32;
|
||||||
};
|
};
|
||||||
[[group(2), binding(0)]] var<uniform> timeUniforms:TimeUniforms;
|
[[group(2), binding(0)]] var<uniform> timeUniforms:TimeUniforms;
|
||||||
@@ -30,11 +31,11 @@ struct VertexOutput {
|
|||||||
[[stage(vertex)]] fn vertMain([[builtin(vertex_index)]] VertexIndex:u32) -> VertexOutput {
|
[[stage(vertex)]] fn vertMain([[builtin(vertex_index)]] VertexIndex:u32) -> VertexOutput {
|
||||||
|
|
||||||
var i = i32(VertexIndex);
|
var i = i32(VertexIndex);
|
||||||
var quadIndex = i / 6;
|
var quadIndex = i / NUM_VERTICES_PER_QUAD;
|
||||||
|
|
||||||
var cornerPosition = vec2<f32>(
|
var cornerPosition = vec2<f32>(
|
||||||
f32(i % 2),
|
f32(i % 2),
|
||||||
f32(((i + 1) % 6 / 3))
|
f32(((i + 1) % NUM_VERTICES_PER_QUAD / 3))
|
||||||
);
|
);
|
||||||
|
|
||||||
var x = uniforms.numColumns;
|
var x = uniforms.numColumns;
|
||||||
@@ -49,7 +50,6 @@ struct VertexOutput {
|
|||||||
f32(uniforms.numRows)
|
f32(uniforms.numRows)
|
||||||
);
|
);
|
||||||
position = 1.0 - position * 2.0;
|
position = 1.0 - position * 2.0;
|
||||||
// position.x = position.x + f32(quadIndex) * 0.01;
|
|
||||||
|
|
||||||
return VertexOutput(
|
return VertexOutput(
|
||||||
vec4<f32>(position, 1.0, 1.0),
|
vec4<f32>(position, 1.0, 1.0),
|
||||||
@@ -61,9 +61,9 @@ struct VertexOutput {
|
|||||||
|
|
||||||
[[stage(fragment)]] fn fragMain([[location(0)]] UV:vec2<f32>) -> [[location(0)]] vec4<f32> {
|
[[stage(fragment)]] fn fragMain([[location(0)]] UV:vec2<f32>) -> [[location(0)]] vec4<f32> {
|
||||||
var msdf:vec4<f32> = textureSample(msdfTexture, msdfSampler, UV / f32(msdfUniforms.numColumns));
|
var msdf:vec4<f32> = textureSample(msdfTexture, msdfSampler, UV / f32(msdfUniforms.numColumns));
|
||||||
// msdf.b = msdf.b * (sin(f32(timeUniforms.time) / 1000.0 * TWO_PI) * 0.5 + 0.5);
|
// msdf.b = msdf.b * (sin(f32(timeUniforms.now) / 1000.0 * TWO_PI) * 0.5 + 0.5);
|
||||||
msdf.b = msdf.b * f32(timeUniforms.frame / 60 % 2);
|
msdf.b = msdf.b * f32(timeUniforms.frame / 60 % 2);
|
||||||
var time = timeUniforms.time;
|
var now = timeUniforms.now;
|
||||||
|
|
||||||
return msdf;
|
return msdf;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user