Add fullscreen vertex shader module

This commit is contained in:
SirLynix
2022-06-16 19:26:57 +02:00
parent ddd1e3027c
commit 6f18a02999
14 changed files with 67 additions and 363 deletions

View File

@@ -1,6 +1,7 @@
[nzsl_version("1.0")]
module;
import VertOut, VertexShader from Engine.FullscreenVertex;
import ViewerData from Engine.ViewerData;
external
@@ -9,30 +10,13 @@ external
[set(0), binding(1)] colorTexture: sampler2D[f32],
}
struct FragIn
{
[location(0)] uv: vec2[f32]
}
struct FragOut
{
[location(0)] color: vec4[f32]
}
struct VertIn
{
[location(0)] pos: vec2[f32],
[location(1)] uv: vec2[f32]
}
struct VertOut
{
[builtin(position)] position: vec4[f32],
[location(0)] uv: vec2[f32]
}
[entry(frag)]
fn main(input: FragIn) -> FragOut
fn main(input: VertOut) -> FragOut
{
/*let BrightLuminance = 0.8;
let BrightMiddleGrey = 0.5;
@@ -56,13 +40,3 @@ fn main(input: FragIn) -> FragOut
return output;
}
[entry(vert)]
fn main(input: VertIn) -> VertOut
{
let output: VertOut;
output.position = vec4[f32](input.pos, 0.0, 1.0);
output.uv = input.uv;
return output;
}

View File

@@ -1,6 +1,7 @@
[nzsl_version("1.0")]
module;
import VertOut, VertexShader from Engine.FullscreenVertex;
import ViewerData from Engine.ViewerData;
external
@@ -10,43 +11,16 @@ external
[set(0), binding(2)] bloomTexture: sampler2D[f32],
}
struct FragIn
{
[location(0)] uv: vec2[f32]
}
struct FragOut
{
[location(0)] color: vec4[f32]
}
struct VertIn
{
[location(0)] pos: vec2[f32],
[location(1)] uv: vec2[f32],
}
struct VertOut
{
[location(0)] uv: vec2[f32],
[builtin(position)] position: vec4[f32]
}
[entry(frag)]
fn main(input: FragIn) -> FragOut
fn main(input: VertOut) -> FragOut
{
let output: FragOut;
output.color = /*colorTexture.Sample(fragcoord) + */bloomTexture.Sample(input.uv);
return output;
}
[entry(vert)]
fn main(input: VertIn) -> VertOut
{
let output: VertOut;
output.position = vec4[f32](input.pos, 0.0, 1.0);
output.uv = input.uv;
return output;
}

View File

@@ -1,35 +1,20 @@
[nzsl_version("1.0")]
module;
import VertOut, VertexShader from Engine.FullscreenVertex;
external
{
[binding(0)] colorTexture: sampler2D[f32]
}
struct FragIn
{
[location(0)] uv: vec2[f32]
}
struct FragOut
{
[location(0)] color: vec4[f32]
}
struct VertIn
{
[location(0)] pos: vec2[f32],
[location(1)] uv: vec2[f32]
}
struct VertOut
{
[location(0)] vertUV: vec2[f32],
[builtin(position)] position: vec4[f32]
}
[entry(frag)]
fn main(input: FragIn) -> FragOut
fn main(input: VertOut) -> FragOut
{
let gamma = 2.2;
@@ -38,12 +23,3 @@ fn main(input: FragIn) -> FragOut
//output.color = pow(colorTexture.Sample(input.uv), vec4[f32](1.0 / gamma, 1.0 / gamma, 1.0 / gamma, 1.0));
return output;
}
[entry(vert)]
fn main(input: VertIn) -> VertOut
{
let output: VertOut;
output.position = vec4[f32](input.pos, 0.0, 1.0);
output.vertUV = input.uv;
return output;
}

View File

@@ -1,6 +1,7 @@
[nzsl_version("1.0")]
module;
import VertOut, VertexShader from Engine.FullscreenVertex;
import ViewerData from Engine.ViewerData;
[layout(std140)]
@@ -17,30 +18,13 @@ external
[set(0), binding(2)] blurData: uniform[BlurData]
}
struct FragIn
{
[location(0)] uv: vec2[f32]
}
struct FragOut
{
[location(0)] color: vec4[f32]
}
struct VertIn
{
[location(0)] pos: vec2[f32],
[location(1)] uv: vec2[f32],
}
struct VertOut
{
[location(0)] uv: vec2[f32],
[builtin(position)] position: vec4[f32]
}
[entry(frag)]
fn main(input: FragIn) -> FragOut
fn main(input: VertOut) -> FragOut
{
let invTargetSize = viewerData.invRenderTargetSize * blurData.sizeFactor;
@@ -57,13 +41,3 @@ fn main(input: FragIn) -> FragOut
return output;
}
[entry(vert)]
fn main(input: VertIn) -> VertOut
{
let output: VertOut;
output.position = vec4[f32](input.pos, 0.0, 1.0);
output.uv = input.uv;
return output;
}

View File

@@ -1,6 +1,7 @@
[nzsl_version("1.0")]
module;
import VertOut, VertexShader from Engine.FullscreenVertex;
import ViewerData from Engine.ViewerData;
[layout(std140)]
@@ -22,30 +23,13 @@ external
[set(0), binding(2)] occluderTexture: sampler2D[f32]
}
struct FragIn
{
[location(0)] uv: vec2[f32]
}
struct FragOut
{
[location(0)] color: vec4[f32]
}
struct VertIn
{
[location(0)] pos: vec2[f32],
[location(1)] uv: vec2[f32]
}
struct VertOut
{
[builtin(position)] position: vec4[f32],
[location(0)] uv: vec2[f32]
}
[entry(frag)]
fn main(input: FragIn) -> FragOut
fn main(input: VertOut) -> FragOut
{
let deltaUV = input.uv - settings.lightPosition;
deltaUV *= 1.0 / f32(SampleCount) * settings.density;
@@ -71,13 +55,3 @@ fn main(input: FragIn) -> FragOut
return output;
}
[entry(vert)]
fn main(input: VertIn) -> VertOut
{
let output: VertOut;
output.position = vec4[f32](input.pos, 0.0, 1.0);
output.uv = input.uv;
return output;
}

View File

@@ -1,6 +1,7 @@
[nzsl_version("1.0")]
module;
import VertOut, VertexShader from Engine.FullscreenVertex;
import ViewerData from Engine.ViewerData;
external
@@ -9,30 +10,13 @@ external
[set(0), binding(1)] inputTexture: sampler2D[f32]
}
struct FragIn
{
[location(0)] uv: vec2[f32],
}
struct FragOut
{
[location(0)] color: vec4[f32]
}
struct VertIn
{
[location(0)] pos: vec2[f32],
[location(1)] uv: vec2[f32],
}
struct VertOut
{
[location(0)] uv: vec2[f32],
[builtin(position)] position: vec4[f32]
}
[entry(frag)]
fn main(input: FragIn) -> FragOut
fn main(input: VertOut) -> FragOut
{
let exposure = 0.8;
@@ -46,13 +30,3 @@ fn main(input: FragIn) -> FragOut
return output;
}
[entry(vert)]
fn main(input: VertIn) -> VertOut
{
let output: VertOut;
output.position = vec4[f32](input.pos, 0.0, 1.0);
output.uv = input.uv;
return output;
}