Пример #1
0
 private void InitRenderer()
 {
     //create a default camera, because it's required during the viewport's creation.
     camera = new Camera();
     Scene.RootNode.CreateChildNode("camera", camera);
     //create the renderer and render window from window's native handle
     renderer = Renderer.CreateRenderer();
     renderer.RegisterEntityRenderer(new LinesRenderer());
     renderer.RegisterEntityRenderer(new BackgroundRenderer());
     renderer.RegisterEntityRenderer(normalRenderer = new NormalRenderer());
     //Right now we only support native window handle from Microsoft Windows
     //we'll support more platform on user's demand.
     window = renderer.RenderFactory.CreateRenderWindow(new RenderParameters(), Handle);
     //renderer.ShaderSet = CreateDepthShader();
     //create 4 viewports, the viewport's area is meanless here because we'll change it to the right area in the SetViewports later
     viewports = new[]
     {
         window.CreateViewport(camera, Color.Gray, RelativeRectangle.FromScale(0, 0, 1, 1)),
         window.CreateViewport(camera, Color.Gray, RelativeRectangle.FromScale(0, 0, 1, 1)),
         window.CreateViewport(camera, Color.Gray, RelativeRectangle.FromScale(0, 0, 1, 1)),
         window.CreateViewport(camera, Color.Gray, RelativeRectangle.FromScale(0, 0, 1, 1))
     };
     SetViewports(1);
     SelectedViewport = viewports[0];
 }
Пример #2
0
        private void InitRenderer()
        {
            //create a default camera, because it's required during the viewport's creation.
            camera = new Camera();
            Scene.RootNode.CreateChildNode("camera", camera);
            //create the renderer and render window from window's native handle
            renderer = Renderer.CreateRenderer();
            //Right now we only support native window handle from Microsoft Windows
            //we'll support more platform on user's demand.
            window = renderer.RenderFactory.CreateRenderWindow(new RenderParameters(), Handle);
            //create 4 viewports, the viewport's area is meanless here because we'll change it to the right area in the SetViewports later
            viewports = new[]
            {
                window.CreateViewport(camera, Color.Gray, RelativeRectangle.FromScale(0, 0, 1, 1)),
                window.CreateViewport(camera, Color.Gray, RelativeRectangle.FromScale(0, 0, 1, 1)),
                window.CreateViewport(camera, Color.Gray, RelativeRectangle.FromScale(0, 0, 1, 1)),
                window.CreateViewport(camera, Color.Gray, RelativeRectangle.FromScale(0, 0, 1, 1))
            };
            SetViewports(1);


            //initialize shader for grid

            GLSLSource src = new GLSLSource();

            src.VertexShader   = @"#version 330 core
layout (location = 0) in vec3 position;
uniform mat4 matWorldViewProj;
void main()
{
    gl_Position = matWorldViewProj * vec4(position, 1.0f);
}";
            src.FragmentShader = @"#version 330 core
out vec4 color;
void main()
{
    color = vec4(1, 1, 1, 1);
}";
            //define the input format used by GLSL vertex shader
            //the format is
            // struct ControlPoint {
            //    FVector3 Position;
            //}
            VertexDeclaration fd = new VertexDeclaration();

            fd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.Position);
            //compile shader from GLSL source code and specify the vertex input format
            gridShader = renderer.RenderFactory.CreateShaderProgram(src, fd);
            //connect GLSL uniform to renderer's internal variable
            gridShader.Variables = new ShaderVariable[]
            {
                new ShaderVariable("matWorldViewProj", VariableSemantic.MatrixWorldViewProj)
            };

            SceneUpdated("");
        }
Пример #3
0
        //ExStart:RenderView
        private void InitRenderer()
        {
            // Create a default camera, because it's required during the viewport's creation.
            camera = new Camera();
            Scene.RootNode.CreateChildNode("camera", camera);
            // Create the renderer and render window from window's native handle
            renderer = Renderer.CreateRenderer();
            // Right now we only support native window handle from Microsoft Windows
            // We'll support more platform on user's demand.
            window = renderer.RenderFactory.CreateRenderWindow(new RenderParameters(), Handle);
            // Create 4 viewports, the viewport's area is meanless here because we'll change it to the right area in the SetViewports later
            viewports = new[]
            {
                window.CreateViewport(camera, Color.Gray, RelativeRectangle.FromScale(0, 0, 1, 1)),
                window.CreateViewport(camera, Color.Gray, RelativeRectangle.FromScale(0, 0, 1, 1)),
                window.CreateViewport(camera, Color.Gray, RelativeRectangle.FromScale(0, 0, 1, 1)),
                window.CreateViewport(camera, Color.Gray, RelativeRectangle.FromScale(0, 0, 1, 1))
            };
            SetViewports(1);


            //initialize shader for grid

            GLSLSource src = new GLSLSource();
            src.VertexShader = @"#version 330 core
            layout (location = 0) in vec3 position;
            uniform mat4 matWorldViewProj;
            void main()
            {
                gl_Position = matWorldViewProj * vec4(position, 1.0f);
            }";
                        src.FragmentShader = @"#version 330 core
            out vec4 color;
            void main()
            {
                color = vec4(1, 1, 1, 1);
            }";
            // Define the input format used by GLSL vertex shader the format is struct ControlPoint { FVector3 Position;}
            VertexDeclaration fd = new VertexDeclaration();
            fd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.Position);
            // Compile shader from GLSL source code and specify the vertex input format
            gridShader = renderer.RenderFactory.CreateShaderProgram(src, fd);
            // Connect GLSL uniform to renderer's internal variable
            gridShader.Variables = new ShaderVariable[]
            {
                new ShaderVariable("matWorldViewProj", VariableSemantic.MatrixWorldViewProj)
            };

            SceneUpdated("");
        }