Update demo code

This commit is contained in:
SirLynix 2022-11-20 15:43:00 +01:00 committed by Jérôme Leclercq
parent 1727ae8631
commit f572d229d9
3 changed files with 21 additions and 17 deletions

View File

@ -142,7 +142,7 @@ int main()
Nz::RenderPipelineLayoutInfo skyboxPipelineLayoutInfo; Nz::RenderPipelineLayoutInfo skyboxPipelineLayoutInfo;
skyboxPipelineLayoutInfo.bindings.push_back({ skyboxPipelineLayoutInfo.bindings.push_back({
0, 0, 0, 0, 1,
Nz::ShaderBindingType::UniformBuffer, Nz::ShaderBindingType::UniformBuffer,
nzsl::ShaderStageType_All nzsl::ShaderStageType_All
}); });
@ -158,7 +158,6 @@ int main()
Nz::RenderPipelineInfo skyboxPipelineInfo; Nz::RenderPipelineInfo skyboxPipelineInfo;
skyboxPipelineInfo.depthBuffer = true; skyboxPipelineInfo.depthBuffer = true;
skyboxPipelineInfo.depthCompare = Nz::RendererComparison::Equal; skyboxPipelineInfo.depthCompare = Nz::RendererComparison::Equal;
skyboxPipelineInfo.faceCulling = true;
skyboxPipelineInfo.faceCulling = Nz::FaceCulling::Front; skyboxPipelineInfo.faceCulling = Nz::FaceCulling::Front;
skyboxPipelineInfo.pipelineLayout = skyboxPipelineLayout; skyboxPipelineInfo.pipelineLayout = skyboxPipelineLayout;
skyboxPipelineInfo.shaderModules.push_back(device->InstantiateShaderModule(nzsl::ShaderStageType::Fragment | nzsl::ShaderStageType::Vertex, Nz::ShaderLanguage::NazaraShader, shaderDir / "skybox.nzsl", states)); skyboxPipelineInfo.shaderModules.push_back(device->InstantiateShaderModule(nzsl::ShaderStageType::Fragment | nzsl::ShaderStageType::Vertex, Nz::ShaderLanguage::NazaraShader, shaderDir / "skybox.nzsl", states));
@ -264,7 +263,7 @@ int main()
Nz::RenderPipelineLayoutInfo lightingPipelineLayoutInfo; Nz::RenderPipelineLayoutInfo lightingPipelineLayoutInfo;
lightingPipelineLayoutInfo.bindings.push_back({ lightingPipelineLayoutInfo.bindings.push_back({
0, 0, 0, 0, 1,
Nz::ShaderBindingType::UniformBuffer, Nz::ShaderBindingType::UniformBuffer,
nzsl::ShaderStageType_All nzsl::ShaderStageType_All
}); });
@ -274,6 +273,7 @@ int main()
lightingPipelineLayoutInfo.bindings.push_back({ lightingPipelineLayoutInfo.bindings.push_back({
0, 0,
i + 1, i + 1,
1,
Nz::ShaderBindingType::Texture, Nz::ShaderBindingType::Texture,
nzsl::ShaderStageType::Fragment, nzsl::ShaderStageType::Fragment,
}); });
@ -282,6 +282,7 @@ int main()
lightingPipelineLayoutInfo.bindings.push_back({ lightingPipelineLayoutInfo.bindings.push_back({
1, 1,
0, 0,
1,
Nz::ShaderBindingType::UniformBuffer, Nz::ShaderBindingType::UniformBuffer,
nzsl::ShaderStageType::Fragment | nzsl::ShaderStageType::Vertex, nzsl::ShaderStageType::Fragment | nzsl::ShaderStageType::Vertex,
}); });
@ -358,13 +359,13 @@ int main()
Nz::RenderPipelineLayoutInfo fullscreenPipelineLayoutInfoViewer; Nz::RenderPipelineLayoutInfo fullscreenPipelineLayoutInfoViewer;
fullscreenPipelineLayoutInfoViewer.bindings.push_back({ fullscreenPipelineLayoutInfoViewer.bindings.push_back({
0, 0, 0, 0, 1,
Nz::ShaderBindingType::UniformBuffer, Nz::ShaderBindingType::UniformBuffer,
nzsl::ShaderStageType_All nzsl::ShaderStageType_All
}); });
fullscreenPipelineLayoutInfoViewer.bindings.push_back({ fullscreenPipelineLayoutInfoViewer.bindings.push_back({
0, 1, 0, 1, 1,
Nz::ShaderBindingType::Texture, Nz::ShaderBindingType::Texture,
nzsl::ShaderStageType::Fragment, nzsl::ShaderStageType::Fragment,
}); });
@ -384,7 +385,7 @@ int main()
Nz::RenderPipelineLayoutInfo gaussianBlurPipelineLayoutInfo = fullscreenPipelineLayoutInfoViewer; Nz::RenderPipelineLayoutInfo gaussianBlurPipelineLayoutInfo = fullscreenPipelineLayoutInfoViewer;
gaussianBlurPipelineLayoutInfo.bindings.push_back({ gaussianBlurPipelineLayoutInfo.bindings.push_back({
0, 2, 0, 2, 1,
Nz::ShaderBindingType::UniformBuffer, Nz::ShaderBindingType::UniformBuffer,
nzsl::ShaderStageType::Fragment, nzsl::ShaderStageType::Fragment,
}); });
@ -437,19 +438,19 @@ int main()
Nz::RenderPipelineLayoutInfo bloomBlendPipelineLayoutInfo; Nz::RenderPipelineLayoutInfo bloomBlendPipelineLayoutInfo;
bloomBlendPipelineLayoutInfo.bindings.push_back({ bloomBlendPipelineLayoutInfo.bindings.push_back({
0, 0, 0, 0, 1,
Nz::ShaderBindingType::UniformBuffer, Nz::ShaderBindingType::UniformBuffer,
nzsl::ShaderStageType_All nzsl::ShaderStageType_All
}); });
/*bloomBlendPipelineLayoutInfo.bindings.push_back({ /*bloomBlendPipelineLayoutInfo.bindings.push_back({
0, 1, 0, 1, 1,
Nz::ShaderBindingType::Texture, Nz::ShaderBindingType::Texture,
nzsl::ShaderStageType::Fragment, nzsl::ShaderStageType::Fragment,
});*/ });*/
bloomBlendPipelineLayoutInfo.bindings.push_back({ bloomBlendPipelineLayoutInfo.bindings.push_back({
0, 2, 0, 2, 1,
Nz::ShaderBindingType::Texture, Nz::ShaderBindingType::Texture,
nzsl::ShaderStageType::Fragment, nzsl::ShaderStageType::Fragment,
}); });
@ -473,7 +474,7 @@ int main()
Nz::RenderPipelineLayoutInfo fullscreenPipelineLayoutInfo; Nz::RenderPipelineLayoutInfo fullscreenPipelineLayoutInfo;
fullscreenPipelineLayoutInfo.bindings.push_back({ fullscreenPipelineLayoutInfo.bindings.push_back({
0, 0, 0, 0, 1,
Nz::ShaderBindingType::Texture, Nz::ShaderBindingType::Texture,
nzsl::ShaderStageType::Fragment, nzsl::ShaderStageType::Fragment,
}); });
@ -491,17 +492,17 @@ int main()
godraysPipelineLayoutInfo.bindings = { godraysPipelineLayoutInfo.bindings = {
{ {
{ {
0, 0, 0, 0, 1,
Nz::ShaderBindingType::UniformBuffer, Nz::ShaderBindingType::UniformBuffer,
nzsl::ShaderStageType::Fragment, nzsl::ShaderStageType::Fragment,
}, },
{ {
0, 1, 0, 1, 1,
Nz::ShaderBindingType::UniformBuffer, Nz::ShaderBindingType::UniformBuffer,
nzsl::ShaderStageType::Fragment, nzsl::ShaderStageType::Fragment,
}, },
{ {
0, 2, 0, 2, 1,
Nz::ShaderBindingType::Texture, Nz::ShaderBindingType::Texture,
nzsl::ShaderStageType::Fragment, nzsl::ShaderStageType::Fragment,
}, },
@ -557,7 +558,6 @@ int main()
meshPrimitiveParams.vertexDeclaration meshPrimitiveParams.vertexDeclaration
}); });
lightingPipelineInfo.depthBuffer = false; lightingPipelineInfo.depthBuffer = false;
lightingPipelineInfo.faceCulling = true;
lightingPipelineInfo.faceCulling = Nz::FaceCulling::Front; lightingPipelineInfo.faceCulling = Nz::FaceCulling::Front;
lightingPipelineInfo.stencilTest = true; lightingPipelineInfo.stencilTest = true;
lightingPipelineInfo.stencilBack.compare = Nz::RendererComparison::NotEqual; lightingPipelineInfo.stencilBack.compare = Nz::RendererComparison::NotEqual;
@ -580,7 +580,7 @@ int main()
stencilPipelineInfo.colorWriteMask = 0; stencilPipelineInfo.colorWriteMask = 0;
stencilPipelineInfo.depthBuffer = true; stencilPipelineInfo.depthBuffer = true;
stencilPipelineInfo.depthWrite = false; stencilPipelineInfo.depthWrite = false;
stencilPipelineInfo.faceCulling = false; stencilPipelineInfo.faceCulling = Nz::FaceCulling::None;
stencilPipelineInfo.stencilTest = true; stencilPipelineInfo.stencilTest = true;
stencilPipelineInfo.stencilFront.compare = Nz::RendererComparison::Always; stencilPipelineInfo.stencilFront.compare = Nz::RendererComparison::Always;
stencilPipelineInfo.stencilFront.depthFail = Nz::StencilOperation::Invert; stencilPipelineInfo.stencilFront.depthFail = Nz::StencilOperation::Invert;

View File

@ -148,8 +148,12 @@ int main()
entt::entity headingEntity = registry.create(); entt::entity headingEntity = registry.create();
{ {
auto spotLight = std::make_shared<Nz::SpotLight>();
spotLight->EnableShadowCasting(true);
spotLight->UpdateShadowMapSize(1024);
auto& entityLight = registry.emplace<Nz::LightComponent>(playerEntity); auto& entityLight = registry.emplace<Nz::LightComponent>(playerEntity);
entityLight.AttachLight(std::make_shared<Nz::SpotLight>(), 1); entityLight.AttachLight(std::move(spotLight), 1);
auto& entityGfx = registry.emplace<Nz::GraphicsComponent>(playerEntity); auto& entityGfx = registry.emplace<Nz::GraphicsComponent>(playerEntity);
entityGfx.AttachRenderable(model, 1); entityGfx.AttachRenderable(model, 1);

View File

@ -233,7 +233,7 @@ int main()
Nz::RenderPipelineInfo pipelineInfo; Nz::RenderPipelineInfo pipelineInfo;
pipelineInfo.pipelineLayout = renderPipelineLayout; pipelineInfo.pipelineLayout = renderPipelineLayout;
pipelineInfo.faceCulling = true; pipelineInfo.faceCulling = Nz::FaceCulling::Back;
pipelineInfo.depthBuffer = true; pipelineInfo.depthBuffer = true;
pipelineInfo.shaderModules.emplace_back(fragVertShader); pipelineInfo.shaderModules.emplace_back(fragVertShader);