Пример #1
0
        // Init is called on startup.
        public override void Init()
        {
            _shader1 = RC.CreateShader(_vertexShader, _pixelShader);
            _shader2 = RC.CreateShader(_vertexShader, _pixelShader2);

            _mesh = new Mesh
            {
                Vertices = new[]
                {
                    new float3(-0.75f, -0.75f, 0),
                    new float3(0.75f, -0.75f, 0),
                    new float3(-0.75f, 0.75f, 0)
                },
                Triangles = new ushort[] { 0, 1, 2 }
            };

            _mesh2 = new Mesh
            {
                Vertices = new[]
                {
                    new float3(-0.75f, 0.75f, 0),
                    new float3(0.75f, -0.75f, 0),
                    new float3(0.75f, 0.75f, 0)
                },
                Triangles = new ushort[] { 0, 1, 2 }
            };

            // Set the clear color for the backbuffer to light green.
            RC.ClearColor = new float4(0.2f, 0.2f, 0.2f, 1);
        }
Пример #2
0
        // Init is called on startup.
        public override void Init()
        {
            // Load the scene file "Cube.fus"
            SceneContainer sc = AssetStorage.Get <SceneContainer>("Cube.fus");

            // Extract the 'First' object of type 'MeshComponent' found in 'sc'`s list of 'Children' without
            // further specifying any search criterion ('c => true' means: any found MeshComponent will do).
            MeshComponent mc = sc.Children.FindComponents <MeshComponent>(c => true).First();

            // Generate a mesh from the MeshComponent's vertices, normals and triangles.
            _mesh = new Mesh
            {
                Vertices  = mc.Vertices,
                Normals   = mc.Normals,
                Triangles = mc.Triangles
            };

            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _xformParam = RC.GetShaderParam(shader, "xform");
            _xform      = float4x4.Identity;

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(1, 1, 1, 1);
        }
Пример #3
0
        // Init is called on startup.
        public override void Init()
        {
            // Initialize the shader(s)
            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _albedoParam = RC.GetShaderParam(shader, "albedo");

            // Load meshes
            Mesh cube = LoadMesh("Cube.fus");

            InitLevelArray();

            // Setup a list of objects
            _root = new SceneOb {
                Children = new List <SceneOb>()
            };
            for (int ix = 0; ix < levelArray.GetLength(0); ix++)
            {
                for (int iy = 0; iy < levelArray.GetLength(1); iy++)
                {
                    for (int iz = 0; iz < levelArray.GetLength(2); iz++)
                    {
                        _root.Children.Add(new SceneOb {
                            Mesh = cube, Pos = ((levelArray[ix, iy, iz].pos) * 1.05f), Albedo = levelArray[ix, iy, iz].albedo
                        });
                    }
                }
            }

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(1, 1, 1, 1);
        }
Пример #4
0
        // Init is called on startup.
        public override void Init()
        {
            _mesh = new Mesh
            {
                Vertices = new[]
                {
                    new float3(-0.8165f, -0.3333f, -0.4714f),
                    new float3(0.8165f, -0.3333f, -0.4714f),
                    new float3(0, -0.3333f, 0.9428f),
                    new float3(0, 1, 0),
                },
                Triangles = new ushort[]
                {
                    0, 2, 1,
                    0, 1, 3,
                    1, 2, 3,
                    2, 0, 3,
                },
            };

            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _alphaParam = RC.GetShaderParam(shader, "alpha");
            _alpha      = 0;

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(0.1f, 0.3f, 0.2f, 1);
        }
Пример #5
0
        public override void Init()
        {
            _angleHorz = 0.2f;
            _angleVert = 0.2f;

            // is called on startup
            RC.ClearColor = new float4(1, 1, 1, 1);

            // initialize the variables
            _meshTea      = MeshReader.LoadMesh(@"Assets/Teapot.obj.model");
            _meshCube     = MeshReader.LoadMesh(@"Assets/Cube.obj.model");
            _meshSphere   = MeshReader.LoadMesh(@"Assets/Sphere.obj.model");
            _meshCylinder = MeshReader.LoadMesh(@"Assets/Cylinder.obj.model");
            _meshPlatonic = MeshReader.LoadMesh(@"Assets/Platonic.obj.model");
            //RC.CreateShader(Vs, Ps);
            _spColor      = RC.CreateShader(Vs, Ps); //MoreShaders.GetShader("simple", RC);
            _spTexture    = RC.CreateShader(Vt, Pt); //MoreShaders.GetShader("texture", RC);
            _spCustom     = RC.CreateShader(VLin, PLin);
            _colorParam   = _spColor.GetShaderParam("vColor");
            _colorCustom  = _spCustom.GetShaderParam("vColor");
            _textureParam = _spTexture.GetShaderParam("vTexture");

            // load texture
            var imgData = RC.LoadImage("Assets/world_map.jpg");

            _iTex = RC.CreateTexture(imgData);


            _physic = new Physics();

            _gui = new GUI(RC);
            _gui.SetUp(_physic.GetNumRB(), _physic.GetShapes());
        }
Пример #6
0
        public override void Init()
        {
            _world = new World(RC);

            // load mesh as geometry
            var geo1 = MeshReader.LoadGeometry("Assets/Cube.obj.model");

            // create and set shader
            var sp = RC.CreateShader(VsSimpleTexture, PsSimpleTexture);

            RC.SetShader(sp);

            var material = new ShaderMaterial(sp);

            // load a texture and write a text on it
            var imgData = RC.LoadImage("Assets/cube_tex.jpg");

            imgData = RC.TextOnImage(imgData, "Verdana", 80f, "FUSEE rocks!", "Black", 0, 30);

            var iTex = RC.CreateTexture(imgData);

            Texture1Param = sp.GetShaderParam("texture1");
            RC.SetShaderParamTexture(Texture1Param, iTex);

            // add object with material
            _world.AddObject(geo1, material, 0, 0, 500);

            RC.ClearColor = new float4(0.1f, 0.1f, 0.1f, 1);
        }
Пример #7
0
        // Init is called on startup.
        public override void Init()
        {
            var vertsh = AssetStorage.Get <string>("VertexShader.vert");
            var pixsh  = AssetStorage.Get <string>("PixelShader.frag");

            // Initialize the shader(s)
            var shader = RC.CreateShader(vertsh, pixsh);

            RC.SetShader(shader);
            _albedoParam = RC.GetShaderParam(shader, "albedo");

            // Load some meshes
            Mesh cube     = LoadMesh("Cube.fus");
            Mesh cylinder = LoadMesh("Cylinder.fus");
            Mesh sphere   = LoadMesh("Sphere.fus");

            // Setup a list of objects
            _root = new SceneOb {
                Children = new List <SceneOb>(new []
                {
                    // Body
                    new SceneOb {
                        Mesh = cube, Pos = new float3(0, 2.75f, 0), ModelScale = new float3(0.5f, 1, 0.25f), Albedo = new float3(0.2f, 0.6f, 0.3f)
                    },
                    // Legs
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(-0.25f, 1, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(0.25f, 1, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    // Shoulders
                    new SceneOb {
                        Mesh = sphere, Pos = new float3(-0.75f, 3.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f),
                    },
                    new SceneOb {
                        Mesh = sphere, Pos = new float3(0.75f, 3.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f),
                    },
                    // Arms
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(-0.75f, 2.5f, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(0.75f, 2.5f, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    // Head
                    new SceneOb
                    {
                        Mesh   = sphere, Pos = new float3(0, 4.2f, 0), ModelScale = new float3(0.35f, 0.5f, 0.35f),
                        Albedo = new float3(0.9f, 0.6f, 0.5f)
                    },
                })
            };

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(1, 1, 1, 1);
        }
Пример #8
0
        // Init()
        public override void Init()
        {
            RC.ClearColor = new float4(0, 0, 0, 1);

            _shaderProgram = RC.CreateShader(Vs, Ps);
            RC.SetShader(_shaderProgram);

            _stereo3D = new Stereo3D(Stereo3DMode.Anaglyph, Width, Height);
            _stereo3D.AttachToContext(RC);

            _exampleLevel = new Level(RC, _shaderProgram, _stereo3D);
        }
Пример #9
0
        public override void Init()
        {
            RC.ClearColor = new float4(0.5f, 0.5f, 0.5f, 1);

            // load meshes
            Body   = MeshReader.LoadMesh(@"Assets/mageBodyOBJ.obj.model");
            GloveL = MeshReader.LoadMesh(@"Assets/mageGloveLOBJ.obj.model");
            GloveR = MeshReader.LoadMesh(@"Assets/mageGloveROBJ.obj.model");

            // set up shader, lights and textures
            var spBody = RC.CreateShader(VsBump, PsBump);

            RC.SetShader(spBody);

            RC.SetLightActive(0, 1);
            RC.SetLightPosition(0, new float3(5.0f, 0.0f, 2.0f));
            RC.SetLightAmbient(0, new float4(0.2f, 0.2f, 0.2f, 1.0f));
            RC.SetLightSpecular(0, new float4(0.1f, 0.1f, 0.1f, 1.0f));
            RC.SetLightDiffuse(0, new float4(0.8f, 0.8f, 0.8f, 1.0f));
            RC.SetLightDirection(0, new float3(-1.0f, 0.0f, 0.0f));

            RC.SetLightActive(1, 1);
            RC.SetLightPosition(1, new float3(-5.0f, 0.0f, 2.0f));
            RC.SetLightAmbient(1, new float4(0.5f, 0.5f, 0.5f, 1.0f));
            RC.SetLightSpecular(1, new float4(0.1f, 0.1f, 0.1f, 1.0f));
            RC.SetLightDiffuse(1, new float4(1.0f, 1.0f, 1.0f, 1.0f));
            RC.SetLightDirection(1, new float3(1.0f, 0.0f, 0.0f));

            _texture1ParamBody = spBody.GetShaderParam("texture1");
            _texture2ParamBody = spBody.GetShaderParam("normalTex");
            _specularLevelBody = spBody.GetShaderParam("specularLevel");

            var imgDataGlove  = RC.LoadImage("Assets/HandAOMap.jpg");
            var imgData2Glove = RC.LoadImage("Assets/HandschuhNormalMap.jpg");

            _iTexGlove  = RC.CreateTexture(imgDataGlove);
            _iTex2Glove = RC.CreateTexture(imgData2Glove);

            var imgData  = RC.LoadImage("Assets/TextureAtlas.jpg");
            var imgData2 = RC.LoadImage("Assets/TextureAtlasNormal.jpg");

            _iTex  = RC.CreateTexture(imgData);
            _iTex2 = RC.CreateTexture(imgData2);

            // misc settings
            _angleHorz = 0;
            _angleVert = 0;

            _rotationSpeed = 1.5f;
        }
Пример #10
0
        // RenderAFrame is called once a frame
        public override void RenderAFrame()
        {
            // Clear the backbuffer
            RC.Clear(ClearFlags.Color | ClearFlags.Depth);

            RC.SetShader(RC.CreateShader(_vertexShader, _pixelShader));
            RC.Render(_mesh);

            RC.SetShader(RC.CreateShader(_vertexShader, _pixelShader2));
            RC.Render(_mesh2);

            // Swap buffers: Show the contents of the backbuffer (containing the currently rerndered farame) on the front buffer.
            Present();
        }
Пример #11
0
        // Init is called on startup.
        public override void Init()
        {
            _mesh = new Mesh
            {
                Vertices = new[]
                {
                    new float3(-0.5f, -0.5f, -0.5f),
                    new float3(0.5f, -0.5f, -0.5f),
                    new float3(0.5f, 0.5f, -0.5f),
                    new float3(-0.5f, 0.5f, -0.5f),

                    new float3(0.5f, -0.5f, 0.5f),
                    new float3(-0.5f, -0.5f, 0.5f),
                    new float3(-0.5f, 0.5f, 0.5f),
                    new float3(0.5f, 0.5f, 0.5f),

                    new float3(0, 1, 0),
                },
                Triangles = new ushort[]
                {
                    0, 1, 2, // Front 1
                    0, 2, 3, // Front 2
                    1, 4, 7, // Right 1
                    1, 7, 2, // Right 2
                    4, 5, 6, // Back 1
                    4, 6, 7, // Back 2
                    5, 0, 3, // Left 1
                    5, 3, 6, // Left 2
                    3, 2, 8, // Top Front
                    2, 7, 8, // Top Right
                    7, 6, 8, // Top Back
                    6, 3, 8, // Top Left
                },
            };

            var shader = RC.CreateShader(VertexShader, PixelShader);

            RC.SetShader(shader);
            _mouseParam    = RC.GetShaderParam(shader, "mousepos");
            _mousePosition = new float2(0, 0);
            _alphaParam    = RC.GetShaderParam(shader, "alpha");
            _alpha         = 0;

            // Set the clear color for the backbuffer.
            RC.ClearColor = new float4(0.1f, 0.3f, 0.2f, 1);
        }
Пример #12
0
        // Init is called on startup.
        public override void Init()
        {
            _mesh = new Mesh
            {
                Vertices = new[]
                {
                    new float3(-0.5f, -0.5f, -0.5f),
                    new float3(0.5f, -0.5f, -0.5f),
                    new float3(0.5f, 0.5f, -0.5f),
                    new float3(-0.5f, 0.5f, -0.5f),

                    new float3(0.5f, -0.5f, 0.5f),
                    new float3(-0.5f, -0.5f, 0.5f),
                    new float3(-0.5f, 0.5f, 0.5f),
                    new float3(0.5f, 0.5f, 0.5f),

                    new float3(0, 1, 0)
                },
                Triangles = new ushort[]
                {
                    0, 1, 2,
                    0, 2, 3,
                    1, 4, 7,
                    1, 7, 2,
                    4, 5, 6,
                    4, 6, 7,
                    5, 0, 3,
                    5, 3, 6,
                    3, 2, 8,
                    2, 7, 8,
                    7, 6, 8,
                    6, 3, 8
                },
            };

            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _mouseParam = RC.GetShaderParam(shader, "mauspos");
            _mouse      = new float2(0, 0);
            _alphaParam = RC.GetShaderParam(shader, "alpha");
            _alpha      = 0;

            // Set the clear color for the backbuffer.
            RC.ClearColor = new float4(0.1f, 0.3f, 0.2f, 1);
        }
Пример #13
0
        // Init is called on startup.
        public override void Init()
        {
            _mesh = new Mesh
            {
                Vertices = new[]
                {
                    new float3(-0.75f, -0.75f, 0),
                    new float3(0.75f, -0.75f, 0),
                    new float3(0, 0.75f, 0),
                },
                Triangles = new ushort[] { 0, 1, 2 },
            };
            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);

            // Set the clear color for the backbuffer to light green.
            RC.ClearColor = new float4(0.5f, 1, 0.7f, 1);
        }
Пример #14
0
        // Init is called on startup.
        public override void Init()
        {
            _mesh = CreateCylinder();


            Container <int> meinContainer = new Container <int>();

            for (int i = 0; i < 1000; i++)
            {
                meinContainer.PutElement(1000 * 5 - i);
            }


            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _xformParam = RC.GetShaderParam(shader, "xform");
            _xform      = float4x4.Identity;

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(0.1f, 0.3f, 0.2f, 1);
        }
Пример #15
0
        // Init is called on startup.
        public override void Init()
        {
            _mesh = new Mesh
            {
                Vertices = new[]
                {
                    // left, down, front vertex
                    new float3(-1, -1, -1), // 0  - belongs to left
                    new float3(-1, -1, -1), // 1  - belongs to down
                    new float3(-1, -1, -1), // 2  - belongs to front

                    // left, down, back vertex
                    new float3(-1, -1, 1),   // 3  - belongs to left
                    new float3(-1, -1, 1),   // 4  - belongs to down
                    new float3(-1, -1, 1),   // 5  - belongs to back

                    // left, up, front vertex
                    new float3(-1, 1, -1),   // 6  - belongs to left
                    new float3(-1, 1, -1),   // 7  - belongs to up
                    new float3(-1, 1, -1),   // 8  - belongs to front

                    // left, up, back vertex
                    new float3(-1, 1, 1),    // 9  - belongs to left
                    new float3(-1, 1, 1),    // 10 - belongs to up
                    new float3(-1, 1, 1),    // 11 - belongs to back

                    // right, down, front vertex
                    new float3(1, -1, -1),  // 12 - belongs to right
                    new float3(1, -1, -1),  // 13 - belongs to down
                    new float3(1, -1, -1),  // 14 - belongs to front

                    // right, down, back vertex
                    new float3(1, -1, 1),    // 15 - belongs to right
                    new float3(1, -1, 1),    // 16 - belongs to down
                    new float3(1, -1, 1),    // 17 - belongs to back

                    // right, up, front vertex
                    new float3(1, 1, -1),    // 18 - belongs to right
                    new float3(1, 1, -1),    // 19 - belongs to up
                    new float3(1, 1, -1),    // 20 - belongs to front

                    // right, up, back vertex
                    new float3(1, 1, 1),     // 21 - belongs to right
                    new float3(1, 1, 1),     // 22 - belongs to up
                    new float3(1, 1, 1),     // 23 - belongs to back
                },
                Normals = new[]
                {
                    // left, down, front vertex
                    new float3(-1, 0, 0),   // 0  - belongs to left
                    new float3(0, -1, 0),   // 1  - belongs to down
                    new float3(0, 0, -1),   // 2  - belongs to front

                    // left, down, back vertex
                    new float3(-1, 0, 0),    // 3  - belongs to left
                    new float3(0, -1, 0),    // 4  - belongs to down
                    new float3(0, 0, 1),     // 5  - belongs to back

                    // left, up, front vertex
                    new float3(-1, 0, 0),    // 6  - belongs to left
                    new float3(0, 1, 0),     // 7  - belongs to up
                    new float3(0, 0, -1),    // 8  - belongs to front

                    // left, up, back vertex
                    new float3(-1, 0, 0),    // 9  - belongs to left
                    new float3(0, 1, 0),     // 10 - belongs to up
                    new float3(0, 0, 1),     // 11 - belongs to back

                    // right, down, front vertex
                    new float3(1, 0, 0),    // 12 - belongs to right
                    new float3(0, -1, 0),   // 13 - belongs to down
                    new float3(0, 0, -1),   // 14 - belongs to front

                    // right, down, back vertex
                    new float3(1, 0, 0),     // 15 - belongs to right
                    new float3(0, -1, 0),    // 16 - belongs to down
                    new float3(0, 0, 1),     // 17 - belongs to back

                    // right, up, front vertex
                    new float3(1, 0, 0),     // 18 - belongs to right
                    new float3(0, 1, 0),     // 19 - belongs to up
                    new float3(0, 0, -1),    // 20 - belongs to front

                    // right, up, back vertex
                    new float3(1, 0, 0),     // 21 - belongs to right
                    new float3(0, 1, 0),     // 22 - belongs to up
                    new float3(0, 0, 1),     // 23 - belongs to back
                },
                Triangles = new ushort[]
                {
                    0, 6, 3, 3, 6, 9,        // left
                    2, 14, 20, 2, 20, 8,     // front
                    12, 15, 18, 15, 21, 18,  // right
                    5, 11, 17, 17, 11, 23,   // back
                    7, 22, 10, 7, 19, 22,    // top
                    1, 4, 16, 1, 16, 13,     // bottom
                },
            };

            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _xformParam = RC.GetShaderParam(shader, "xform");
            _xform      = float4x4.Identity;

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(0.1f, 0.3f, 0.2f, 1);
        }
Пример #16
0
        // Init is called on startup.
        public override void Init()
        {
            // Load some meshes
            Mesh cone     = LoadMesh("Cone.fus");
            Mesh cube     = LoadMesh("Cube.fus");
            Mesh cylinder = LoadMesh("Cylinder.fus");
            Mesh pyramid  = LoadMesh("Pyramid.fus");
            Mesh sphere   = LoadMesh("Sphere.fus");


            SceneItem si1 = new Transform {
                Pos = new float3(1, 2, 3)
            };
            SceneItem si2 = new Geometry {
                Mesh = cylinder
            };

            si1.Render(RC);



            // Initialize the shader(s)
            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _albedoParam = RC.GetShaderParam(shader, "albedo");


            // Setup a list of objects
            _root = new SceneOb {
                Children = new List <SceneOb>(new []
                {
                    // Body
                    new SceneOb {
                        Mesh = cube, Pos = new float3(0, 2.75f, 0), ModelScale = new float3(0.5f, 1, 0.25f),
                    },
                    // Legs
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(-0.25f, 1, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(0.25f, 1, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    // Shoulders
                    new SceneOb {
                        Mesh = sphere, Pos = new float3(-0.75f, 3.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f),
                    },
                    new SceneOb {
                        Mesh = sphere, Pos = new float3(0.75f, 3.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f),
                    },
                    // Arms
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(-0.75f, 2.5f, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(0.75f, 2.5f, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    // Head
                    new SceneOb
                    {
                        Mesh   = sphere, Pos = new float3(0, 4.2f, 0), ModelScale = new float3(0.35f, 0.5f, 0.35f),
                        Albedo = new float3(0.9f, 0.6f, 0.5f)
                    },
                })
            };

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(1, 1, 1, 1);
        }
Пример #17
0
        // Init is called on startup.
        public override void Init()
        {
            // Load some meshes
            Mesh cone     = LoadMesh("Cone.fus");
            Mesh cube     = LoadMesh("Cube.fus");
            Mesh cylinder = LoadMesh("Cylinder.fus");
            Mesh pyramid  = LoadMesh("Pyramid.fus");
            Mesh sphere   = LoadMesh("Sphere.fus");


            // Initialize the shader(s)
            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _albedoParam = RC.GetShaderParam(shader, "albedo");


            object o1 = new Group
            {
                Children = new List <SceneItem>(new SceneItem[]
                {
                    new Transform {
                        Pos = new float3(0, 2.75f, 0), Scale = new float3(0.5f, 1, 0.25f)
                    },
                    new Geometry {
                        Mesh = cube
                    }
                })
            };
            object o2 = new Transform {
                Pos = new float3(0, 2.75f, 0), Scale = new float3(0.5f, 1, 0.25f)
            };
            object o3 = new float3(22, 33, 44);


            /*
             * InspectType(o1.GetType());
             * InspectType(o2.GetType());
             * InspectType(o3.GetType());
             *
             * CheckObject(o1);
             * CheckObject(o2);
             * CheckObject(o3);
             *
             * ///
             * Assembly asm = Assembly.Load("Fusee.Math.Core");
             * Type[] types = asm.GetTypes();
             * foreach (var type in types)
             * {
             *  InspectType(type);
             * }
             * /// */



            // Setup a list of objects
            _root = new Group()
            {
                Children = new List <SceneItem>(new SceneItem[]
                {
                    new Material {
                        Albedo = new float3(0.2f, 0.9f, 0.1f), AlbedoParam = _albedoParam
                    },
                    // Body
                    new Group
                    {
                        Children = new List <SceneItem>(new SceneItem[]
                        {
                            new Transform {
                                Pos = new float3(0, 2.75f, 0), Scale = new float3(0.5f, 1, 0.25f)
                            },
                            new Geometry {
                                Mesh = cube
                            }
                        })
                    },

                    // Legs
                    new Group
                    {
                        Children = new List <SceneItem>(new SceneItem[]
                        {
                            new Transform {
                                Pos = new float3(-0.25f, 1, 0), Scale = new float3(0.15f, 1, 0.15f)
                            },
                            new Geometry {
                                Mesh = cylinder
                            }
                        })
                    },

                    new Group
                    {
                        Children = new List <SceneItem>(new SceneItem[]
                        {
                            new Transform {
                                Pos = new float3(0.25f, 1, 0), Scale = new float3(0.15f, 1, 0.15f),
                            },
                            new Geometry {
                                Mesh = cylinder
                            }
                        })
                    },
                })
            };

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(1, 1, 1, 1);
        }
Пример #18
0
        // Init is called on startup.
        public override void Init()
        {
            // Initialize the shader(s)
            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _albedoParam = RC.GetShaderParam(shader, "albedo");

            // Load some meshes
            Mesh cone     = LoadMesh("Cone.fus");
            Mesh cube     = LoadMesh("Cube.fus");
            Mesh cylinder = LoadMesh("Cylinder.fus");
            Mesh pyramid  = LoadMesh("Pyramid.fus");
            Mesh sphere   = LoadMesh("Sphere.fus");

            // Setup a list of objects
            _root = new SceneOb {
                name = "root"
            };

            // Add Body
            _root.Children.Add(new SceneOb {
                Mesh = cube, Albedo = new float3(0, 0, 0), Pos = new float3(0, 2.75f, 0), ModelScale = new float3(0.5f, 1, 0.25f), name = "body"
            });

            // Add Legs
            _root.Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(-0.25f, 1, 0), ModelScale = new float3(0.15f, 0.75f, 0.15f), name = "rightupperleg"
            });
            FindSceneOb(_root, "rightupperleg").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.75f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "rightknee"
            });
            FindSceneOb(_root, "rightknee").Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.15f, 0.5f, 0.15f), name = "rightlowerleg"
            });
            FindSceneOb(_root, "rightlowerleg").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.70f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "rightfoot"
            });

            _root.Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0.25f, 1, 0), Pivot = new float3(0, 0.75f, 0), ModelScale = new float3(0.15f, 0.75f, 0.15f), name = "leftupperleg"
            });
            FindSceneOb(_root, "leftupperleg").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.75f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "leftknee"
            });
            FindSceneOb(_root, "leftknee").Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.15f, 0.5f, 0.15f), name = "leftlowerleg"
            });
            FindSceneOb(_root, "leftlowerleg").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.70f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "leftfoot"
            });

            // Add Arms
            _root.Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(-0.75f, 3.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "rightshoulder"
            });
            FindSceneOb(_root, "rightshoulder").Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.15f, 0.5f, 0.15f), name = "rightupperarm"
            });
            FindSceneOb(_root, "rightupperarm").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "rightellbow"
            });
            FindSceneOb(_root, "rightellbow").Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.15f, 0.5f, 0.15f), name = "rightlowerarm"
            });
            FindSceneOb(_root, "rightlowerarm").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "rightwrist"
            });

            _root.Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0.75f, 3.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "leftshoulder"
            });
            FindSceneOb(_root, "leftshoulder").Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.15f, 0.5f, 0.15f), name = "leftupperarm"
            });
            FindSceneOb(_root, "leftupperarm").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "leftellbow"
            });
            FindSceneOb(_root, "leftellbow").Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.15f, 0.5f, 0.15f), name = "leftlowerarm"
            });
            FindSceneOb(_root, "leftlowerarm").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "leftwrist"
            });

            // Add Head
            _root.Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(0, 1, 0), Pos = new float3(0, 4.2f, 0), ModelScale = new float3(0.35f, 0.5f, 0.35f), name = "head"
            });

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(1, 1, 1, 1);
        }
Пример #19
0
        // is called on startup
        public override void Init()
        {
            RC.ClearColor = new float4(0.2f, 0.2f, 0.2f, 1);

            _smokeTexture      = RC.CreateShader(_smokeEmitter.VsSimpleTexture, _smokeEmitter.PsSimpleTexture);
            _fireRedTexture    = RC.CreateShader(_fireRedEmitter.VsSimpleTexture, _fireRedEmitter.PsSimpleTexture);
            _fireYellowTexture = RC.CreateShader(_fireYellowEmitter.VsSimpleTexture, _fireYellowEmitter.PsSimpleTexture);
            _starTexture       = RC.CreateShader(_starEmitter.VsSimpleTexture, _starEmitter.PsSimpleTexture);

            _smokeParam      = _smokeTexture.GetShaderParam("texture1");
            _fireRedParam    = _fireRedTexture.GetShaderParam("texture1");
            _fireYellowParam = _fireYellowTexture.GetShaderParam("texture1");
            _starParam       = _starTexture.GetShaderParam("texture1");

            // load texture
            var imgSmokeData      = RC.LoadImage("Assets/smoke_particle.png");
            var imgFireRedData    = RC.LoadImage("Assets/fireRed.png");
            var imgFireYellowData = RC.LoadImage("Assets/fireYellowTexture.png");
            var imgStarData       = RC.LoadImage("Assets/star.png");

            _iSmoke      = RC.CreateTexture(imgSmokeData);
            _iFireRed    = RC.CreateTexture(imgFireRedData);
            _iFireYellow = RC.CreateTexture(imgFireYellowData);
            _iStar       = RC.CreateTexture(imgStarData);

            RC.SetRenderState(new RenderStateSet
            {
                ZEnable          = false,
                AlphaBlendEnable = true,
                BlendOperation   = BlendOperation.Add,
                SourceBlend      = Blend.SourceAlpha,
                DestinationBlend = Blend.InverseSourceAlpha
            });

            // GUIHandler
            _guiHandler = new GUIHandler();
            _guiHandler.AttachToContext(RC);

            // font + text
            _guiFontCabin18 = RC.LoadFont("Assets/Cabin.ttf", 18);
            _guiFontCabin24 = RC.LoadFont("Assets/Cabin.ttf", 24);

            _guiText           = new GUIText("Fusee3D Particle System ", _guiFontCabin24, 510, 35);
            _guiText.TextColor = new float4(1, 1, 1, 1);

            _guiHandler.Add(_guiText);

            // panel
            _guiPanel = new GUIPanel("Menu", _guiFontCabin18, 10, 10, 150, 150);
            _guiHandler.Add(_guiPanel);

            // Example 1 button
            _guiExampleOneButton = new GUIButton("Fog", _guiFontCabin18, 25, 40, 100, 25);

            _guiExampleOneButton.OnGUIButtonDown  += OnMenuButtonDown;
            _guiExampleOneButton.OnGUIButtonUp    += OnMenuButtonUp;
            _guiExampleOneButton.OnGUIButtonEnter += OnMenuButtonEnter;
            _guiExampleOneButton.OnGUIButtonLeave += OnMenuButtonLeave;

            _guiPanel.ChildElements.Add(_guiExampleOneButton);

            // Example 2 button
            _guiExampleTwoButton = new GUIButton("Fire", _guiFontCabin18, 25, 70, 100, 25);

            _guiExampleTwoButton.OnGUIButtonDown  += OnMenuButtonDown;
            _guiExampleTwoButton.OnGUIButtonUp    += OnMenuButtonUp;
            _guiExampleTwoButton.OnGUIButtonEnter += OnMenuButtonEnter;
            _guiExampleTwoButton.OnGUIButtonLeave += OnMenuButtonLeave;

            _guiPanel.ChildElements.Add(_guiExampleTwoButton);

            // Example 2 button
            _guiExampleThreeButton = new GUIButton("Stars", _guiFontCabin18, 25, 100, 100, 25);

            _guiExampleThreeButton.OnGUIButtonDown  += OnMenuButtonDown;
            _guiExampleThreeButton.OnGUIButtonUp    += OnMenuButtonUp;
            _guiExampleThreeButton.OnGUIButtonEnter += OnMenuButtonEnter;
            _guiExampleThreeButton.OnGUIButtonLeave += OnMenuButtonLeave;

            _guiPanel.ChildElements.Add(_guiExampleThreeButton);
        }