Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
            }
        }