diff --git a/HydraClient/source/HydraGame.cpp b/HydraClient/source/HydraGame.cpp index f2fff7c..78de5c1 100644 --- a/HydraClient/source/HydraGame.cpp +++ b/HydraClient/source/HydraGame.cpp @@ -62,7 +62,7 @@ bool HydraGame::Initialise() m_player_actor_id = GetEngine()->ActorManager()->CreateActor(); GetEngine()->ActorManager()->InitialiseActor(m_player_actor_id); - GetEngine()->ActorManager()->SetPosition(m_player_actor_id, glm::dvec3(0, 2, 10000)); + GetEngine()->ActorManager()->SetPosition(m_player_actor_id, glm::dvec3(0, 0, 1100)); GetEngine()->PossessPlayer(m_player_actor_id); GetEngine()->Camera()->AttachToActor(m_player_actor_id); diff --git a/HydraEngine/source/ShaderFiles/deferred_output_shader.frag b/HydraEngine/source/ShaderFiles/deferred_output_shader.frag index adb285e..9d6a190 100644 --- a/HydraEngine/source/ShaderFiles/deferred_output_shader.frag +++ b/HydraEngine/source/ShaderFiles/deferred_output_shader.frag @@ -561,6 +561,7 @@ void main() float ao = 1; vec3 ambient = vec3(0.05) * diffuse.xyz * ao; vec3 Lo = ambient; + if(metal_rough[0] > 0) { uFragColor = vec4(diffuse.xyz * metal_rough[0], diffuse.a); @@ -655,7 +656,7 @@ void main() uFragColor = vec4(output_color, 1.0); } - + //uFragColor = vec4(normal,1); // float light = dot(lights[0].light_direction, normal); // uFragColor = vec4(diffuse.xyz * light,1); diff --git a/HydraEngine/source/actor/PlanetActor/HydraPlanetActor.cpp b/HydraEngine/source/actor/PlanetActor/HydraPlanetActor.cpp index 567732c..ec8ac19 100644 --- a/HydraEngine/source/actor/PlanetActor/HydraPlanetActor.cpp +++ b/HydraEngine/source/actor/PlanetActor/HydraPlanetActor.cpp @@ -214,7 +214,7 @@ void HydraPlanetActor::_CreateQuads() { m_quads[0] = GetEngine()->ActorManager()->CreateActor(); HydraPlanetQuadActor* quad0 = static_cast(GetEngine()->ActorManager()->GetActor(m_quads[0])); - quad0->InitialiseQuad(10000.0f, 10000.0f, 100, glm::vec3(0,0,0)); + quad0->InitialiseQuad(1000.0f, 1000.0f, 4, glm::vec3(0,0,0)); GetEngine()->ActorManager()->InitialiseActor(m_quads[0]); - GetEngine()->ActorManager()->SetPosition(m_quads[0], glm::dvec3(-5000, -5000 , 5000)); + GetEngine()->ActorManager()->SetPosition(m_quads[0], glm::dvec3(0, 0 , 0)); } diff --git a/HydraEngine/source/actor/PlanetActor/HydraPlanetQuadActor.cpp b/HydraEngine/source/actor/PlanetActor/HydraPlanetQuadActor.cpp index 9444913..c1ca085 100644 --- a/HydraEngine/source/actor/PlanetActor/HydraPlanetQuadActor.cpp +++ b/HydraEngine/source/actor/PlanetActor/HydraPlanetQuadActor.cpp @@ -52,32 +52,29 @@ void HydraPlanetQuadActor::_CreateMesh() HydraMesh *mesh = mesh_manager->GetMesh(mesh_id); HydraMaterialComponent mat_comp = GetEngine()->ECS()->GetComponent(GetID()); + uint32_t vert_counts = m_divisions * m_divisions; uint32_t index_counts = ((m_divisions - 1) * (m_divisions -1)) * 6; mesh->vertexes.resize(vert_counts); mesh->indexes.resize(index_counts); - float scale_x = 10000.0f; - float scale_y = 10000.0f; - float scale_z = 10000.0f; - float min_x = -m_quad_dimension / 2.0f; - float min_y = m_quad_dimension / 2.0f; + float min_y = -m_quad_dimension / 2.0f; float min_z = 0.0f; - float max_x = -m_quad_dimension / 2.0f; + float max_x = m_quad_dimension / 2.0f; float max_y = m_quad_dimension / 2.0f; float max_z = 0.0f; - - float min_u = 100; - float min_v = 100; + float min_u = 0; + float min_v = 1; - float max_u = 0; + float max_u = 1; float max_v = 0; float xy_inc = m_quad_dimension / m_divisions; - float uv_inc = -min_u / m_divisions; + float u_inc = max_u / (m_divisions-1); + float v_inc = -min_v / (m_divisions-1); // 1---2 // | / | @@ -89,45 +86,48 @@ void HydraPlanetQuadActor::_CreateMesh() float u = min_u; float v = min_v; - uint32_t vert_idx =0; + uint32_t vert_idx = 0; uint32_t index_idx = 0; + for(uint32_t y_count = 0; y_count < m_divisions - 1; y_count ++) { for(uint32_t x_count = 0; x_count < m_divisions - 1; x_count ++) { //Create Vertex - mesh->vertexes[vert_idx] = {x, y, min_z, min_u, min_v, actor_id, mat_comp.material_id, 0}; - uint32_t ind0 = vert_idx + m_divisions; - uint32_t ind1 = vert_idx; - uint32_t ind2 = vert_idx + 1; - uint32_t ind3 = vert_idx + m_divisions + 1; + mesh->vertexes[vert_idx] = {x, y, min_z, u, v, actor_id, mat_comp.material_id, 0}; + uint32_t ind0 = vert_idx; + uint32_t ind1 = vert_idx + m_divisions; + uint32_t ind2 = vert_idx + m_divisions + 1; + uint32_t ind3 = vert_idx + 1; mesh->indexes[index_idx + 0] = ind0; - mesh->indexes[index_idx + 1] = ind1; - mesh->indexes[index_idx + 2] = ind2; + mesh->indexes[index_idx + 1] = ind2; + mesh->indexes[index_idx + 2] = ind1; mesh->indexes[index_idx + 3] = ind0; - mesh->indexes[index_idx + 4] = ind2; - mesh->indexes[index_idx + 5] = ind3; + mesh->indexes[index_idx + 4] = ind3; + mesh->indexes[index_idx + 5] = ind2; x += xy_inc; - u += uv_inc; + u += u_inc; vert_idx++; - index_idx ++; + index_idx += 6; } + //Add the end vert but no indexes - mesh->vertexes[vert_idx] = {x, y, min_z, min_u, min_v, actor_id, mat_comp.material_id, 0}; - + mesh->vertexes[vert_idx] = {x, y, min_z, u, v, actor_id, mat_comp.material_id, 0}; + vert_idx++; y += xy_inc; - v += uv_inc; + v += v_inc; x = min_x; u = min_u; + } //the last row - for(uint32_t x_count = 0; x_count < m_divisions - 1; x_count ++) + for(uint32_t x_count = 0; x_count < m_divisions; x_count ++) { - mesh->vertexes[vert_idx] = {x, y, min_z, min_u, min_v, actor_id, mat_comp.material_id, 0}; + mesh->vertexes[vert_idx] = {x, y, min_z, u, v, actor_id, mat_comp.material_id, 0}; x += xy_inc; - u += uv_inc; + u += u_inc; vert_idx++; } diff --git a/HydraEngine/source/mesh/HydraMeshManager.cpp b/HydraEngine/source/mesh/HydraMeshManager.cpp index cc695a7..80a48e7 100644 --- a/HydraEngine/source/mesh/HydraMeshManager.cpp +++ b/HydraEngine/source/mesh/HydraMeshManager.cpp @@ -57,7 +57,6 @@ void HydraMeshManager::DeleteMesh(HydraID mesh_id) void HydraMeshManager::CalculateNormals(HydraID mesh_id) { - HydraMesh mesh = m_meshes[mesh_id]; for (int i = 0; i < mesh.indexes.size(); i += 3) { @@ -65,9 +64,14 @@ void HydraMeshManager::CalculateNormals(HydraID mesh_id) uint32_t idx1 = mesh.indexes[i+1]; uint32_t idx2 = mesh.indexes[i+2]; - glm::vec3 vec0 = glm::normalize(glm::vec3(mesh.vertexes[idx0].position[0], mesh.vertexes[idx0].position[1], mesh.vertexes[idx0].position[2])); - glm::vec3 vec1 = glm::normalize(glm::vec3(mesh.vertexes[idx1].position[0], mesh.vertexes[idx1].position[1], mesh.vertexes[idx1].position[2])); - glm::vec3 vec2 = glm::normalize(glm::vec3(mesh.vertexes[idx2].position[0], mesh.vertexes[idx2].position[1], mesh.vertexes[idx2].position[2])); + glm::vec3 vec0 = glm::vec3(mesh.vertexes[idx0].position[0], mesh.vertexes[idx0].position[1], mesh.vertexes[idx0].position[2]); + glm::vec3 vec1 = glm::vec3(mesh.vertexes[idx1].position[0], mesh.vertexes[idx1].position[1], mesh.vertexes[idx1].position[2]); + glm::vec3 vec2 = glm::vec3(mesh.vertexes[idx2].position[0], mesh.vertexes[idx2].position[1], mesh.vertexes[idx2].position[2]); + + vec1= vec1 - vec0; + vec2 = vec2 - vec0; + vec0 = glm::vec3(0,0,0); + glm::vec3 normal = glm::triangleNormal(vec0, vec1, vec2); @@ -82,25 +86,6 @@ void HydraMeshManager::CalculateNormals(HydraID mesh_id) m_meshes[mesh_id].vertexes[idx2].normal[0] = normal[0]; m_meshes[mesh_id].vertexes[idx2].normal[1] = normal[1]; m_meshes[mesh_id].vertexes[idx2].normal[2] = normal[2]; - // glm::vec3 vec0 = glm::vec3(mesh.vertexes[mesh.indexes[i]], mesh.vertexes[mesh.indexes[i] + 1], mesh.vertexes[mesh.indexes[i] + 2]); - // glm::vec3 vec1 = glm::vec3(Vertexes[Indexes[i+1]], Vertexes[Indexes[i+1] + 1], Vertexes[Indexes[i+1] + 2]); - // glm::vec3 vec2 = glm::vec3(Vertexes[Indexes[i+2]], Vertexes[Indexes[i+2] + 1], Vertexes[Indexes[i+2] + 2]); - - // glm::vec3 normal = glm::triangleNormal(vec0, vec1, vec2); - - // Normals[Indexes[i]] = normal.x; - // Normals[Indexes[i]+1] = normal.y; - // Normals[Indexes[i]+2] = normal.z; - - // Normals[Indexes[i+1]] = normal.x; - // Normals[Indexes[i+1] + 1] = normal.y; - // Normals[Indexes[i+1] + 2] = normal.z; - - // Normals[Indexes[i + 2]] = normal.x; - // Normals[Indexes[i + 2] + 1] = normal.y; - // Normals[Indexes[i + 2] + 2] = normal.z; - } - } diff --git a/build/Debug/HydraClient.pdb b/build/Debug/HydraClient.pdb index 8bf1d53..a53c7be 100644 Binary files a/build/Debug/HydraClient.pdb and b/build/Debug/HydraClient.pdb differ diff --git a/build/Debug/imgui.ini b/build/Debug/imgui.ini index a9a1be9..2fb0a8a 100644 --- a/build/Debug/imgui.ini +++ b/build/Debug/imgui.ini @@ -2,11 +2,11 @@ Pos=60,60 Size=400,400 Collapsed=0 -LastUsed=20260903 +LastUsed=20260904 [Window][Hello, world!] Pos=60,60 Size=338,157 Collapsed=0 -LastUsed=20260903 +LastUsed=20260904 diff --git a/build/HydraClient.dir/Debug/HydraClient.ilk b/build/HydraClient.dir/Debug/HydraClient.ilk index 7ef51bd..215a44c 100644 Binary files a/build/HydraClient.dir/Debug/HydraClient.ilk and b/build/HydraClient.dir/Debug/HydraClient.ilk differ diff --git a/build/HydraClient.dir/Debug/HydraClient.tlog/CL.read.1.tlog b/build/HydraClient.dir/Debug/HydraClient.tlog/CL.read.1.tlog index 61ad2d4..820d186 100644 Binary files a/build/HydraClient.dir/Debug/HydraClient.tlog/CL.read.1.tlog and b/build/HydraClient.dir/Debug/HydraClient.tlog/CL.read.1.tlog differ diff --git a/build/HydraClient.dir/Debug/HydraClient.tlog/CL.write.1.tlog b/build/HydraClient.dir/Debug/HydraClient.tlog/CL.write.1.tlog index 8e2333e..6c56cb0 100644 Binary files a/build/HydraClient.dir/Debug/HydraClient.tlog/CL.write.1.tlog and b/build/HydraClient.dir/Debug/HydraClient.tlog/CL.write.1.tlog differ diff --git a/build/HydraClient.dir/Debug/HydraClient.tlog/link.read.1.tlog b/build/HydraClient.dir/Debug/HydraClient.tlog/link.read.1.tlog index 6cbe136..fe4b3e0 100644 Binary files a/build/HydraClient.dir/Debug/HydraClient.tlog/link.read.1.tlog and b/build/HydraClient.dir/Debug/HydraClient.tlog/link.read.1.tlog differ diff --git a/build/HydraClient.dir/Debug/vc143.pdb b/build/HydraClient.dir/Debug/vc143.pdb index b614de6..8329486 100644 Binary files a/build/HydraClient.dir/Debug/vc143.pdb and b/build/HydraClient.dir/Debug/vc143.pdb differ diff --git a/build/HydraEngine/Debug/HydraEngine.pdb b/build/HydraEngine/Debug/HydraEngine.pdb index 4d13524..8737bf0 100644 Binary files a/build/HydraEngine/Debug/HydraEngine.pdb and b/build/HydraEngine/Debug/HydraEngine.pdb differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.ilk b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.ilk index 586dfe0..22ae072 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.ilk and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.ilk differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.command.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.command.1.tlog index 995efd4..296b076 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.command.1.tlog and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.command.1.tlog differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.read.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.read.1.tlog index 4bdd40e..9944bf1 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.read.1.tlog and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.read.1.tlog differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.write.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.write.1.tlog index 28aa346..bce49e0 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.write.1.tlog and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.write.1.tlog differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/vc143.pdb b/build/HydraEngine/HydraEngine.dir/Debug/vc143.pdb index 1bfa98e..8b6dbe1 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/vc143.pdb and b/build/HydraEngine/HydraEngine.dir/Debug/vc143.pdb differ