From 55232a4ec2e7adeb0872a534589b07dc7bd7a6b1 Mon Sep 17 00:00:00 2001 From: tleety Date: Mon, 19 Oct 2015 14:50:26 +0200 Subject: [PATCH] water radius now changeable in config file, also improved the look of the water --- assets/DefaultConfig.ini | 2 +- include/Core/Engine.h | 4 +--- include/Core/Renderer.h | 2 ++ include/Physics/PhysicsSystem.h | 2 ++ src/game/Core/Renderer.cpp | 11 +++++++---- src/game/Physics/PhysicsSystem.cpp | 3 ++- 6 files changed, 15 insertions(+), 9 deletions(-) diff --git a/assets/DefaultConfig.ini b/assets/DefaultConfig.ini index 071f3df..8f13964 100755 --- a/assets/DefaultConfig.ini +++ b/assets/DefaultConfig.ini @@ -9,4 +9,4 @@ BGMVolume=0.5 [Video] Fullscreen=false Width=675 -Height=1080 \ No newline at end of file +Height=1080[Water]Radius=0.3 \ No newline at end of file diff --git a/include/Core/Engine.h b/include/Core/Engine.h index c28b30c..2174e2e 100755 --- a/include/Core/Engine.h +++ b/include/Core/Engine.h @@ -252,7 +252,7 @@ public: m_World->CommitEntity(background); } -// auto particleEmitter= m_World->AddComponent(Pe); + //auto particleEmitter= m_World->AddComponent(Pe); //Water test { auto t_waterBody = m_World->CreateEntity(); @@ -266,8 +266,6 @@ public: } //ParticleTest - - /*{ auto Pe = m_World->CreateEntity(); auto transform = m_World->AddComponent(Pe); diff --git a/include/Core/Renderer.h b/include/Core/Renderer.h index b02928a..1f02cd7 100755 --- a/include/Core/Renderer.h +++ b/include/Core/Renderer.h @@ -25,6 +25,8 @@ #include "Core/CTemplate.h" #include "Core/EventBroker.h" #include "Core/World.h" +#include "Core/ResourceManager.h" +#include "Core/ConfigFile.h" #include "Game/EScreenShake.h" #include "Camera.h" #include "RenderQueue.h" diff --git a/include/Physics/PhysicsSystem.h b/include/Physics/PhysicsSystem.h index bd37c74..6ca6715 100755 --- a/include/Physics/PhysicsSystem.h +++ b/include/Physics/PhysicsSystem.h @@ -6,6 +6,8 @@ #include +#include "Core/ResourceManager.h" +#include "Core/ConfigFile.h" #include "Core/System.h" #include "Core/World.h" #include "Core/EventBroker.h" diff --git a/src/game/Core/Renderer.cpp b/src/game/Core/Renderer.cpp index 29bedab..8ea20c8 100755 --- a/src/game/Core/Renderer.cpp +++ b/src/game/Core/Renderer.cpp @@ -123,7 +123,8 @@ void dd::Renderer::CreateBuffers() m_UnitSphere = ResourceManager::Load("Models/Core/UnitSphere.obj"); m_StandardNormal = ResourceManager::Load("Textures/Core/NeutralNormalMap.png"); m_StandardSpecular = ResourceManager::Load("Textures/Core/NeutralSpecularMap.png"); - m_WhiteSphereTexture = ResourceManager::Load("Textures/Test/Water.png"); + //m_WhiteSphereTexture = ResourceManager::Load("Textures/Test/Water.png"); + m_WhiteSphereTexture = ResourceManager::Load("Textures/Particles/FadeBall.png"); glGenRenderbuffers(1, &m_RbDepthBuffer); glBindRenderbuffer(GL_RENDERBUFFER, m_RbDepthBuffer); @@ -207,8 +208,8 @@ void dd::Renderer::CreateBuffers() glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, m_Resolution.Width, m_Resolution.Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); //Fill water pass glGenFramebuffers(1, &m_FbWater); @@ -557,7 +558,9 @@ void dd::Renderer::DrawWater(RenderQueue &rq) glClear(GL_COLOR_BUFFER_BIT); m_SpWater2->Bind(); //TODO: Add this in water particle component. Blurradius - float radius = 3.f; + + float radius = ResourceManager::Load("Config.ini")->GetValue("Water.Radius", 0.2f); + radius *= 35; glUniform2fv(glGetUniformLocation(shaderProgramHandle, "dir"), 1, glm::value_ptr(glm::vec2(1.0f, 0.0f))); glUniform1f(glGetUniformLocation(shaderProgramHandle, "res"), m_Resolution.Width); diff --git a/src/game/Physics/PhysicsSystem.cpp b/src/game/Physics/PhysicsSystem.cpp index 6c55530..9c92331 100755 --- a/src/game/Physics/PhysicsSystem.cpp +++ b/src/game/Physics/PhysicsSystem.cpp @@ -29,7 +29,7 @@ void dd::Systems::PhysicsSystem::Initialize() void dd::Systems::PhysicsSystem::InitializeWater() { - float radius = 0.13f; + float radius = ResourceManager::Load("Config.ini")->GetValue("Water.Radius", 0.2f); float gravityScale = 1.0f; b2ParticleSystemDef m_ParticleSystemDef; @@ -477,6 +477,7 @@ void dd::Systems::PhysicsSystem::CreateParticleGroup(EntityID e) transformChild->Position = glm::vec3(t_ParticlePositions[i].x - transform->Position.x, t_ParticlePositions[i].y - transform->Position.y, -9.5f); transformChild->Scale = glm::vec3(m_WaterParticleSystem->GetRadius())/transform->Scale; + transformChild->Scale *= 2; m_World->CommitEntity(t_waterparticle); m_EntitiesToWaterParticleHandle.insert(std::make_pair(t_waterparticle, m_WaterParticleSystem->GetParticleHandleFromIndex(i)));