diff options
Diffstat (limited to 'src/deferredPbrRendererBase.cs')
| -rw-r--r-- | src/deferredPbrRendererBase.cs | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/src/deferredPbrRendererBase.cs b/src/deferredPbrRendererBase.cs index 9e18607..9bfa612 100644 --- a/src/deferredPbrRendererBase.cs +++ b/src/deferredPbrRendererBase.cs @@ -57,16 +57,6 @@ namespace vkChess public Matrices matrices = new Matrices { scaleIBLAmbient = 0.5f }; - //public Light[] lights = { - // new Light { - // position = new Vector4(3.5f,12.5f,2,0f), - // color = new Vector4(1,0.8f,0.8f,1) - // }, - // new Light { - // position = new Vector4(-3.5f,12.5f,2,0f), - // color = new Vector4(0.8f,0.8f,1,1) - // } - //}; public Light [] lights = { new Light { position = new Vector4(5.5f,12.5f,2,0f), @@ -77,9 +67,6 @@ namespace vkChess color = new Vector4(1,1,1,1) }*/ }; - - //public DescriptorSetWrites UiImageUpdate => new DescriptorSetWrites (dsMain, descLayoutMain.Bindings [8]); - const float lightMoveSpeed = 0.1f; FrameBuffers frameBuffers; @@ -111,10 +98,11 @@ namespace vkChess const int SP_DEPTH_PREPASS = 1; const int SP_MODELS = 2; const int SP_COMPOSE = 3; - //const int SP_TONE_MAPPING = 4; public Model.Scene mainScene; + bool enableTesselation => Crow.Configuration.Global.Get<bool> ("EnableTesselation", false); + public DeferredPbrRendererBase (Device dev, SwapChain swapChain, PresentQueue presentQueue, string cubemapPath, float nearPlane, float farPlane) { this.dev = dev; this.swapChain = swapChain; @@ -266,13 +254,17 @@ namespace vkChess new SpecializationConstant<float> (0, nearPlane), new SpecializationConstant<float> (1, farPlane), new SpecializationConstant<int> (2, MAX_MATERIAL_COUNT))) { - cfg.inputAssemblyState.topology = VkPrimitiveTopology.PatchList; - - cfg.AddShader (dev, VkShaderStageFlags.TessellationControl, "#vkChess.net.pntriangles.tesc.spv"); - cfg.AddShader (dev, VkShaderStageFlags.TessellationEvaluation, "#vkChess.net.pntriangles.tese.spv"); - cfg.AddShader (dev, VkShaderStageFlags.Vertex, "#vkChess.net.GBuffPbrInstanced.vert.spv"); - cfg.TessellationPatchControlPoints = 3; + if (enableTesselation) { + cfg.inputAssemblyState.topology = VkPrimitiveTopology.PatchList; + cfg.AddShader (dev, VkShaderStageFlags.TessellationControl, "#vkChess.net.pntriangles.tesc.spv"); + cfg.AddShader (dev, VkShaderStageFlags.TessellationEvaluation, "#vkChess.net.pntriangles.tese.spv"); + cfg.AddShader (dev, VkShaderStageFlags.Vertex, "#vkChess.net.GBuffPbrInstancedTesselation.vert.spv"); + cfg.TessellationPatchControlPoints = 3; + } else { + cfg.inputAssemblyState.topology = VkPrimitiveTopology.TriangleList; + cfg.AddShader (dev, VkShaderStageFlags.Vertex, "#vkChess.net.GBuffPbrInstanced.vert.spv"); + } cfg.SubpassIndex = SP_DEPTH_PREPASS; |