示例#1
0
        public void OnLoad()
        {
            var dir = Directory.GetCurrentDirectory();

            ResourceGroupManager.Singleton.AddResourceLocation(dir, "FileSystem");
            MaterialManager.Singleton.Initialise();

            _scene = _root.CreateSceneManager("DefaultSceneManager", "SLSharpInstance");
            _scene.ClearScene();

            Bindings.MOGRE.SLSharp.Init();
            Shader.DebugMode = true;

            //Shader.DebugMode = true;

            _shader = Shader.CreateSharedShader <SimpleShader>();

            _patchEntity = _scene.CreateEntity("Box", "box.mesh");
            _scene.RootSceneNode.AttachObject(_patchEntity);

            var mat  = _shader.ToMaterial();
            var pass = mat.GetTechnique(0).GetPass(0);

            pass.SetAlphaRejectSettings(CompareFunction.CMPF_GREATER_EQUAL, 128);
            pass.CullingMode = CullingMode.CULL_NONE;

            // SL# on OGRE: bind auto semantic to a uniform!
            // (we might automate this via semantic attributes within the SL# shaders in future!)
            _shader.SetAuto(() => _shader.ModelviewProjection, GpuProgramParameters.AutoConstantType.ACT_WORLDVIEWPROJ_MATRIX);

            _shader.Begin();

            // Set a texture

            /*
             * var smp = _shader.Sampler(() => _shader.Texture);
             * smp.SetTextureName(TextureManager.Singleton.Load("test.png", ResourceGroupManager.DEFAULT_RESOURCE_GROUP_NAME).Name);
             * smp.SetTextureName(_wang.AsTexture.Name);
             * smp.SetTextureFiltering(FilterOptions.FO_POINT, FilterOptions.FO_POINT, FilterOptions.FO_POINT);
             */

            _patchEntity.SetMaterial(mat);

            _camera          = _scene.CreateCamera("MainCamera");
            _camera.Position = new Vector3(0, 0, 5);
            _camera.LookAt(Vector3.ZERO);
            _camera.NearClipDistance = 0.0001f;
            _camera.FarClipDistance  = 4.0f;
            _camera.AutoAspectRatio  = true;

            var vp = _window.AddViewport(_camera);

            vp.BackgroundColour = ColourValue.Blue;
        }
示例#2
0
        public void OnLoad()
        {
            var dir = Directory.GetCurrentDirectory();

            ResourceGroupManager.Instance.AddResourceLocation(dir, "Folder");
            //MaterialManager.Instance.Initialize();

            _scene = _root.CreateSceneManager("DefaultSceneManager", "SLSharpInstance");
            _scene.ClearScene();

            Bindings.Axiom.SLSharp.Init();
            Shader.DebugMode = true;

            //Shader.DebugMode = true;

            _shader = Shader.CreateSharedShader <SimpleShader>();

            _patchEntity = _scene.CreateEntity("Box", "box.mesh");
            _scene.RootSceneNode.AttachObject(_patchEntity);

            var mat  = _shader.ToMaterial();
            var pass = mat.GetTechnique(0).GetPass(0);

            pass.SetAlphaRejectSettings(CompareFunction.GreaterEqual, 128);
            pass.CullingMode = CullingMode.None;

            // SL# on OGRE: bind auto semantic to a uniform!
            // (we might automate this via semantic attributes within the SL# shaders in future!)
            _shader.SetAuto(() => _shader.ModelviewProjection, GpuProgramParameters.AutoConstantType.WorldViewProjMatrix);

            _shader.Begin();

            _patchEntity.MaterialName = mat.Name;
            //_patchEntity.Material = mat;


            _camera          = _scene.CreateCamera("MainCamera");
            _camera.Position = new Vector3(0, 0, 5);
            _camera.LookAt(Vector3.Zero);
            _camera.Near            = 0.00001f;
            _camera.Far             = 4.0f;
            _camera.AutoAspectRatio = true;

            var vp = _root.AutoWindow.AddViewport(_camera);

            vp.BackgroundColor = ColorEx.CornflowerBlue;
        }