public override void Start() { this.Configuration.BackgroundColour = Rgba32.DarkSlateGrey; MeshAsset meshAsset = this.Engine.Assets.Load<MeshAsset> ("assets/darius.bba"); vb = Platform.Graphics.CreateVertexBuffer (meshAsset.VertexDeclaration, meshAsset.VertexData.Length); ib = Platform.Graphics.CreateIndexBuffer (meshAsset.IndexData.Length); vb.SetDataEx (meshAsset.VertexData); ib.SetData (meshAsset.IndexData); var mushMesh0 = new Mesh (vb, ib); // set up the debug renderer ShaderAsset unlitShaderAsset = this.Engine.Assets.Load<ShaderAsset> ("assets/vertex_lit.bba"); shader = this.Platform.Graphics.CreateShader (unlitShaderAsset); TextureAsset texAsset = this.Engine.Assets.Load <TextureAsset> ("assets/darius_tex.bba"); tex = this.Platform.Graphics.CreateTexture (texAsset); entity = SceneGraph.CreateSceneObject ("entity"); entity.Transform.LocalPosition = new Vector3 (0f, 0f, 0f); entity.Transform.LocalScale = new Vector3 (0.1f, 0.1f, 0.1f); var mat = new Material ("Default", shader); mat.SetTexture ("TextureSampler", tex); MeshRendererTrait meshRendererTrait0 = entity.AddTrait<MeshRendererTrait> (); meshRendererTrait0.Material = mat; meshRendererTrait0.Mesh = mushMesh0; meshRendererTrait0.CullMode = CullMode.None; returnScene = this; var t = SceneGraph.CreateSceneObject ("T"); t.Transform.LocalPosition = new Vector3 (0, 2.3f, 0); Entity camSo = SceneGraph.CreateSceneObject ("Scene X Camera"); camSo.AddTrait<CameraTrait> (); var lookatTrait = camSo.AddTrait<LookAtSubjectTrait> (); lookatTrait.Subject = t.Transform; var orbitTrait = camSo.AddTrait<OrbitAroundSubjectTrait> (); orbitTrait.CameraSubject = Transform.Origin; camSo.Transform.LocalPosition = new Vector3 (-7f,3f,1f); this.RuntimeConfiguration.SetRenderPassCameraTo("Debug", camSo); this.RuntimeConfiguration.SetRenderPassCameraTo("Default", camSo); this.Engine.InputEventSystem.Tap += this.OnTap; }
public override void Start() { this.Configuration.BackgroundColour = Rgba32.DarkSlateGrey; //var goBoardMesh = new CubePrimitive (this.Platform.Graphics).Mesh; MeshAsset mushMeshAsset0 = this.Engine.Assets.Load<MeshAsset> ("assets/big_mushroom.bba"); vb0 = Platform.Graphics.CreateVertexBuffer (mushMeshAsset0.VertexDeclaration, mushMeshAsset0.VertexData.Length); ib0 = Platform.Graphics.CreateIndexBuffer (mushMeshAsset0.IndexData.Length); vb0.SetDataEx (mushMeshAsset0.VertexData); ib0.SetData (mushMeshAsset0.IndexData); var mushMesh0 = new Mesh (vb0, ib0); MeshAsset mushMeshAsset1 = this.Engine.Assets.Load<MeshAsset> ("assets/small_mushroom_1.bba"); vb1 = Platform.Graphics.CreateVertexBuffer (mushMeshAsset1.VertexDeclaration, mushMeshAsset1.VertexData.Length); ib1 = Platform.Graphics.CreateIndexBuffer (mushMeshAsset1.IndexData.Length); vb1.SetDataEx (mushMeshAsset1.VertexData); ib1.SetData (mushMeshAsset1.IndexData); var mushMesh1 = new Mesh (vb1, ib1); MeshAsset mushMeshAsset2 = this.Engine.Assets.Load<MeshAsset> ("assets/small_mushroom_2.bba"); vb2 = Platform.Graphics.CreateVertexBuffer (mushMeshAsset2.VertexDeclaration, mushMeshAsset2.VertexData.Length); ib2 = Platform.Graphics.CreateIndexBuffer (mushMeshAsset2.IndexData.Length); vb2.SetDataEx (mushMeshAsset2.VertexData); ib2.SetData (mushMeshAsset2.IndexData); var mushMesh2 = new Mesh (vb2, ib2); // set up the debug renderer ShaderAsset unlitShaderAsset = this.Engine.Assets.Load<ShaderAsset> ("assets/pixel_lit.bba"); shader = this.Platform.Graphics.CreateShader (unlitShaderAsset); TextureAsset woodTexAsset = this.Engine.Assets.Load <TextureAsset> ("assets/toadstool_diffuse.bba"); woodTex = this.Platform.Graphics.CreateTexture (woodTexAsset); mush0 = SceneGraph.CreateSceneObject ("mush0"); mush0.Transform.LocalPosition = new Vector3 (0f, 0f, 0f); mush0.Transform.LocalScale = new Vector3 (1f, 1f, 1f); mush1 = SceneGraph.CreateSceneObject ("mush1"); mush1.Transform.LocalPosition = new Vector3 (0.8f, 0f, 0.8f); mush1.Transform.LocalScale = new Vector3 (1f, 1f, 1f); mush2 = SceneGraph.CreateSceneObject ("mush2"); mush2.Transform.LocalPosition = new Vector3 (0.5f, 0f, 0f); mush2.Transform.LocalScale = new Vector3 (1f, 1f, 1f); var mat = new Material ("Default", shader); mat.SetTexture ("TextureSampler", woodTex); MeshRendererTrait meshRendererTrait0 = mush0.AddTrait<MeshRendererTrait> (); meshRendererTrait0.Material = mat; meshRendererTrait0.Mesh = mushMesh0; meshRendererTrait0.CullMode = CullMode.None; MeshRendererTrait meshRendererTrait1 = mush1.AddTrait<MeshRendererTrait> (); meshRendererTrait1.Material = mat; meshRendererTrait1.Mesh = mushMesh1; meshRendererTrait1.CullMode = CullMode.None; MeshRendererTrait meshRendererTrait2 = mush2.AddTrait<MeshRendererTrait> (); meshRendererTrait2.Material = mat; meshRendererTrait2.Mesh = mushMesh2; meshRendererTrait2.CullMode = CullMode.None; returnScene = this; var t = SceneGraph.CreateSceneObject ("T"); t.Transform.LocalPosition = new Vector3 (0, 1f, 0); Entity camSo = SceneGraph.CreateSceneObject ("Scene X Camera"); camSo.AddTrait<CameraTrait>(); var lookatTrait = camSo.AddTrait<LookAtSubjectTrait>(); lookatTrait.Subject = t.Transform; var orbitTrait = camSo.AddTrait<OrbitAroundSubjectTrait>(); orbitTrait.CameraSubject = Transform.Origin; camSo.Transform.LocalPosition = new Vector3(6f,3f,6f); this.RuntimeConfiguration.SetRenderPassCameraTo("Debug", camSo); this.RuntimeConfiguration.SetRenderPassCameraTo("Default", camSo); this.Engine.InputEventSystem.Tap += this.OnTap; }
public static Entity CreateShapeGO(Scene scene, string renderPass, Mesh modelpart, int shaderIndex = 0) { // create a game object Entity testGO = scene.SceneGraph.CreateSceneObject ("test-" + c++); Single scale = RandomGenerator.Default.GetRandomSingle(0.25f, 0.5f); // size it testGO.Transform.LocalPosition = new Vector3( RandomGenerator.Default.GetRandomSingle(-1.28f, 1.28f), RandomGenerator.Default.GetRandomSingle(-1.28f, 1.28f), RandomGenerator.Default.GetRandomSingle(-1.28f, 1.28f)); testGO.Transform.LocalScale = new Vector3(scale, scale, scale); testGO.AddTrait<RandomLocalRotate>(); // load a texture //Texture tex = null;//scene.Engine.Resources.Load<Texture> (new Uri("\\Textures\\recycle")); Shader shader = null; if (shaderIndex == 0) shader = CommonDemoResources.PixelLitShader; else if (shaderIndex == 1) shader = CommonDemoResources.VertexLitShader; else shader = CommonDemoResources.UnlitShader; // create a material on the fly var mat = new Material(renderPass, shader); //mat.SetTexture("_texture", tex); // add a mesh renderer MeshRendererTrait meshRendererTrait = testGO.AddTrait<MeshRendererTrait> (); // set the mesh renderer's material meshRendererTrait.Material = mat; // and it's model meshRendererTrait.Mesh = modelpart; testGO.AddTrait<ColourChanger>(); return testGO; }
public override void OnAwake() { meshRendererTrait = this.Parent.GetTrait<MeshRendererTrait>(); if(meshRendererTrait == null) { meshRendererTrait = this.Parent.AddTrait<MeshRendererTrait>(); } if( spriteMesh == null ) { spriteMesh = SpriteMesh.Create(this.Platform.Graphics); } if (spriteShader == null) { // todo, need a better way to configure this. throw new Exception ("Sprite.SpriteShader must be set by user."); } var mat = new Material("Default", spriteShader); meshRendererTrait.Mesh = spriteMesh; meshRendererTrait.Material = mat; ApplyChanges (true); }
public override void Start() { this.Configuration.BackgroundColour = Rgba32.Black; CommonDemoResources.Create (Platform, Engine); Entity camSo = SceneGraph.CreateSceneObject ("Scene 3 Camera"); camSo.AddTrait <CameraTrait> (); var lookatTrait = camSo.AddTrait<LookAtSubjectTrait>(); lookatTrait.Subject = Transform.Origin; var orbitTrait = camSo.AddTrait<OrbitAroundSubjectTrait>(); orbitTrait.CameraSubject = Transform.Origin; camSo.Transform.LocalPosition = new Vector3(1f,0.5f,5f); this.RuntimeConfiguration.SetRenderPassCameraTo("Debug", camSo); this.RuntimeConfiguration.SetRenderPassCameraTo("Default", camSo); _returnScene = this; this.Engine.InputEventSystem.Tap += this.OnTap; teapotGPUMesh = new TeapotPrimitive(Platform.Graphics).Mesh; AddTeapot(0); AddTeapot(-1.5f); AddTeapot(1.5f); }
// Once all the geometry has been specified by calling AddVertex and AddIndex, // this method copies the vertex and index data into GPU format buffers, ready // for efficient rendering. protected void InitializePrimitive(Graphics gfx) { var vertexBuffer = gfx.CreateVertexBuffer (VertexPositionNormal.Default.VertexDeclaration, vertices.Count); var indexBuffer = gfx.CreateIndexBuffer (indices.Count); vertexBuffer.SetData (vertices.ToArray()); indexBuffer.SetData (indices.ToArray()); Mesh = new Mesh (vertexBuffer, indexBuffer); }