From f3d0fd69324223714a507c97fb640646d8183c59 Mon Sep 17 00:00:00 2001 From: Harald Christian Joachim Wolff Date: Fri, 28 Apr 2017 11:51:20 +0200 Subject: [PATCH] Erste Version mit laden einer HeightMap zu demonstrationszwecken --- NHEngine/BootStrap.cs | 17 ++++++++-- NHEngine/M3-wip.bmp | Bin 0 -> 189878 bytes NHEngine/M3-wip.png | Bin 0 -> 41487 bytes NHEngine/OpenGLWindow.cs | 69 ++++++++++++++++++++++++--------------- NHEngine/SquaredMap.cs | 69 ++++++++++++++++++++++++++++++--------- NHEngine/nhengine.csproj | 28 ++++++++++++++++ NHEngine/packages.config | 36 ++++++++++++++++++++ 7 files changed, 174 insertions(+), 45 deletions(-) create mode 100644 NHEngine/M3-wip.bmp create mode 100644 NHEngine/M3-wip.png diff --git a/NHEngine/BootStrap.cs b/NHEngine/BootStrap.cs index c86e044..bbcad3d 100644 --- a/NHEngine/BootStrap.cs +++ b/NHEngine/BootStrap.cs @@ -1,4 +1,7 @@ using System; +using System.IO; +using System.Drawing; +using System.Drawing.Imaging; using OpenTK.Graphics.OpenGL4; using OpenTK; @@ -6,6 +9,9 @@ using OpenTK; using OpenTK.Audio.OpenAL; using OpenTK.Audio; +using ImageSharp; + + using org.nhengine.graphics; namespace nhengine @@ -50,8 +56,15 @@ namespace nhengine AL.Enable(ALCapability.Invalid); } - public void bootMap(){ - map = new SquaredMap(25,25); + public void bootMap(){ + ImageSharp.Image i = ImageSharp.Image.Load( new FileStream("M3-wip.png",FileMode.Open)); + i.Flip(ImageSharp.Processing.FlipType.Vertical); + map = new SquaredMap(i); + + glWindow.addGLObject(map); + + + } diff --git a/NHEngine/M3-wip.bmp b/NHEngine/M3-wip.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c5eea46d87f7a16bbfd838b19d6fbe5f919abb1c GIT binary patch literal 189878 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 glObjects; + public OpenGLWindow() :base(800, 600, GraphicsMode.Default, @@ -39,10 +38,9 @@ namespace nhengine 3, 3, GraphicsContextFlags.ForwardCompatible) { + glObjects = new List(); VSync = VSyncMode.On; - camera = GlobalDefaults.instance().ActiveCamera; - camera.Distance = 1000; - camera.Position = new Vector3(1600, 1600, 1000); + scene = new GLCamera(); } protected override void OnLoad(EventArgs e) @@ -51,11 +49,23 @@ namespace nhengine GL.ClearColor(0.1f, 0.2f, 0.5f, 0.0f); GL.Enable(EnableCap.DepthTest); GL.Enable(EnableCap.Normalize); + GL.Enable(EnableCap.Blend); + GL.BlendFunc(BlendingFactorSrc.SrcAlpha,BlendingFactorDest.OneMinusSrcAlpha); cube = new Cube(new Vector3(0,0,512), 128.0f); c1 = new Cube(new Vector3(512,0,512), 128.0f); c2 = new Cube(new Vector3(0,512,512), 128.0f); c3 = new Cube(new Vector3(512,512,512), 128.0f); + + addGLObject( cube ); + addGLObject( c1 ); + addGLObject( c2 ); + addGLObject( c3 ); + + scene.Position = new Vector3(16000,-5000,8000); + scene.View = new Vector3(0f,1f,-0.250f); + scene.Top = new Vector3(0,0,1); + scene.setFoV(MathHelper.PiOver4); } @@ -64,29 +74,29 @@ namespace nhengine base.OnResize(e); GL.Viewport(ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, ClientRectangle.Height); - camera.setViewport(ClientRectangle.Width, ClientRectangle.Height); + scene.setViewport(ClientRectangle.Width, ClientRectangle.Height); } protected override void OnRenderFrame(FrameEventArgs e) { base.OnRenderFrame(e); - BootStrap boot = BootStrap.instance(); - GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); - cube.paint(camera); - c1.paint(camera); - c2.paint(camera); - c3.paint(camera); - - - boot.SquaredMap.paint(camera); - //triangle.paint(camera); + foreach (GLObject glo in glObjects){ + glo.paint(scene); + } SwapBuffers(); } + public void addGLObject(GLObject glObject){ + this.glObjects.Add( glObject ); + } + public void removeGLObject(GLObject glObject){ + this.glObjects.Remove( glObject ); + } + private void captureMouse(){ mouseCapturePosition = new Point(Mouse.X, Mouse.Y); mouseCaptured = true; @@ -130,11 +140,7 @@ namespace nhengine protected override void OnMouseWheel(OpenTK.Input.MouseWheelEventArgs e) { - camera.Distance += e.DeltaPrecise * 16.0f; - if (camera.Distance < 0) - camera.Distance = 0; - - applyRotation(); + walk(e.ValuePrecise); } protected override void OnKeyPress(KeyPressEventArgs e) @@ -156,6 +162,13 @@ namespace nhengine case OpenTK.Input.Key.Right: rotateLeftRight(-MathHelper.Pi / 90.0f); break; + case OpenTK.Input.Key.W: + walk(100.0f); + break; + case OpenTK.Input.Key.S: + walk(-100.0f); + break; + } } @@ -169,11 +182,13 @@ namespace nhengine arcLeftRight += arc; applyRotation(); } + + public void walk(float distance){ + scene.Position += scene.View * distance; + } private void applyRotation(){ Console.WriteLine("Rotation: {0} {1}", arcLeftRight, arcUpDown); - camera.MRotation = Matrix4.CreateRotationZ(arcLeftRight) * Matrix4.CreateRotationX(arcUpDown); - } protected override void OnKeyUp(OpenTK.Input.KeyboardKeyEventArgs e) diff --git a/NHEngine/SquaredMap.cs b/NHEngine/SquaredMap.cs index 2612aba..3177dc6 100644 --- a/NHEngine/SquaredMap.cs +++ b/NHEngine/SquaredMap.cs @@ -1,6 +1,9 @@ using System; using System.IO; +using ImageSharp; +using ImageSharp.PixelFormats; + using OpenTK.Graphics.OpenGL4; using OpenTK; @@ -30,6 +33,24 @@ namespace nhengine computeGL(); updateGL(); } + + public SquaredMap(Image heightMap) + :base(12 * heightMap.Width * heightMap.Height) + { + this.width = heightMap.Width; + this.height = heightMap.Height; + + this.heightMap = new float[ (width + 1) * (height + 1) ]; + + normalsEnabled = true; + + loadHeightMap(heightMap); + + computeGL(); + updateGL(); + + } + public void generateHeightMap(){ Random rand = new Random(); @@ -43,6 +64,21 @@ namespace nhengine } } } + + public void loadHeightMap(Image _heightMap){ + + Rgba32[] pixels = _heightMap.Pixels; + + for (int y = 0; y <= height; y++) + { + for (int x = 0; x <= width; x++) + { + Rgba32 pixel = pixels[ x + (y * _heightMap.Width)]; + float h = (pixel.R + pixel.G + pixel.B); + heightMap[x + (y * width)] = (float)(h); + } + } + } public void computeGL(){ float left, @@ -52,6 +88,7 @@ namespace nhengine vcenter, hcenter; + Console.WriteLine("Creating geometry"); for (int x = 0; x < width; x++) { @@ -101,25 +138,25 @@ namespace nhengine new Vector3(left, top, h[2]), new Vector3(hcenter, vcenter, ah) ); - - setColor(new Vector4(1.0f, 1.0f, 0.5f, 1.0f)); - - for (int n = 0; n < vertices.Length / 3;n++){ - float _h = vertices[(3 * n) + 2] / 256.0f; - setColor( - n, - new Vector4( - 0.3f + (0.7f * _h), - 0.2f + (0.8f * _h), - 0.4f + (0.6f * _h), - 1.0f - ) - ); - } - } } + Console.WriteLine("Coloring..."); + + for (int n = 0; n < vertices.Length / 3;n++){ + float _h = vertices[(3 * n) + 2] / 512.0f; + setColor( + n, + new Vector4( + 0.3f + (0.7f * _h), + 0.2f + (0.8f * _h), + 0.4f + (0.6f * _h), + 1.0f + ) + ); + } + + } diff --git a/NHEngine/nhengine.csproj b/NHEngine/nhengine.csproj index c81e846..66197c7 100644 --- a/NHEngine/nhengine.csproj +++ b/NHEngine/nhengine.csproj @@ -34,6 +34,28 @@ ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll + + ..\packages\System.Buffers.4.3.0\lib\netstandard1.1\System.Buffers.dll + + + + + + ..\packages\System.Numerics.Vectors.4.3.0\lib\portable-net45+win8+wp8+wpa81\System.Numerics.Vectors.dll + + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.3.0\lib\netstandard1.0\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + + + + + + ..\packages\ImageSharp.1.0.0-alpha7-00006\lib\netstandard1.1\ImageSharp.dll + @@ -48,6 +70,12 @@ + + PreserveNewest + + + PreserveNewest + diff --git a/NHEngine/packages.config b/NHEngine/packages.config index b371766..2460151 100644 --- a/NHEngine/packages.config +++ b/NHEngine/packages.config @@ -1,4 +1,40 @@  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file