static void Main(string[] args) { for (int j = 0; j < 50; j++) { var octree = new BoundingOctree <object>(); for (int i = 0; i < 1000; i++) { var bounds = Bounds3.FromVectors(Functions.Random.NextVector3(-1000, 1000), Functions.Random.NextVector3(-1000, 1000)); octree.Add(bounds, i); } Logger.LogError(octree); } // Network.NetworkTimeProtocol.Test(); using (var engine = new Engine.CoreEngine()) { engine.Process = new ProgramEngine(engine); engine.Run(); } }
protected internal virtual void OnLeave(CoreEngine engine) { }
protected internal virtual void OnEnter(CoreEngine engine) { }
public EngineProcess(CoreEngine engine) { Engine = engine; Scene = new Scene(); Chrome = new Chrome(); }
protected internal override void OnEnter(Engine.CoreEngine engine) { Chrome.Attach(engine.Form); var menu = new Interface.Menu() { Position = new Vector2(), Size = new Vector2(9000, 40) }; menu.Items.AddRange("File", "Edit", "View", "Window", "Help"); menu.Items[0].Children.AddRange("New", "Open", "Save", "Exit"); menu.Items[0].Children[3].Clicked += (s, e) => engine.Form.Close(); menu.Items[1].Children.AddRange("Cut", "Copy", "Paste"); menu.Items[4].Children.AddRange("About"); Chrome.Controls.Add(menu); var entityTree = new Interface.Custom.EntityComponentTree(Scene) { Position = new Vector2(10, 100), Size = new Vector2(200, 400), }; Chrome.Controls.Add(entityTree); var skyBox = Texture2D.FromFile(Engine.Device, "../../skybox/right.jpg", "../../skybox/left.jpg", "../../skybox/top.jpg", "../../skybox/bottom.jpg", "../../skybox/front.jpg", "../../skybox/back.jpg"); pbr.skybox = skyBox; sbr.skybox = skyBox; var material = new Material() { Albedo = Texture2D.FromFile(Engine.Device, "../../pbr/albedo.jpg"), Normal = Texture2D.FromFile(Engine.Device, "../../pbr/normal.jpg"), Roughness = Texture2D.FromFile(Engine.Device, "../../pbr/roughness.jpg"), Height = Texture2D.FromFile(Engine.Device, "../../pbr/height.jpg"), Specular = Texture2D.FromFile(Engine.Device, "../../pbr/metallic.jpg"), Alpha = Texture2D.FromFile(Engine.Device, "../../pbr/alpha.jpg"), Occlusion = Texture2D.FromFile(Engine.Device, "../../pbr/ambientocclusion.jpg"), }; material.Roughness = material.Height; //material.Specular = material.Normal; Color red = Color.Red; Color green = Color.Green; var aMaterial = new Material() { //Albedo = Texture2D.FromColor(Engine.Device, Color.Red), Albedo = Texture2D.FromColor(Engine.Device, new Color(0.7038f, 0.27048f, 0.0828f, 1f)), Normal = Texture2D.FromColor(Engine.Device, new Color(0.5f, 1f, 0.5f)), Roughness = Texture2D.FromColor(Engine.Device, new Color(0.2f)), Specular = Texture2D.FromColor(Engine.Device, new Color(0.256777f, 0.137622f, 0.086014f, 1)), Occlusion = Texture2D.FromColor(Engine.Device, Color.White), }; var shipModel = Model.FromMesh(Engine.Device, Mathematics.Geometry.WavefrontObj.Load("../../Model.obj")); shipModel.Materials.Add(material); var missileModel = Model.FromMesh(Engine.Device, Mathematics.Geometry.WavefrontObj.Load("../../Missile.obj")); missileModel.Materials.Add(material); var boxModel = Model.FromMesh(Engine.Device, Mathematics.Geometry.Mesh.CreateCube().Invert()); var rock1 = Model.FromMesh(Engine.Device, Mathematics.Geometry.WavefrontObj.Load("../../Rock1.obj")); rock1.Materials.Add(aMaterial); var rock2 = Model.FromMesh(Engine.Device, Mathematics.Geometry.WavefrontObj.Load("../../Rock2.obj")); rock2.Materials.Add(aMaterial); Scene.Entities.Add(new Entity("Camera") .Add(camera = new Camera { View = view, Projection = projection, }) .Add(new Renderable { Model = boxModel, Renderer = sbr, })); Scene.Entities.Add(new Entity("Ship 1", new Transform { Scaling = new Axiverse.Vector3(5), }) .Add(new Renderable() { Model = rock2, Renderer = pbr, }) .Add(new Physical())); Scene.Entities.Add(new Entity("Point Light", new Transform { Translation = new Axiverse.Vector3(4, 50, 6), }) .Add(new Light() { Color = Color.White, Intensity = 1, })); for (int i = 0; i < 100; i++) { Physical p; Scene.Entities.Add(new Entity("Missile " + (i + 1), new Transform { Scaling = new Axiverse.Vector3(0.2f, 1, 0.2f), }) .Add(new Renderable() { Model = missileModel, Renderer = pbr, }) .Add(new Agent()) .Add(p = new Physical())); p.Body.AngularPosition = Functions.Random.NextQuaternion(); } }