private void PrepareRender() { // Add to scene after building a mesh vertices = new List <Vertex>(); indices = new List <int>(); for (int i = 0; i < navMesh.getMaxTiles(); ++i) { Detour.dtMeshTile tile = navMesh.getTile(i); if (tile.header != null) { AddMeshTile(tile); } } var geom = new Mesh(); geom.Load(vertices, indices, indices.Count / 3); var mat = new MaterialDiffuse() { ShaderProgram = "diffuse", Tex = "" }; node = new Scene.Node() { Name = "NaviMesh", Material = mat, Mesh = geom }; scene.Add(node); }
private void CreateShapeNodes() { ShaderManager.Instance.Load( new ShaderManager.ShaderConf() { Name = "diffuse", VsPath = $"{HOME}/Assets/Shader/diffuse.vert", FsPath = $"{HOME}/Assets/Shader/diffuse.frag" }); var mat = new MaterialDiffuse() { ShaderProgram = "diffuse", Tex = $"{HOME}/Assets/Tex/penguine.jpg" }; var meshCube = Shape.CreateCube(new Vector4(1, 0, 0, 1)); var meshPlane = Shape.CreatePlane(); var meshSphere = Shape.CreateSphere(new Vector4(0, 1, 1, 1), 25, 25); // cube { var sn = new Scene.Node() { Name = "sampleCube", Material = mat, Mesh = meshCube }; scene.Add(sn); sn.Transform.Position = new Vector3(0, 0, 2.8f); sn.Transform.Scale = new Vector3(100, 100, 100); sn.Transform.Update(); } // plane { var sn = new Scene.Node() { Name = "samplePlane", Material = mat, Mesh = meshPlane }; scene.Add(sn); sn.Transform.Position = new Vector3(0, 0, 32.1f); sn.Transform.Scale = new Vector3(300, 300, 300); sn.Transform.Update(); } // sphere { var sn = new Scene.Node() { Name = "sampleShpere", Material = mat, Mesh = meshSphere }; scene.Add(sn); sn.Transform.Position = new Vector3(500, 0, 0); sn.Transform.Scale = new Vector3(300, 300, 300); sn.Transform.Update(); } }