begin work on shading pass
This commit is contained in:
parent
5ad14b2dfd
commit
72327e4a27
@ -18,14 +18,15 @@
|
||||
@ComputeShader V_ClearCellsCS
|
||||
@ComputeShader V_ClearParticlesCS
|
||||
@ComputeShader V_BackdropCS
|
||||
@VertexShader V_DQuadVS
|
||||
@PixelShader V_DQuadPS
|
||||
@VertexShader V_QuadVS
|
||||
@PixelShader V_QuadPS
|
||||
@ComputeShader V_EmitParticlesCS
|
||||
@ComputeShader V_SimParticlesCS
|
||||
@ComputeShader V_ShadeCS
|
||||
@VertexShader V_DVertVS
|
||||
@PixelShader V_DVertPS
|
||||
@VertexShader V_OverlayVS
|
||||
@PixelShader V_OverlayPS
|
||||
@ComputeShader V_EmitParticlesCS
|
||||
@ComputeShader V_SimParticlesCS
|
||||
|
||||
//////////////////////////////
|
||||
//- Api
|
||||
|
||||
@ -4245,7 +4245,16 @@ void V_TickForever(WaveLaneCtx *lane)
|
||||
}
|
||||
|
||||
//////////////////////////////
|
||||
//- Shapes pass
|
||||
//- Shading pass
|
||||
|
||||
G_DumbGlobalMemorySync(frame->cl);
|
||||
|
||||
{
|
||||
G_Compute(frame->cl, V_ShadeCS, V_ThreadGroupSizeFromTexSize(frame->shade_dims));
|
||||
}
|
||||
|
||||
//////////////////////////////
|
||||
//- Debug shapes pass
|
||||
|
||||
G_DumbMemoryLayoutSync(frame->cl, draw_target, G_Layout_DirectQueue_RenderTargetWrite);
|
||||
|
||||
|
||||
@ -275,20 +275,20 @@ ComputeShader2D(V_BackdropCS, 8, 8)
|
||||
//////////////////////////////
|
||||
//- Vertex shader
|
||||
|
||||
VertexShader(V_DQuadVS, V_DQuadPSInput)
|
||||
VertexShader(V_QuadVS, V_QuadPSInput)
|
||||
{
|
||||
V_GpuParams params = G_Dereference<V_GpuParams>(V_ShaderConst_Params)[0];
|
||||
StructuredBuffer<V_DQuad> quads = G_Dereference<V_DQuad>(params.quads);
|
||||
StructuredBuffer<V_Quad> quads = G_Dereference<V_Quad>(params.quads);
|
||||
RWTexture2D<Vec4> target = G_Dereference<Vec4>(params.target_rw);
|
||||
|
||||
V_DQuad quad = quads[SV_InstanceID];
|
||||
V_Quad quad = quads[SV_InstanceID];
|
||||
|
||||
Vec2 rect_uv = RectUvFromVertexId(SV_VertexID);
|
||||
// Vec2 tex_uv = lerp(quad.tex_uv0, quad.tex_uv1, rect_uv);
|
||||
// Vec2 target_pos = lerp(quad.p0, quad.p1, rect_uv);
|
||||
Vec2 target_pos = 0;
|
||||
|
||||
V_DQuadPSInput result;
|
||||
V_QuadPSInput result;
|
||||
result.sv_position = Vec4(NdcFromPos(target_pos, countof(target)).xy, 0, 1);
|
||||
result.quad_idx = SV_InstanceID;
|
||||
return result;
|
||||
@ -297,15 +297,15 @@ VertexShader(V_DQuadVS, V_DQuadPSInput)
|
||||
//////////////////////////////
|
||||
//- Pixel shader
|
||||
|
||||
PixelShader(V_DQuadPS, V_DQuadPSOutput, V_DQuadPSInput input)
|
||||
PixelShader(V_QuadPS, V_QuadPSOutput, V_QuadPSInput input)
|
||||
{
|
||||
V_GpuParams params = G_Dereference<V_GpuParams>(V_ShaderConst_Params)[0];
|
||||
StructuredBuffer<V_DQuad> quads = G_Dereference<V_DQuad>(params.quads);
|
||||
V_DQuad quad = quads[input.quad_idx];
|
||||
StructuredBuffer<V_Quad> quads = G_Dereference<V_Quad>(params.quads);
|
||||
V_Quad quad = quads[input.quad_idx];
|
||||
|
||||
Vec4 final_color = 0;
|
||||
|
||||
V_DQuadPSOutput output;
|
||||
V_QuadPSOutput output;
|
||||
output.sv_target0 = final_color;
|
||||
return output;
|
||||
}
|
||||
@ -461,7 +461,14 @@ ComputeShader(V_SimParticlesCS, 64)
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
//~ Shapes
|
||||
//~ Shade
|
||||
|
||||
ComputeShader2D(V_ShadeCS, 8, 8)
|
||||
{
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
//~ Debug shapes
|
||||
|
||||
//////////////////////////////
|
||||
//- Vertex shader
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
////////////////////////////////////////////////////////////
|
||||
//~ Quad shader types
|
||||
|
||||
Struct(V_DQuadPSInput)
|
||||
Struct(V_QuadPSInput)
|
||||
{
|
||||
Semantic(Vec4, sv_position);
|
||||
Semantic(nointerpolation u32, quad_idx);
|
||||
};
|
||||
|
||||
Struct(V_DQuadPSOutput)
|
||||
Struct(V_QuadPSOutput)
|
||||
{
|
||||
Semantic(Vec4, sv_target0);
|
||||
};
|
||||
@ -57,14 +57,17 @@ ComputeShader(V_ClearParticlesCS, 64);
|
||||
ComputeShader2D(V_BackdropCS, 8, 8);
|
||||
|
||||
//- Quads
|
||||
VertexShader(V_DQuadVS, V_DQuadPSInput);
|
||||
PixelShader(V_DQuadPS, V_DQuadPSOutput, V_DQuadPSInput input);
|
||||
VertexShader(V_QuadVS, V_QuadPSInput);
|
||||
PixelShader(V_QuadPS, V_QuadPSOutput, V_QuadPSInput input);
|
||||
|
||||
//- Particle simulation
|
||||
ComputeShader(V_EmitParticlesCS, 64);
|
||||
ComputeShader(V_SimParticlesCS, 64);
|
||||
|
||||
//- Shapes
|
||||
//- Shade
|
||||
ComputeShader2D(V_ShadeCS, 8, 8);
|
||||
|
||||
//- Debug shapes
|
||||
VertexShader(V_DVertVS, V_DVertPSInput);
|
||||
PixelShader(V_DVertPS, V_DVertPSOutput, V_DVertPSInput input);
|
||||
|
||||
|
||||
@ -169,18 +169,22 @@ Struct(V_Particle)
|
||||
////////////////////////////////////////////////////////////
|
||||
//~ Quad types
|
||||
|
||||
Enum(V_DQuadFlag)
|
||||
Enum(V_QuadFlag)
|
||||
{
|
||||
V_DQuadFlag_None = 0,
|
||||
V_QuadFlag_None = 0,
|
||||
};
|
||||
|
||||
Struct(V_DQuad)
|
||||
Struct(V_Quad)
|
||||
{
|
||||
V_DQuadFlag flags;
|
||||
V_QuadFlag flags;
|
||||
|
||||
|
||||
|
||||
SPR_Slice slice;
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
//~ Vert types
|
||||
//~ Debug vert types
|
||||
|
||||
Struct(V_DVert)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user