コード例 #1
0
        void AddCube()
        {
            scene.Root.AddChildren(node = new Node(new StringBuilder("Cube")));

            // A cube with six faces, each one with its own material

            cubeMesh = GeometryFactory.CreateCube(editorEngine);

            for (int numFace = 0; numFace < 6; numFace++)
            {
                Material material = new Material("standard");

                MaterialLayer layer = material.CreateLayer();

                layer.ShaderID = 0;

                layer.DiffuseMap = editorEngine.Textures.CreateTexture2DFromFile(new StringBuilder((numFace + 1).ToString()));

                if (numFace == 0)
                {
                    layer.NormalMap = editorEngine.Textures.CreateTexture2DFromFile(new StringBuilder("bump_NM_height"));
                }

                cubeMesh.Materials.Add(material);
            }
            node.ScaleX = 30;
            node.ScaleZ = 30;
            node.ScaleY = 0.01f;
            //mesh.Visible = false;

            node.AddRenderable(cubeMesh);

            // A new node
            scene.Root.AddChildren(node2 = new Node(new StringBuilder("clone")));

            node2.Position = new AIOEngine.MathSpace.Vector3(2, 1, 0);

            RenderableMeshMultiMaterial mesh2 = cubeMesh.Clone();

            //node2.AddRenderable(mesh2);

            mesh2.Visible = false;

            mesh2.DrawBounding = true;
        }