From 90d04c2d9f447cd1bbe7e89bf0332a07e8ab99d6 Mon Sep 17 00:00:00 2001 From: connellpaxton Date: Tue, 6 Feb 2024 08:50:16 -0500 Subject: [PATCH] Fixed normal generation (forgot to properly bump scale). --- Renderer/Pipeline.cpp | 2 +- Renderer/Renderer.cpp | 2 +- Scene/Terrain.cpp | 2 +- UI/UI.cpp | 2 +- assets/shaders/gooch.frag | 7 ++++++- assets/shaders/gooch.frag.spv | Bin 2972 -> 3312 bytes assets/shaders/terrain.frag | 10 ++++++++-- assets/shaders/terrain.frag.spv | Bin 2200 -> 2264 bytes 8 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Renderer/Pipeline.cpp b/Renderer/Pipeline.cpp index 24745ce..33e7455 100644 --- a/Renderer/Pipeline.cpp +++ b/Renderer/Pipeline.cpp @@ -93,7 +93,7 @@ GraphicsPipeline::GraphicsPipeline(vk::Device dev, const std::vector& sh const auto raster_info = vk::PipelineRasterizationStateCreateInfo { .depthClampEnable = vk::False, - .polygonMode = type == Type::eGLTF? vk::PolygonMode::eFill : vk::PolygonMode::eLine, + .polygonMode = type == Type::eGLTF? vk::PolygonMode::eFill : vk::PolygonMode::eFill, .cullMode = vk::CullModeFlagBits::eNone, .frontFace = Type::eGLTF ? vk::FrontFace::eClockwise : vk::FrontFace::eCounterClockwise, .depthBiasEnable = vk::False, diff --git a/Renderer/Renderer.cpp b/Renderer/Renderer.cpp index d1790e9..6d88e28 100644 --- a/Renderer/Renderer.cpp +++ b/Renderer/Renderer.cpp @@ -230,7 +230,7 @@ Renderer::Renderer(Window& win) : win(win) { { dev, "assets/shaders/terrain.vert.spv", vk::ShaderStageFlagBits::eVertex }, { dev, "assets/shaders/terrain.tesc.spv", vk::ShaderStageFlagBits::eTessellationControl }, { dev, "assets/shaders/terrain.tese.spv", vk::ShaderStageFlagBits::eTessellationEvaluation }, - { dev, "assets/shaders/terrain.frag.spv", vk::ShaderStageFlagBits::eFragment }, + { dev, "assets/shaders/gooch.frag.spv", vk::ShaderStageFlagBits::eFragment }, }; terrain_pipeline = std::make_unique(dev, terrain_shaders, swapchain->extent, *render_pass, bindings, *terrain->vertex_buffer, GraphicsPipeline::eTERRAIN); diff --git a/Scene/Terrain.cpp b/Scene/Terrain.cpp index 00c8cef..5a5c2aa 100644 --- a/Scene/Terrain.cpp +++ b/Scene/Terrain.cpp @@ -73,7 +73,7 @@ Terrain::Terrain(vk::PhysicalDevice phys_dev, vk::Device dev, Texture& tex) : ph - moores_heights[0][2] - 2.0f * moores_heights[1][2] - moores_heights[2][2] ); /* fill in missing component, first scalar scales bump */ - normal.y = 0.25 * glm::sqrt(glm::abs(1.0 - normal.x*normal.x - normal.z*normal.z)); + normal.y = 15.0 * glm::sqrt(glm::abs(1.0 - normal.x*normal.x - normal.z*normal.z)); vertices[x + y * patch_size].norm = glm::normalize(normal * glm::vec3(2.0f, 1.0f, 2.0f)); diff --git a/UI/UI.cpp b/UI/UI.cpp index 8a84fb4..922f228 100644 --- a/UI/UI.cpp +++ b/UI/UI.cpp @@ -92,7 +92,7 @@ void UI::newFrame() { ImGui::Text("FPS: %f", info.fps); ImGui::Text("Time: %f", info.time); ImGui::Checkbox("Fly Camera", &info.flycam); - ImGui::SliderFloat("Tessellation Factor", &info.tess_factor, 0.0, 100.0); + ImGui::SliderFloat("Tessellation Factor", &info.tess_factor, 0.1, 10.0); ImGui::SliderFloat("Edge Size", &info.tess_edge_size, 0.0, 40.0); ImGui::End(); diff --git a/assets/shaders/gooch.frag b/assets/shaders/gooch.frag index 8a271a5..a60982a 100644 --- a/assets/shaders/gooch.frag +++ b/assets/shaders/gooch.frag @@ -6,9 +6,14 @@ layout (location = 2) in vec3 pos; layout (location = 0) out vec4 FragColor; layout (set = 0, binding = 0) uniform Matrices { - mat4 mvp; + mat4 view; + mat4 proj; float time; vec3 cam_pos; + vec4 frustum[6]; + vec2 viewport; + float tess_factor; + float tess_edge_size; }; layout (set = 0, binding = 1) uniform sampler2D tex; diff --git a/assets/shaders/gooch.frag.spv b/assets/shaders/gooch.frag.spv index f9008468c8d177549fbc03d25a7e5e1a0e95f948..92ef58f0effc2af048e7a9774973ebe714b61f69 100644 GIT binary patch literal 3312 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 tW6i+808#@I?|_FNG3;;`KjF|uc literal 2200 zcmZQ(Qf6mhU}WHC;AL=OfB-=TCI&_Z1_o{hHZbk(6YQf`T#}+^Vrl?V!NDtbmn)1#CXd zepUun22KVBhMdgwjFR|*{9*{z!n*|&vdHF@TAR|EG0g4~DqQrFP{G5D+C`=R>SQt1M7{Fp6agaP0G!8-GBf-GJz|FwG01^Z7MHyHaco-NMKxTp5s}1Gz zLiNZ%(*Q_4NDO2iKU5ABK5`6P;IIOj3Bn+Efb0dO8<;wf7|30M&@cj}32O!x1`r<< zwjgsr?huB$1LSXzJ3xF9s2-4hQ79W^9!MTU%YYosz`y|G%Y*p}jv)1*_ym~+au3Kp z5FZp*ATf}<1~i;N=D_4ZaR-uznP&_(ufZP1HwE(-fX%lCmv4};1nCFyL2(U=2OS1> za2VS%Fff43K*k`u?HE9%FarZ9j6ixpd{DXo*)7Sy$pFd|Aa{ZIU@M^nj4#c=%;3nt z09FSw&j~6I5(AkB;)Bu=NZ5>l6`Y1Z@eSgG-1mcli2;;1Kx#qh1yp{*!U@C&r9T)S z6i%Qr2AK~kXFz;M237`8yofO{fXgaSeAzOvfYYZq0|Ns{oCjPgGB8L${R~PQAUT*` zNi2G$7#J8p;xN6^P`#iu2$Bl`mz)d?vJ4P&LGqxq08$Tf7c76dGC=4df6fbD|uwb9JgVPIeYsR4pr Cf`^p=