From 9efda1175597365d0843c9155350ed00e4ab7dd2 Mon Sep 17 00:00:00 2001 From: daniel Date: Tue, 30 Dec 2025 13:43:09 +0100 Subject: [PATCH] finally something gets rendered --- src/EngineSharp.Core/EngineSharp.Core/OpenGLEngine.cs | 2 ++ src/EngineSharp.Core/EngineSharp.Core/Rendering/Mesh.cs | 4 +++- src/EngineSharp/assets/shaders/sphere.frag | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/EngineSharp.Core/EngineSharp.Core/OpenGLEngine.cs b/src/EngineSharp.Core/EngineSharp.Core/OpenGLEngine.cs index 2f80cd2..4acaa0b 100644 --- a/src/EngineSharp.Core/EngineSharp.Core/OpenGLEngine.cs +++ b/src/EngineSharp.Core/EngineSharp.Core/OpenGLEngine.cs @@ -114,6 +114,8 @@ internal class OpenGLEngine : Engine private void OnRender(double deltaTime) { + _gl.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); + var projectionMatrix = _camera.ProjectionMatrix; var viewMatrix = _camera.ViewMatrix; diff --git a/src/EngineSharp.Core/EngineSharp.Core/Rendering/Mesh.cs b/src/EngineSharp.Core/EngineSharp.Core/Rendering/Mesh.cs index 80950a8..d794991 100644 --- a/src/EngineSharp.Core/EngineSharp.Core/Rendering/Mesh.cs +++ b/src/EngineSharp.Core/EngineSharp.Core/Rendering/Mesh.cs @@ -6,6 +6,8 @@ namespace EngineSharp.Core.Rendering; public class Mesh { public required Material Material { get; set; } + + // Could make these an ImmutableList. Therefore I know the data won't get changed and I only need to regenerate the renderable mesh (in the MeshRenderer) if the mesh has actually changed public Vector3D[] Vertices { get; set; } = []; public Vector3D[] Normals { get; set; } = []; public uint[] Indices { get; set; } = []; @@ -37,7 +39,7 @@ public class Mesh Normals[i1] += normal; Normals[i2] += normal; } - + for (var i = 0; i < Normals.Length; i++) { Normals[i] = Vector3D.Normalize(Normals[i]); // smoothing for shared vertices diff --git a/src/EngineSharp/assets/shaders/sphere.frag b/src/EngineSharp/assets/shaders/sphere.frag index d2e242d..3187a69 100644 --- a/src/EngineSharp/assets/shaders/sphere.frag +++ b/src/EngineSharp/assets/shaders/sphere.frag @@ -9,5 +9,5 @@ in vec3 Normal; void main() { vec3 col = vec3(1.0, 0.5, 0.2) * FragPos; - FragColor = vec4(1); + FragColor = vec4(col, 1.0f); } \ No newline at end of file