Example #1
0
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            mArena.loadContent(Content, mGraphicsManager);
            mRenderer.loadContent(Content, mGraphicsManager, mArena.CollisionData.geometry);

            // load bouncing sphere and apply instancing shader
            mSphereModel = Content.Load <Model>("Models/soccer_ball_232_tris");
            var instancingShader = Content.Load <Effect>("Effects/InstancingShader");

            foreach (ModelMesh mesh in mSphereModel.Meshes)
            {
                foreach (ModelMeshPart part in mesh.MeshParts)
                {
                    BasicEffect basicEffect = (BasicEffect)part.Effect;
                    part.Effect = instancingShader.Clone();
                    part.Effect.Parameters["Texture"].SetValue(basicEffect.Texture);
                    part.Effect.Parameters["LightPosition"].SetValue(new Vector3(100, 130, 0));
                    part.Effect.Parameters["LightDirection"].SetValue(new Vector3(230.0f, 130.0f, 0f));
                    part.Effect.Parameters["LightColor"].SetValue(new Vector4(1f, 1f, 1f, 1.0f));
                    part.Effect.Parameters["AmbientLightColor"].SetValue(new Vector4(0.2f, 0.2f, 0.2f, 1.0f));
                    part.Effect.Parameters["MaterialColor"].SetValue(new Vector4(0.5f, 0.5f, 0.5f, 1.0f));

                    part.Effect.Parameters["Shininess"].SetValue(0.1f);
                    part.Effect.Parameters["SpecularPower"].SetValue(4.0f);

                    part.Effect.CurrentTechnique = part.Effect.Techniques["Light"];
                }
            }

            // load skybox and apply skybox shader
            mSkyBox = Content.Load <Model>("Models/sky_box");
            var envSphereShader = Content.Load <Effect>("Effects/SkyBoxShader");

            foreach (ModelMesh mesh in mSkyBox.Meshes)
            {
                foreach (ModelMeshPart part in mesh.MeshParts)
                {
                    BasicEffect e = (BasicEffect)part.Effect;
                    part.Effect = envSphereShader.Clone();
                    part.Effect.Parameters["Texture"].SetValue(e.Texture);
                }
            }

            // create the simulator
            mSimulator = new BouncingSphereSimlulator(mArena.CollisionData);

            mOverlay.loadContent(Content, mGraphicsManager);

            mArena.noTextures    = false;
            mArena.normalMapping = true;

            mOverlay.normalMappingEnabled   = mArena.normalMapping;
            mOverlay.texturesEnabled        = !mArena.noTextures;
            mOverlay.drawCollidingTriangles = true;
            mOverlay.drawCollisionGeometry  = false;

            mPlayer.camera.aspectRatio = mGraphicsManager.GraphicsDevice.Viewport.AspectRatio;
        }
Example #2
0
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            mArena.loadContent(Content, mGraphicsManager);
            mRenderer.loadContent(Content, mGraphicsManager, mArena.CollisionData.geometry);

            // load bouncing sphere and apply instancing shader
            mSphereModel = Content.Load<Model>("Models/soccer_ball_232_tris");
            var instancingShader = Content.Load<Effect>("Effects/InstancingShader");
            foreach (ModelMesh mesh in mSphereModel.Meshes)
            {
                foreach (ModelMeshPart part in mesh.MeshParts)
                {
                    BasicEffect basicEffect = (BasicEffect)part.Effect;
                    part.Effect = instancingShader.Clone();
                    part.Effect.Parameters["Texture"].SetValue(basicEffect.Texture);
                    part.Effect.Parameters["LightPosition"].SetValue(new Vector3(100, 130, 0));
                    part.Effect.Parameters["LightDirection"].SetValue(new Vector3(230.0f, 130.0f, 0f));
                    part.Effect.Parameters["LightColor"].SetValue(new Vector4(1f, 1f, 1f, 1.0f));
                    part.Effect.Parameters["AmbientLightColor"].SetValue(new Vector4(0.2f, 0.2f, 0.2f, 1.0f));
                    part.Effect.Parameters["MaterialColor"].SetValue(new Vector4(0.5f, 0.5f, 0.5f, 1.0f));

                    part.Effect.Parameters["Shininess"].SetValue(0.1f);
                    part.Effect.Parameters["SpecularPower"].SetValue(4.0f);

                    part.Effect.CurrentTechnique = part.Effect.Techniques["Light"];
                }
            }

            // load skybox and apply skybox shader
            mSkyBox = Content.Load<Model>("Models/sky_box");
            var envSphereShader = Content.Load<Effect>("Effects/SkyBoxShader");
            foreach (ModelMesh mesh in mSkyBox.Meshes)
            {
                foreach (ModelMeshPart part in mesh.MeshParts)
                {
                    BasicEffect e = (BasicEffect)part.Effect;
                    part.Effect = envSphereShader.Clone();
                    part.Effect.Parameters["Texture"].SetValue(e.Texture);
                }
            }

            // create the simulator
            mSimulator = new BouncingSphereSimlulator(mArena.CollisionData);

            mOverlay.loadContent(Content, mGraphicsManager);

            mArena.noTextures = false;
            mArena.normalMapping = true;

            mOverlay.normalMappingEnabled = mArena.normalMapping;
            mOverlay.texturesEnabled = !mArena.noTextures;
            mOverlay.drawCollidingTriangles = true;
            mOverlay.drawCollisionGeometry = false;

            mPlayer.camera.aspectRatio = mGraphicsManager.GraphicsDevice.Viewport.AspectRatio;
        }