Пример #1
0
        /// <summary>
        /// Crea la ventana de <c>OSG</c>.
        /// </summary>
        protected virtual void CreateOSGWindow()
        {
            GraphicsContext.Traits traits = this.CreateTraits();

            Trace.WriteLine("Traits:");
            Trace.WriteLine(ToString(traits));

            this.gc = GraphicsContext.createGraphicsContext(traits);

            if (!this.gc.valid())
            {
                Trace.WriteLine("El GraphicsContext {0} no es valido", this.gc.ToString());
            }

            // Se establece el 'viewer'.
            Viewer viewer = new Viewer();

            viewer.asOsgViewerView().setLightingMode(osg.View.LightingMode.SKY_LIGHT);
            this.viewer = viewer;

            // Se establece la camara.
            Camera camera = this.viewer.asOsgViewerView().getCamera();

            camera.setGraphicsContext(this.gc);
            camera.setViewport(new Viewport(0, 0, traits.width, traits.height));
            camera.setProjectionMatrixAsPerspective(30.0f, (double)traits.width / (double)traits.height, 0.5, 1000.0);
            camera.setDrawBuffer((uint)OsgModule.GL_FRONT);
            camera.setReadBuffer((uint)OsgModule.GL_FRONT);
            camera.setClearColor(new Vec4f(0.2f, 0.2f, 0.2f, 1));
            //camera.asCullSettings().setComputeNearFarMode(CullSettings.ComputeNearFarMode.DO_NOT_COMPUTE_NEAR_FAR);
            camera.setClearMask((uint)(OsgModule.GL_COLOR_BUFFER_BIT
                                       | OsgModule.GL_DEPTH_BUFFER_BIT
                                       /*| OsgModule.GL_STENCIL_BUFFER_BIT*/));

            //DisplaySettings settings = this.CreateDisplaySettings();
            //camera.setDisplaySettings(settings);
            //osgViewer.Viewer.asView(this.Viewer).setDisplaySettings(settings);

            //this.Camera.attach(Camera.BufferComponent.STENCIL_BUFFER,));

            //this.Camera = camera;
            this.camera = camera;

            // Se establece el manipulador por defecto: tipo trackball.
            TrackballManipulator manipulator = new TrackballManipulator();

            manipulator.setHomePosition(new Vec3d(-50, 0, 2), new Vec3d(0, 0, 0), new Vec3d(0, 0, 1));
            manipulator.setTransformation(new Vec3d(-50, 0, 2), new Vec3d(0, 0, 0), new Vec3d(0, 0, 1));
            //manipulator.home(0);
            //manipulator.setAutoComputeHomePosition(true);
            manipulator.setAllowThrow(false);
            manipulator.setVerticalAxisFixed(true);
            manipulator.setTrackballSize(1);

            this.Manipulator = manipulator;
        }
Пример #2
0
        static void Main(string[] args)
        {
            Bootstrapper.Configure();

            var viewer = SimpleViewer.Create("Hello Veldrid Scene Graph");

            viewer.SetCameraManipulator(TrackballManipulator.Create());

            var root = Group.Create();

            var geometry = Geometry <VertexPositionColor> .Create();

            VertexPositionColor[] quadVertices =
            {
                new VertexPositionColor(new Vector2(-.75f,  .75f), new Vector4(1.0f, 0.0f, 0.0f, 1.0f)),
                new VertexPositionColor(new Vector2(.75f,   .75f), new Vector4(0.0f, 1.0f, 0.0f, 1.0f)),
                new VertexPositionColor(new Vector2(-.75f, -.75f), new Vector4(0.0f, 0.0f, 1.0f, 1.0f)),
                new VertexPositionColor(new Vector2(.75f,  -.75f), new Vector4(1.0f, 1.0f, 0.0f, 1.0f))
            };

            geometry.VertexData = quadVertices;

            uint[] quadIndices = { 0, 1, 2, 3 };
            geometry.IndexData = quadIndices;

            geometry.VertexLayout = new VertexLayoutDescription(
                new VertexElementDescription("Position", VertexElementSemantic.TextureCoordinate, VertexElementFormat.Float2),
                new VertexElementDescription("Color", VertexElementSemantic.TextureCoordinate, VertexElementFormat.Float4));

            var pSet = DrawElements <VertexPositionColor> .Create(
                geometry,
                PrimitiveTopology.TriangleStrip,
                (uint)geometry.IndexData.Length,
                1,
                0,
                0,
                0);

            geometry.PrimitiveSets.Add(pSet);

            geometry.PipelineState.VertexShaderDescription   = Vertex2Color4Shader.Instance.VertexShaderDescription;
            geometry.PipelineState.FragmentShaderDescription = Vertex2Color4Shader.Instance.FragmentShaderDescription;

            var geode = Geode.Create();

            geode.AddDrawable(geometry);

            root.AddChild(geode);

            viewer.SetSceneData(root);

            viewer.ViewAll();

            viewer.Run();
        }
Пример #3
0
        static void Main(string[] args)
        {
            Bootstrapper.Configure();

            var logger = Veldrid.SceneGraph.Logging.LogManager.CreateLogger <Program>();

            var viewer = SimpleViewer.Create("Phong Shaded Dragon Scene Graph");

            viewer.SetCameraManipulator(TrackballManipulator.Create());

            var root = LightingExampleScene.Build();

            viewer.SetSceneData(root);
            viewer.ViewAll();
            viewer.Run();
        }
Пример #4
0
        static void Main(string[] args)
        {
            Bootstrapper.Configure();

            var logger = Veldrid.SceneGraph.Logging.LogManager.CreateLogger <Program>();

            var viewer = SimpleViewer.Create("Path Shape Example");

            viewer.SetCameraManipulator(TrackballManipulator.Create());

            // Build the path scene
            var root = PathExampleScene.Build();

            viewer.SetSceneData(root);
            viewer.ViewAll();
            viewer.Run();
        }
Пример #5
0
        static void Main(string[] args)
        {
            Bootstrapper.Configure();

            var viewer = SimpleViewer.Create("Text Rendering Demo");

            viewer.SetCameraManipulator(TrackballManipulator.Create());

            var root = Group.Create();

            var textNode = TextNode.Create("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor");

            var geode = Geode.Create();

            geode.AddDrawable(textNode);

            root.AddChild(geode);

            viewer.SetSceneData(root);

            viewer.ViewAll();
            viewer.Run();
        }
Пример #6
0
 internal PathExampleViewModel() : base()
 {
     SceneRoot         = Examples.Common.PathExampleScene.Build();
     CameraManipulator = TrackballManipulator.Create();
 }
 public LightingDemoViewModel() : base()
 {
     SceneRoot         = Examples.Common.LightingExampleScene.Build();
     CameraManipulator = TrackballManipulator.Create();
 }