예제 #1
0
파일: RenderGroup.cs 프로젝트: KFlaga/Cam3D
        public void Render(DeviceContext device, DXScene scene)
        {
            Shader.RenderFirstPass(device);

            foreach(var model in Models)
            {
                model.Render(device);
            }

            for(int i = 1; i < Shader.Passes.Count; ++i)
            {
                Shader.RenderPass(device, i);

                foreach(var model in Models)
                {
                    model.Render(device);
                }
            }
        }
예제 #2
0
        void InitDX()
        {
            IsRendering = false;
            base.Show();

            // Create camera
            Camera = new CamDX.DXCamera();
            Camera.FarBound = 2000.0f;
            Camera.NearBound = 1.0f;
            Camera.Position = new SharpDX.Vector3(0.0f, 000.0f, 300.0f);
            Camera.LookAt = new SharpDX.Vector3(0.0f, 0.0f, 0.0f);
            Camera.UpDir = SharpDX.Vector3.Up;

            // Create renderer for window
            _renderer = new DXRenderer(WinHanldle, new Size2(800, 600));
            var device = _renderer.DxDevice;

            // Load resources
            XmlDocument resDoc = new XmlDocument();
            resDoc.Load("resources.xml");
            XmlNode dxResourcesNode = resDoc.SelectSingleNode("//DXResources");
            ResourcesManager = new DXResourceManager(device, dxResourcesNode);

            // Create scene
            Scene = new CamDX.DXScene(_renderer.DxDevice);
            Scene.GlobalLights = new GlobalLightsData()
            {
                Ambient = new Color4(1.0f)
            };
            _renderer.CurrentScene = Scene;
            Scene.CurrentCamera = Camera;

            base.Hide();
        }