From 0fe2fb1aeb508827abcc45550dbf4e4a506c604a Mon Sep 17 00:00:00 2001 From: Harald Christian Joachim Wolff Date: Thu, 4 May 2017 23:57:00 +0200 Subject: [PATCH] WIP --- ImageSharp | 1 + NHEngine/BootStrap.cs | 17 +- NHEngine/OpenGLWindow.cs | 56 +++- NHEngine/models/ballistisch.mtl | 10 + NHEngine/models/ballistisch.obj | 240 ++++++++++++++++++ NHEngine/nhengine.csproj | 14 +- NHEngine/packages.config | 1 - nhengine.sln | 11 + org.niclasundharald.engine/Actor.cs | 72 ++++++ org.niclasundharald.engine/ActorAction.cs | 14 + org.niclasundharald.engine/BallisticActor.cs | 43 ++++ org.niclasundharald.engine/FileHelper.cs | 4 +- org.niclasundharald.engine/Physics.cs | 13 + org.niclasundharald.engine/WorldObject.cs | 30 ++- .../contrib/ImageSharp.dll | Bin 0 -> 380416 bytes .../exceptions/OutOfWorldException.cs | 10 + .../graphics/GLCamera.cs | 2 +- .../graphics/GLScene.cs | 9 +- .../graphics/LoadedModel.cs | 142 +++++++++++ .../graphics/Model3D.cs | 60 ++--- .../graphics/ModelManager.cs | 11 +- .../graphics}/SquaredMap.cs | 49 +++- .../graphics/Texture.cs | 30 +++ .../graphics/primitives/Cube.cs | 7 +- .../org.niclasundharald.engine.csproj | 21 ++ org.niclasundharald.engine/packages.config | 3 + 26 files changed, 798 insertions(+), 72 deletions(-) create mode 160000 ImageSharp create mode 100644 NHEngine/models/ballistisch.mtl create mode 100644 NHEngine/models/ballistisch.obj create mode 100644 org.niclasundharald.engine/Actor.cs create mode 100644 org.niclasundharald.engine/ActorAction.cs create mode 100644 org.niclasundharald.engine/BallisticActor.cs create mode 100644 org.niclasundharald.engine/Physics.cs create mode 100644 org.niclasundharald.engine/contrib/ImageSharp.dll create mode 100644 org.niclasundharald.engine/exceptions/OutOfWorldException.cs create mode 100644 org.niclasundharald.engine/graphics/LoadedModel.cs rename {NHEngine => org.niclasundharald.engine/graphics}/SquaredMap.cs (83%) create mode 100644 org.niclasundharald.engine/graphics/Texture.cs diff --git a/ImageSharp b/ImageSharp new file mode 160000 index 0000000..8524b7e --- /dev/null +++ b/ImageSharp @@ -0,0 +1 @@ +Subproject commit 8524b7e0a75bdb7398e8b60885c442a46c57ab91 diff --git a/NHEngine/BootStrap.cs b/NHEngine/BootStrap.cs index 6b384f0..6dec481 100644 --- a/NHEngine/BootStrap.cs +++ b/NHEngine/BootStrap.cs @@ -10,8 +10,10 @@ using OpenTK.Audio.OpenAL; using OpenTK.Audio; using ImageSharp; +using ImageSharp.Processing; using org.niclasundharald.engine.graphics; +using org.niclasundharald.engine; namespace nhengine { @@ -58,16 +60,27 @@ namespace nhengine public void bootMap(){ ImageSharp.Image i = ImageSharp.Image.Load( new FileStream("M3-wip.png",FileMode.Open)); i.Flip(ImageSharp.Processing.FlipType.Vertical); + i.Resize(500,500); + map = new SquaredMap(i); glWindow.Scene.RootObject.addChild( map ); - + + ModelManager.instance.addSearchPath("./models"); + + DumpObject dobj = new DumpObject(); + dobj.Model3D = ModelManager.instance.loadModel("alfa147",0.0254f); + Vector3 v3 = map.ground(new Vector2(40,40)); + v3.Z *= 2; + dobj.Position = v3; + + glWindow.Scene.RootObject.addChild( dobj ); } public void run(){ glWindow.MakeCurrent(); - glWindow.Run(30,30); + glWindow.Run(25,25); } diff --git a/NHEngine/OpenGLWindow.cs b/NHEngine/OpenGLWindow.cs index 7cfabbb..e42f8aa 100644 --- a/NHEngine/OpenGLWindow.cs +++ b/NHEngine/OpenGLWindow.cs @@ -54,12 +54,12 @@ namespace nhengine 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); + cube = new Cube(new Vector3(0,0,150), 16.0f); + c1 = new Cube(new Vector3(16,0,150), 8.0f); + c2 = new Cube(new Vector3(0,150,150), 8.0f); + c3 = new Cube(new Vector3(175,175,150), 8.0f); - lookAt = new Vector3(0,0,0); + lookAt = new Vector3(0,0,128.0f); lookDistance = 2048; arcUpDown = MathHelper.PiOver6; arcLeftRight = MathHelper.PiOver4; @@ -94,6 +94,22 @@ namespace nhengine scene.draw(); SwapBuffers(); + + Title = string.Format("{0:F}/s {1:F}/s [{2:F}s]", RenderFrequency,UpdateFrequency,UpdatePeriod); + } + + protected override void OnUpdateFrame(FrameEventArgs e) + { + base.OnUpdateFrame(e); + Matrix4 m4 = Matrix4.CreateRotationZ(MathHelper.Pi / 90.0f); + + cube.Rotation = m4 * cube.Rotation; + c1.Position = (m4.Inverted() * new Vector4(c1.Position)).Xyz; + c2.Rotation = (m4 * c2.Rotation); + c3.Position = (m4 * new Vector4(c3.Position)).Xyz; + + + Actor.updateAll( (float)UpdatePeriod ); } private void captureMouse(){ @@ -164,15 +180,36 @@ namespace nhengine rotateLeftRight(-MathHelper.Pi / 90.0f); break; case OpenTK.Input.Key.W: - walk(250.0f); + walk(e.Shift ? 50.0f : 5.0f); break; case OpenTK.Input.Key.S: - walk(-250.0f); + walk(e.Shift ? -50.0f : -5.0f); + break; + case OpenTK.Input.Key.A: + strafe(e.Shift ? -50.0f : -5.0f); + break; + case OpenTK.Input.Key.D: + strafe(e.Shift ? 50.0f : 5.0f); + break; + + case OpenTK.Input.Key.Space: + fireBallistic(); break; } } + private void fireBallistic(){ + Console.WriteLine("Fire Ballistic..."); + BallisticActor ba = new BallisticActor(0); + + ba.Position = BootStrap.instance().SquaredMap.ground(new Vector2(10,10)); + ba.Velocity = new Vector3(1,1,1);// + (Matrix4.CreateRotationZ(arcLeftRight) * Vector4.UnitY).Xyz; + ba.Velocity.Normalize(); + ba.Velocity *= 50; + } + + public void rotateUpDown(float arc) { arcUpDown += arc; @@ -191,6 +228,11 @@ namespace nhengine setupCamera(); } + public void strafe(float distance){ + lookAt += Vector3.Cross(new Vector3(sceneCamera.View.Xy),Vector3.UnitZ).Normalized() * distance; + setupCamera(); + } + protected override void OnKeyUp(OpenTK.Input.KeyboardKeyEventArgs e) { } diff --git a/NHEngine/models/ballistisch.mtl b/NHEngine/models/ballistisch.mtl new file mode 100644 index 0000000..b88b8cb --- /dev/null +++ b/NHEngine/models/ballistisch.mtl @@ -0,0 +1,10 @@ +# Blender MTL File: 'ballistisch.blend' +# Material Count: 1 + +newmtl None +Ns 0 +Ka 0.000000 0.000000 0.000000 +Kd 0.8 0.8 0.8 +Ks 0.8 0.8 0.8 +d 1 +illum 2 diff --git a/NHEngine/models/ballistisch.obj b/NHEngine/models/ballistisch.obj new file mode 100644 index 0000000..6d35ef3 --- /dev/null +++ b/NHEngine/models/ballistisch.obj @@ -0,0 +1,240 @@ +# Blender v2.78 (sub 0) OBJ File: 'ballistisch.blend' +# www.blender.org +mtllib ballistisch.mtl +o Cylinder +v 0.000000 -1.000000 -0.250000 +v 0.000000 1.000000 -0.250000 +v 0.048773 -1.000000 -0.245196 +v 0.048773 1.000000 -0.245196 +v 0.095671 -1.000000 -0.230970 +v 0.095671 1.000000 -0.230970 +v 0.138893 -1.000000 -0.207867 +v 0.138893 1.000000 -0.207867 +v 0.176777 -1.000000 -0.176777 +v 0.176777 1.000000 -0.176777 +v 0.207867 -1.000000 -0.138893 +v 0.207867 1.000000 -0.138893 +v 0.230970 -1.000000 -0.095671 +v 0.230970 1.000000 -0.095671 +v 0.245196 -1.000000 -0.048773 +v 0.245196 1.000000 -0.048773 +v 0.250000 -1.000000 -0.000000 +v 0.250000 1.000000 -0.000000 +v 0.245196 -1.000000 0.048773 +v 0.245196 1.000000 0.048773 +v 0.230970 -1.000000 0.095671 +v 0.230970 1.000000 0.095671 +v 0.207867 -1.000000 0.138893 +v 0.207867 1.000000 0.138893 +v 0.176777 -1.000000 0.176777 +v 0.176777 1.000000 0.176777 +v 0.138893 -1.000000 0.207867 +v 0.138893 1.000000 0.207867 +v 0.095671 -1.000000 0.230970 +v 0.095671 1.000000 0.230970 +v 0.048773 -1.000000 0.245196 +v 0.048773 1.000000 0.245196 +v -0.000000 -1.000000 0.250000 +v -0.000000 1.000000 0.250000 +v -0.048773 -1.000000 0.245196 +v -0.048773 1.000000 0.245196 +v -0.095671 -1.000000 0.230970 +v -0.095671 1.000000 0.230970 +v -0.138893 -1.000000 0.207867 +v -0.138893 1.000000 0.207867 +v -0.176777 -1.000000 0.176777 +v -0.176777 1.000000 0.176777 +v -0.207868 -1.000000 0.138892 +v -0.207868 1.000000 0.138892 +v -0.230970 -1.000000 0.095671 +v -0.230970 1.000000 0.095671 +v -0.245196 -1.000000 0.048772 +v -0.245196 1.000000 0.048772 +v -0.250000 -1.000000 -0.000000 +v -0.250000 1.000000 -0.000000 +v -0.245196 -1.000000 -0.048773 +v -0.245196 1.000000 -0.048773 +v -0.230970 -1.000000 -0.095671 +v -0.230970 1.000000 -0.095671 +v -0.207867 -1.000000 -0.138893 +v -0.207867 1.000000 -0.138893 +v -0.176776 -1.000000 -0.176777 +v -0.176776 1.000000 -0.176777 +v -0.138892 -1.000000 -0.207868 +v -0.138892 1.000000 -0.207868 +v -0.095671 -1.000000 -0.230970 +v -0.095671 1.000000 -0.230970 +v -0.048772 -1.000000 -0.245196 +v -0.048772 1.000000 -0.245196 +vn 0.0980 0.0000 -0.9952 +vn 0.2903 0.0000 -0.9569 +vn 0.4714 0.0000 -0.8819 +vn 0.6344 0.0000 -0.7730 +vn 0.7730 0.0000 -0.6344 +vn 0.8819 0.0000 -0.4714 +vn 0.9569 0.0000 -0.2903 +vn 0.9952 0.0000 -0.0980 +vn 0.9952 0.0000 0.0980 +vn 0.9569 0.0000 0.2903 +vn 0.8819 0.0000 0.4714 +vn 0.7730 0.0000 0.6344 +vn 0.6344 0.0000 0.7730 +vn 0.4714 0.0000 0.8819 +vn 0.2903 0.0000 0.9569 +vn 0.0980 0.0000 0.9952 +vn -0.0980 0.0000 0.9952 +vn -0.2903 0.0000 0.9569 +vn -0.4714 0.0000 0.8819 +vn -0.6344 0.0000 0.7730 +vn -0.7730 0.0000 0.6344 +vn -0.8819 0.0000 0.4714 +vn -0.9569 0.0000 0.2903 +vn -0.9952 0.0000 0.0980 +vn -0.9952 0.0000 -0.0980 +vn -0.9569 0.0000 -0.2903 +vn -0.8819 0.0000 -0.4714 +vn -0.7730 0.0000 -0.6344 +vn -0.6344 0.0000 -0.7730 +vn -0.4714 0.0000 -0.8819 +vn 0.0000 1.0000 0.0000 +vn -0.2903 0.0000 -0.9569 +vn -0.0980 0.0000 -0.9952 +vn 0.0000 -1.0000 -0.0000 +usemtl None +s off +f 1//1 2//1 4//1 3//1 +f 3//2 4//2 6//2 5//2 +f 5//3 6//3 8//3 7//3 +f 7//4 8//4 10//4 9//4 +f 9//5 10//5 12//5 11//5 +f 11//6 12//6 14//6 13//6 +f 13//7 14//7 16//7 15//7 +f 15//8 16//8 18//8 17//8 +f 17//9 18//9 20//9 19//9 +f 19//10 20//10 22//10 21//10 +f 21//11 22//11 24//11 23//11 +f 23//12 24//12 26//12 25//12 +f 25//13 26//13 28//13 27//13 +f 27//14 28//14 30//14 29//14 +f 29//15 30//15 32//15 31//15 +f 31//16 32//16 34//16 33//16 +f 33//17 34//17 36//17 35//17 +f 35//18 36//18 38//18 37//18 +f 37//19 38//19 40//19 39//19 +f 39//20 40//20 42//20 41//20 +f 41//21 42//21 44//21 43//21 +f 43//22 44//22 46//22 45//22 +f 45//23 46//23 48//23 47//23 +f 47//24 48//24 50//24 49//24 +f 49//25 50//25 52//25 51//25 +f 51//26 52//26 54//26 53//26 +f 53//27 54//27 56//27 55//27 +f 55//28 56//28 58//28 57//28 +f 57//29 58//29 60//29 59//29 +f 59//30 60//30 62//30 61//30 +f 4//31 2//31 64//31 62//31 60//31 58//31 56//31 54//31 52//31 50//31 48//31 46//31 44//31 42//31 40//31 38//31 36//31 34//31 32//31 30//31 28//31 26//31 24//31 22//31 20//31 18//31 16//31 14//31 12//31 10//31 8//31 6//31 +f 61//32 62//32 64//32 63//32 +f 63//33 64//33 2//33 1//33 +f 1//34 3//34 5//34 7//34 9//34 11//34 13//34 15//34 17//34 19//34 21//34 23//34 25//34 27//34 29//34 31//34 33//34 35//34 37//34 39//34 41//34 43//34 45//34 47//34 49//34 51//34 53//34 55//34 57//34 59//34 61//34 63//34 +o Cone +v -0.000000 0.939394 -0.250000 +v 0.048773 0.939394 -0.245196 +v 0.095671 0.939394 -0.230970 +v 0.138893 0.939394 -0.207867 +v 0.176777 0.939394 -0.176777 +v 0.207867 0.939394 -0.138892 +v 0.230970 0.939394 -0.095671 +v 0.245196 0.939394 -0.048773 +v 0.250000 0.939394 0.000000 +v -0.000000 2.939394 0.000000 +v 0.245196 0.939394 0.048773 +v 0.230970 0.939394 0.095671 +v 0.207867 0.939394 0.138893 +v 0.176777 0.939394 0.176777 +v 0.138893 0.939394 0.207867 +v 0.095671 0.939394 0.230970 +v 0.048772 0.939394 0.245196 +v -0.000000 0.939394 0.250000 +v -0.048773 0.939394 0.245196 +v -0.095671 0.939394 0.230970 +v -0.138893 0.939394 0.207867 +v -0.176777 0.939394 0.176777 +v -0.207868 0.939394 0.138892 +v -0.230970 0.939394 0.095671 +v -0.245196 0.939394 0.048772 +v -0.250000 0.939394 -0.000000 +v -0.245196 0.939394 -0.048773 +v -0.230970 0.939394 -0.095671 +v -0.207867 0.939394 -0.138893 +v -0.176776 0.939394 -0.176777 +v -0.138892 0.939394 -0.207868 +v -0.095671 0.939394 -0.230970 +v -0.048772 0.939394 -0.245196 +vn 0.0973 0.1234 -0.9876 +vn 0.2881 0.1234 -0.9496 +vn 0.4678 0.1234 -0.8752 +vn 0.6295 0.1234 -0.7671 +vn 0.7671 0.1234 -0.6295 +vn 0.8752 0.1234 -0.4678 +vn 0.9496 0.1234 -0.2881 +vn 0.9876 0.1234 -0.0973 +vn 0.9876 0.1234 0.0973 +vn 0.9496 0.1234 0.2881 +vn 0.8752 0.1234 0.4678 +vn 0.7671 0.1234 0.6295 +vn 0.6295 0.1234 0.7671 +vn 0.4678 0.1234 0.8752 +vn 0.2881 0.1234 0.9496 +vn 0.0973 0.1234 0.9876 +vn -0.0973 0.1234 0.9876 +vn -0.2881 0.1234 0.9496 +vn -0.4678 0.1234 0.8752 +vn -0.6295 0.1234 0.7671 +vn -0.7671 0.1234 0.6295 +vn -0.8752 0.1234 0.4678 +vn -0.9496 0.1234 0.2881 +vn -0.9876 0.1234 0.0973 +vn -0.9876 0.1234 -0.0973 +vn -0.9496 0.1234 -0.2881 +vn -0.8752 0.1234 -0.4678 +vn -0.7671 0.1234 -0.6295 +vn -0.6295 0.1234 -0.7671 +vn -0.4678 0.1234 -0.8752 +vn -0.2881 0.1234 -0.9496 +vn -0.0973 0.1234 -0.9876 +vn 0.0000 -1.0000 0.0000 +usemtl None +s off +f 65//35 74//35 66//35 +f 66//36 74//36 67//36 +f 67//37 74//37 68//37 +f 68//38 74//38 69//38 +f 69//39 74//39 70//39 +f 70//40 74//40 71//40 +f 71//41 74//41 72//41 +f 72//42 74//42 73//42 +f 73//43 74//43 75//43 +f 75//44 74//44 76//44 +f 76//45 74//45 77//45 +f 77//46 74//46 78//46 +f 78//47 74//47 79//47 +f 79//48 74//48 80//48 +f 80//49 74//49 81//49 +f 81//50 74//50 82//50 +f 82//51 74//51 83//51 +f 83//52 74//52 84//52 +f 84//53 74//53 85//53 +f 85//54 74//54 86//54 +f 86//55 74//55 87//55 +f 87//56 74//56 88//56 +f 88//57 74//57 89//57 +f 89//58 74//58 90//58 +f 90//59 74//59 91//59 +f 91//60 74//60 92//60 +f 92//61 74//61 93//61 +f 93//62 74//62 94//62 +f 94//63 74//63 95//63 +f 95//64 74//64 96//64 +f 96//65 74//65 97//65 +f 97//66 74//66 65//66 +f 65//67 66//67 67//67 68//67 69//67 70//67 71//67 72//67 73//67 75//67 76//67 77//67 78//67 79//67 80//67 81//67 82//67 83//67 84//67 85//67 86//67 87//67 88//67 89//67 90//67 91//67 92//67 93//67 94//67 95//67 96//67 97//67 diff --git a/NHEngine/nhengine.csproj b/NHEngine/nhengine.csproj index 7d6c13a..d25d4b8 100644 --- a/NHEngine/nhengine.csproj +++ b/NHEngine/nhengine.csproj @@ -19,6 +19,7 @@ 4 false true + anycpu true @@ -33,12 +34,10 @@ ..\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 @@ -54,15 +53,15 @@ - ..\packages\ImageSharp.1.0.0-alpha7-00006\lib\netstandard1.1\ImageSharp.dll + ..\org.niclasundharald.engine\contrib\ImageSharp.dll + - @@ -76,8 +75,13 @@ PreserveNewest - + + PreserveNewest + + + PreserveNewest + diff --git a/NHEngine/packages.config b/NHEngine/packages.config index 0bf7a50..353e05a 100644 --- a/NHEngine/packages.config +++ b/NHEngine/packages.config @@ -1,6 +1,5 @@  - diff --git a/nhengine.sln b/nhengine.sln index 3859c4b..226eb9d 100644 --- a/nhengine.sln +++ b/nhengine.sln @@ -5,6 +5,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nhengine", "NHEngine\nhengi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "org.niclasundharald.engine", "org.niclasundharald.engine\org.niclasundharald.engine.csproj", "{3E812F66-D5F3-4599-8360-97F355B6CC1B}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "contrib", "contrib", "{9BA2E63F-E39C-465C-AC48-45B30B532A0C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageSharp", "ImageSharp\ImageSharp.csproj", "{4D1A7C04-2C4E-4C74-AD81-FE0DCA9C6DF0}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -19,5 +23,12 @@ Global {3E812F66-D5F3-4599-8360-97F355B6CC1B}.Debug|Any CPU.Build.0 = Debug|Any CPU {3E812F66-D5F3-4599-8360-97F355B6CC1B}.Release|Any CPU.ActiveCfg = Release|Any CPU {3E812F66-D5F3-4599-8360-97F355B6CC1B}.Release|Any CPU.Build.0 = Release|Any CPU + {4D1A7C04-2C4E-4C74-AD81-FE0DCA9C6DF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4D1A7C04-2C4E-4C74-AD81-FE0DCA9C6DF0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4D1A7C04-2C4E-4C74-AD81-FE0DCA9C6DF0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4D1A7C04-2C4E-4C74-AD81-FE0DCA9C6DF0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {4D1A7C04-2C4E-4C74-AD81-FE0DCA9C6DF0} = {9BA2E63F-E39C-465C-AC48-45B30B532A0C} EndGlobalSection EndGlobal diff --git a/org.niclasundharald.engine/Actor.cs b/org.niclasundharald.engine/Actor.cs new file mode 100644 index 0000000..e73f444 --- /dev/null +++ b/org.niclasundharald.engine/Actor.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; + +using OpenTK; +using org.niclasundharald.engine.graphics; + + +namespace org.niclasundharald.engine +{ + public class Actor : WorldObject + { + public static List activeActors = new List(); + public static List finishedActors = new List(); + + public static void updateAll(float timespan){ + foreach (Actor a in activeActors){ + a.update(timespan); + } + + foreach (Actor a in finishedActors){ + activeActors.Remove(a); + } + finishedActors.Clear(); + + } + + private int id; + + public Actor(int id) + { + Console.WriteLine("New Actor: {0} / {1}",id,this); + this.id = id; + activeActors.Add(this); + } + + public void destroy(){ + finishedActors.Add(this); + } + + public Vector3 Heading { get; set; } + public Vector3 Velocity { get; set; } + public float Weight { get; set; } + + public virtual void update(float timespan){ + } + + public void setHeading(Vector3 heading,Vector3 top){ + Vector3 x,y,z; + + z = heading.Normalized(); + x = Vector3.Cross( top.Normalized(), z ).Normalized(); + y = Vector3.Cross( x, z ); + + Matrix4 mRotation = new Matrix4( + new Vector4(x,0), + new Vector4(y,0), + new Vector4(z,0), + new Vector4(0,0,0,1) + ); + + Rotation = Matrix4.CreateRotationX(MathHelper.PiOver2) * mRotation; + } + + public Model3D Model3D { get; set; } + + public override Model3D getModel3D() + { + return Model3D; + } + + } +} diff --git a/org.niclasundharald.engine/ActorAction.cs b/org.niclasundharald.engine/ActorAction.cs new file mode 100644 index 0000000..abc36b7 --- /dev/null +++ b/org.niclasundharald.engine/ActorAction.cs @@ -0,0 +1,14 @@ +using System; +namespace org.niclasundharald.engine +{ + /** + * @class ActorAction + * @brief Base Class to manage orders, jobs, other things to do and/or changes over time for Actors + */ + public class ActorAction + { + public ActorAction(Actor actor) + { + } + } +} diff --git a/org.niclasundharald.engine/BallisticActor.cs b/org.niclasundharald.engine/BallisticActor.cs new file mode 100644 index 0000000..90fd0de --- /dev/null +++ b/org.niclasundharald.engine/BallisticActor.cs @@ -0,0 +1,43 @@ +using System; +using org.niclasundharald.engine.graphics.primitives; +using org.niclasundharald.engine.graphics; + +using OpenTK; + +namespace org.niclasundharald.engine +{ + public class BallisticActor : Actor + { + public BallisticActor(int id) + :base(id) + { + this.Model3D = ModelManager.instance.findModel("ballistisch"); + } + + public override void update(float timespan) + { + base.update(timespan); + + Velocity += (Physics.Gravitation * timespan); + Position += Velocity * timespan; + Scale = Matrix4.CreateScale(3.0f); + + setHeading( Velocity, Physics.Gravitation); + + Console.WriteLine("BallisticActor update: {0} / {1}",Position,Velocity); + + try{ + Vector3 ground = SquaredMap.activeMap.ground(Position.Xy); + + if (Position.Z <= ground.Z){ + destroy(); + } + } catch (OutOfWorldException e){ + destroy(); + } + + + } + + } +} diff --git a/org.niclasundharald.engine/FileHelper.cs b/org.niclasundharald.engine/FileHelper.cs index 84b6821..c7d31db 100644 --- a/org.niclasundharald.engine/FileHelper.cs +++ b/org.niclasundharald.engine/FileHelper.cs @@ -8,8 +8,10 @@ namespace org.niclasundharald.engine public static string findFile(string filename,string[] searchPaths){ foreach (string searchPath in searchPaths){ - string fullname = String.Format("{0}{1}{2}",searchPath,Path.PathSeparator,filename); + string fullname = String.Format("{0}{1}{2}",searchPath,Path.DirectorySeparatorChar,filename); + Console.WriteLine("lookupFile: {0}",fullname); if (File.Exists(fullname)){ + Console.WriteLine("foundFile: {0}",fullname); return fullname; } } diff --git a/org.niclasundharald.engine/Physics.cs b/org.niclasundharald.engine/Physics.cs new file mode 100644 index 0000000..2a438e7 --- /dev/null +++ b/org.niclasundharald.engine/Physics.cs @@ -0,0 +1,13 @@ +using System; + +using OpenTK; + +namespace org.niclasundharald.engine +{ + public abstract class Physics + { + public static Vector3 Gravitation { get; set; } = new Vector3(0,0,-9.81f); + + + } +} diff --git a/org.niclasundharald.engine/WorldObject.cs b/org.niclasundharald.engine/WorldObject.cs index 3681906..d5e4c7d 100644 --- a/org.niclasundharald.engine/WorldObject.cs +++ b/org.niclasundharald.engine/WorldObject.cs @@ -9,13 +9,10 @@ namespace org.niclasundharald.engine { public abstract class WorldObject { - private Matrix4 transformation; - private List children; public WorldObject() { - transformation = Matrix4.Identity; children = new List(); } @@ -23,15 +20,13 @@ namespace org.niclasundharald.engine return null; } + public Vector3 Position{ get; set; } = new Vector3(); + public Matrix4 Rotation { get; set; } = Matrix4.Identity; + public Matrix4 Scale { get; set; } = Matrix4.Identity; - public Vector3 Position{ - get { return this.transformation.ExtractTranslation(); } - set { this.transformation += Matrix4.CreateTranslation(value - this.transformation.ExtractTranslation()); } - } public Matrix4 Transformation { - get { return this.transformation; } - set { this.transformation = value; } + get { return (Scale * Rotation) * Matrix4.CreateTranslation( Position ) ; } } public void addChild(WorldObject wo){ @@ -55,4 +50,21 @@ namespace org.niclasundharald.engine public class ObjectGroup : WorldObject { } + + public class DumpObject : WorldObject { + + Model3D model3d; + + public Model3D Model3D { + get { return this.model3d; } + set { this.model3d = value; } + } + + public override Model3D getModel3D() + { + return model3d; + } + + } + } diff --git a/org.niclasundharald.engine/contrib/ImageSharp.dll b/org.niclasundharald.engine/contrib/ImageSharp.dll new file mode 100644 index 0000000000000000000000000000000000000000..95397d5e184b22aee731cf5a22a017f509857329 GIT binary patch literal 380416 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%0DW#9`C;G?pp}eJN4N_^YqB4C2>-FY|s! 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 NH@*J(`-kJee*;-6?41Ar literal 0 HcmV?d00001 diff --git a/org.niclasundharald.engine/exceptions/OutOfWorldException.cs b/org.niclasundharald.engine/exceptions/OutOfWorldException.cs new file mode 100644 index 0000000..1388111 --- /dev/null +++ b/org.niclasundharald.engine/exceptions/OutOfWorldException.cs @@ -0,0 +1,10 @@ +using System; +namespace org.niclasundharald.engine +{ + public class OutOfWorldException : Exception + { + public OutOfWorldException() + { + } + } +} diff --git a/org.niclasundharald.engine/graphics/GLCamera.cs b/org.niclasundharald.engine/graphics/GLCamera.cs index a1e3beb..bb3ff44 100644 --- a/org.niclasundharald.engine/graphics/GLCamera.cs +++ b/org.niclasundharald.engine/graphics/GLCamera.cs @@ -45,7 +45,7 @@ namespace org.niclasundharald.engine.graphics _mProjection = Matrix4.CreatePerspectiveFieldOfView( fov, width / height, - 50.0f, + 1.0f, 100000.0f ); } diff --git a/org.niclasundharald.engine/graphics/GLScene.cs b/org.niclasundharald.engine/graphics/GLScene.cs index 2ca17c6..2195929 100644 --- a/org.niclasundharald.engine/graphics/GLScene.cs +++ b/org.niclasundharald.engine/graphics/GLScene.cs @@ -39,10 +39,17 @@ namespace org.niclasundharald.engine.graphics if (root != null){ draw( objectMatrix, root ); } + + foreach (WorldObject child in Actor.activeActors){ + draw( objectMatrix, child ); + } + } public void draw(Matrix4 baseMatrix,WorldObject wo){ - Matrix4 objectMatrix = baseMatrix * wo.Transformation; + Matrix4 objectMatrix = wo.Transformation * baseMatrix; + + //Console.WriteLine("draw(,{0}",wo); //Console.WriteLine("draw(): o={0}\noM=\n{1}",wo,objectMatrix); shader.setup(objectMatrix, sceneOrientation); diff --git a/org.niclasundharald.engine/graphics/LoadedModel.cs b/org.niclasundharald.engine/graphics/LoadedModel.cs new file mode 100644 index 0000000..98190e8 --- /dev/null +++ b/org.niclasundharald.engine/graphics/LoadedModel.cs @@ -0,0 +1,142 @@ +using System; +using System.IO; +using System.Collections.Generic; +using System.Globalization; + +using OpenTK; + +namespace org.niclasundharald.engine.graphics +{ + public class LoadedModel : Model3D + { + string sourceName; + + public LoadedModel(string filename) + { + sourceName = filename; + load(new StreamReader(filename)); + } + public LoadedModel(string filename,float scale) + { + sourceName = filename; + load(new StreamReader(filename),scale); + } + + private void load(TextReader reader){ + load(reader,1); + } + private void load(TextReader reader,float scale){ + List vertexes,normals; + List colors; + List triangles; + string line; + + float[] min = new float[3]; + float[] max = new float[3]; + + vertexes = new List(); + normals = new List(); + colors = new List(); + triangles = new List(); + + vertexes.Add(new Vector3()); + normals.Add(new Vector3()); + + while ( (line = reader.ReadLine()) != null){ + string[] fields = line.Split(new string[0],StringSplitOptions.RemoveEmptyEntries); + + if (fields.Length > 0) + switch (fields[0]){ + case "v": + float x,y,z; + x = (float)Double.Parse(fields[1],CultureInfo.InvariantCulture); + y = (float)Double.Parse(fields[2],CultureInfo.InvariantCulture); + z = (float)Double.Parse(fields[3],CultureInfo.InvariantCulture); + + x *= scale; + y *= scale; + z *= scale; + + vertexes.Add( new Vector3(x,y,z) ); + min[0] = min[0] > x ? x : min[0]; + min[1] = min[1] > y ? y : min[1]; + min[2] = min[2] > z ? z : min[2]; + max[0] = max[0] < x ? x : max[0]; + max[1] = max[1] < y ? y : max[1]; + max[2] = max[2] < z ? z : max[2]; + break; + case "vn": + normals.Add( -(new Vector3( + float.Parse(fields[1],CultureInfo.InvariantCulture), + float.Parse(fields[2],CultureInfo.InvariantCulture), + float.Parse(fields[3],CultureInfo.InvariantCulture) + ) + )); + break; + case "f": + + surfaceindeces si0,si1,si2; + + si0 = new surfaceindeces(fields[1]); + si1 = new surfaceindeces(fields[2]); + si2 = new surfaceindeces(fields[3]); + + triangles.Add(new triangle( + vertexes[si0.vertex], + vertexes[si1.vertex], + vertexes[si2.vertex], + normals[si0.normal], + normals[si1.normal], + normals[si2.normal])); + + break; + } + } + + Console.WriteLine("Loaded {0}: {1} vertexes {2} normals",sourceName,vertexes.Count,normals.Count); + Console.WriteLine("Dimensions: {0}/{1}/{2} - {3}/{4}/{5}",min[0],min[1],min[2],max[0],max[1],max[2]); + vertexes.Clear(); + normals.Clear(); + + foreach (triangle t in triangles){ + vertexes.Add( t.a ); + vertexes.Add( t.b ); + vertexes.Add( t.c ); + normals.Add( t.na ); + normals.Add( t.nb ); + normals.Add( t.nc ); + } + + // bind(vertexes.ToArray(),null,normals.ToArray()); + bind(vertexes.ToArray(),null,normals.ToArray()); + + } + + struct triangle{ + public Vector3 a,b,c; + public Vector3 na,nb,nc; + + public triangle(Vector3 a,Vector3 b,Vector3 c,Vector3 na,Vector3 nb,Vector3 nc){ + this.a = a; + this.b = b; + this.c = c; + this.na = na; + this.nb = nb; + this.nc = nc; + } + } + + struct surfaceindeces { + + public int vertex,texture,normal; + + public surfaceindeces(string token){ + string[] l = token.Split('/'); + vertex = l[0].Length == 0 ? 0 : int.Parse(l[0]); + texture = l[1].Length == 0 ? 0 : int.Parse(l[1]); + normal = l[2].Length == 0 ? 0 : int.Parse(l[2]); + } + + } + } +} diff --git a/org.niclasundharald.engine/graphics/Model3D.cs b/org.niclasundharald.engine/graphics/Model3D.cs index 2589f82..ff3fadd 100644 --- a/org.niclasundharald.engine/graphics/Model3D.cs +++ b/org.niclasundharald.engine/graphics/Model3D.cs @@ -14,6 +14,11 @@ namespace org.niclasundharald.engine.graphics { protected int nTriangles; + Vector3[] vertexes; + Vector4[] colors; + Vector3[] normals; + + protected Model3D(){ vao = GL.GenVertexArray(); nTriangles = 0; @@ -55,6 +60,10 @@ namespace org.niclasundharald.engine.graphics { GL.BindVertexArray(0); } + protected void rebind(){ + + } + protected void bind(Vector3[] vertexes){ bind( vertexes, null, null, null ); } @@ -68,58 +77,46 @@ namespace org.niclasundharald.engine.graphics { } protected void bind(Vector3[] vertexes,Vector4[] colors,Vector3[] normals,Vector2[] uvs){ - float[] fv = new float[vertexes.Length * 3]; +/* float[] fv = new float[vertexes.Length * 3]; for (int n=0;n knownModels; List searchPaths; - public ModelManager() + protected ModelManager() { knownModels = new Dictionary(); searchPaths = new List(); @@ -23,17 +25,18 @@ namespace org.niclasundharald.engine.graphics } - public Model3D loadModel(String mName){ + public Model3D loadModel(String mName,float scale){ string fullName = FileHelper.findFile(String.Format("{0}.obj",mName),searchPaths.ToArray()); if (fullName != null){ - + Console.WriteLine("Model found: {0}",fullName); + return Model3D.loadObjFile(fullName,scale); } return null; } public Model3D findModel(String mName){ if (!knownModels.ContainsKey(mName)){ - return loadModel(mName); + return loadModel(mName,1); } else { return knownModels[mName]; } diff --git a/NHEngine/SquaredMap.cs b/org.niclasundharald.engine/graphics/SquaredMap.cs similarity index 83% rename from NHEngine/SquaredMap.cs rename to org.niclasundharald.engine/graphics/SquaredMap.cs index 5ce387a..5ac68f4 100644 --- a/NHEngine/SquaredMap.cs +++ b/org.niclasundharald.engine/graphics/SquaredMap.cs @@ -10,13 +10,15 @@ using OpenTK.Graphics.OpenGL4; using OpenTK; using org.niclasundharald.engine; -using org.niclasundharald.engine.graphics; -namespace nhengine +namespace org.niclasundharald.engine.graphics { public class SquaredMap : WorldObject { - private static float edge = 64; + public static SquaredMap activeMap; + + private static float edge = 5; + private static float maxHeight = 128.0f; private int width, height; @@ -27,6 +29,8 @@ namespace nhengine public SquaredMap(int width,int height) { + activeMap = this; + this.width = width; this.height = height; @@ -44,6 +48,8 @@ namespace nhengine public SquaredMap(Image heightMap) { + activeMap = this; + this.width = heightMap.Width-1; this.height = heightMap.Height-1; @@ -63,7 +69,7 @@ namespace nhengine for (int x = 0; x <= width; x++) { float h = (float)rand.NextDouble(); - heightMap[x + (y * width)] = (float)(256 * (h * h)); + heightMap[x + (y * width)] = (float)(maxHeight * (h * h)); } } } @@ -77,7 +83,7 @@ namespace nhengine for (int x = 0; x <= width; x++) { Rgba32 pixel = pixels[ x + (y * (width + 1))]; - float h = (pixel.R + pixel.G + pixel.B) / 3; + float h = (pixel.R + pixel.G + pixel.B) * maxHeight / 768; heightMap[x + (y * (width + 1))] = (float)(h); } } @@ -151,13 +157,38 @@ namespace nhengine } this.model = new MapModel3D( vertexes ); - - - this.Position = new Vector3(-(width)*edge,-(height)*edge,0); - } + + private int indHeightMap(int x,int y){ + return x + ((width + 1) * y); + } + + public Vector3 ground(Vector2 _xy){ + Vector2 xy = _xy / edge; + + int i1 = indHeightMap((int)xy.X,(int)xy.Y); + int i2 = indHeightMap((int)xy.X,(int)xy.Y+1); + + if ((xy.X < 0)||(xy.Y<0)||(xy.X>=width)||(xy.Y>=height)){ + throw new OutOfWorldException(); + } + + float h = heightMap[i1] + + heightMap[i1 + 1] + + heightMap[i2] + + heightMap[i2 + 1]; + + h /= 4; + + Vector3 v3 = new Vector3(_xy.X,_xy.Y,h); + Console.WriteLine("Grounding: {0}",v3); + + return v3; + } + } + class MapModel3D : Model3D { int nDraw; diff --git a/org.niclasundharald.engine/graphics/Texture.cs b/org.niclasundharald.engine/graphics/Texture.cs new file mode 100644 index 0000000..a13511b --- /dev/null +++ b/org.niclasundharald.engine/graphics/Texture.cs @@ -0,0 +1,30 @@ +using System; +using System.IO; + +using OpenTK; +using OpenTK.Graphics.OpenGL; + +using ImageSharp; + +namespace org.niclasundharald.engine +{ + public class Texture + { + int tid; + + public Texture(string filename) + { + init(); + load(filename); + } + + private void init(){ + this.tid = GL.GenTexture(); + } + + private void load(string filename){ + + } + + } +} diff --git a/org.niclasundharald.engine/graphics/primitives/Cube.cs b/org.niclasundharald.engine/graphics/primitives/Cube.cs index 4c8ca97..754bc82 100644 --- a/org.niclasundharald.engine/graphics/primitives/Cube.cs +++ b/org.niclasundharald.engine/graphics/primitives/Cube.cs @@ -8,7 +8,8 @@ namespace org.niclasundharald.engine.graphics.primitives { public Cube(Vector3 position, float width) { - Transformation = Matrix4.CreateScale(width) * Matrix4.CreateTranslation( position ); + Scale = Matrix4.CreateScale(width); + Position = position; } public override Model3D getModel3D() @@ -63,8 +64,8 @@ namespace org.niclasundharald.engine.graphics.primitives Model3D.setTriangle(vertexes, 4, e, a, d); Model3D.setTriangle(vertexes, 5, d, h, e); - Model3D.setTriangle(vertexes, 6, g, f, b); - Model3D.setTriangle(vertexes, 7, b, c, g); + Model3D.setTriangle(vertexes, 6, b, f, g); + Model3D.setTriangle(vertexes, 7, g, c, b); Model3D.setTriangle(vertexes, 8, a, e, f); Model3D.setTriangle(vertexes, 9, f, b, a); diff --git a/org.niclasundharald.engine/org.niclasundharald.engine.csproj b/org.niclasundharald.engine/org.niclasundharald.engine.csproj index 795c016..1882432 100644 --- a/org.niclasundharald.engine/org.niclasundharald.engine.csproj +++ b/org.niclasundharald.engine/org.niclasundharald.engine.csproj @@ -34,6 +34,15 @@ ..\packages\OpenTK.GLControl.1.1.2349.61993\lib\NET40\OpenTK.GLControl.dll + + contrib\ImageSharp.dll + + + + + + ..\packages\System.Buffers.4.3.0\lib\netstandard1.1\System.Buffers.dll + @@ -51,6 +60,14 @@ + + + + + + + + @@ -60,6 +77,10 @@ + + + + \ No newline at end of file diff --git a/org.niclasundharald.engine/packages.config b/org.niclasundharald.engine/packages.config index 9667546..6cea577 100644 --- a/org.niclasundharald.engine/packages.config +++ b/org.niclasundharald.engine/packages.config @@ -2,4 +2,7 @@ + + + \ No newline at end of file