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]; }
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(""); }
//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(""); }