public RenderSystem(PresentationParameters parameters) { Adapters = GraphicsAdapter.EnumerateGraphicsAdapter(); Device = new GraphicsDevice(Adapters[0]); SwapChain = new GraphicsSwapChain(parameters, Device); CommandList = new CommandList(Device); Texture = new Texture(Device, SwapChain); Shaders = new Shaders(Device, "Shaders/VertexShader.hlsl", "Shaders/PixelShader.hlsl"); Mesh = new Mesh(); VertexBuffer = new Buffer(Mesh.SizeInBytes, Mesh.Size, Device, ResourceInfo.VertexBuffer); IndexBuffer = new Buffer(Mesh.IndexSizeInBytes, Mesh.IndexSize, Device, ResourceInfo.IndexBuffer); ConstantBuffer = new Buffer(Utilities.SizeOf <Transform>(), Utilities.SizeOf <Transform>(), Device, ResourceInfo.ConstantBuffer); Camera = new Camera(CameraType.Static); Camera.SetLens((float)Math.PI / 4, 1.2f, 1.0f, 1000.0f); }
public void Draw() { Device.Reset(); VertexBuffer.Update <Vertex>(Mesh.Vertices); IndexBuffer.Update <int>(Mesh.Indices); CommandList.ClearDepthStencilView(Texture, DepthStencilClearFlags.Depth | DepthStencilClearFlags.Stencil); CommandList.SetRenderTargets(Texture); //Clear our backbuffer to the updated color CommandList.Clear(Texture, new Color4(0.0f, 0.2f, 0.4f, 1)); CommandList.SetInputLayout(Shaders.Layout); CommandList.SetViewPort(SwapChain.PresentParameters.Width, SwapChain.PresentParameters.Height, 0, 0); CommandList.SetVertexBuffer(VertexBuffer); CommandList.SetIndexBuffer(IndexBuffer); CommandList.SetVertexShader(Shaders.VertexShader); CommandList.SetPixelShader(Shaders.PixelShader); //---Draw Mesh CommandList.SetPrimitiveType(SharpDX.Direct3D.PrimitiveTopology.TriangleList); CommandList.DrawIndexed(Mesh.IndexCount); }
public RenderSystem(PresentationParameters parameters) { Adapters = GraphicsAdapter.EnumerateGraphicsAdapter(); Device = new GraphicsDevice(Adapters[0]); SwapChain = new GraphicsSwapChain(parameters, Device); CommandList = new CommandList(Device); Texture = new Texture(Device, SwapChain); Shaders = new Shaders(Device, "Shaders/VertexShader.hlsl", "Shaders/PixelShader.hlsl"); StateWireframe = new PipelineState(Device, FillMode.Wireframe, CullMode.None); StateSolid = new PipelineState(Device, FillMode.Solid, CullMode.None); Grid = new Grid(1, 1, 8, 8); VertexBuffer = new Buffer(Grid.SizeInBytes, Grid.Size, Device, ResourceInfo.VertexBuffer); IndexBuffer = new Buffer(Grid.IndexSizeInBytes, Grid.IndexSize, Device, ResourceInfo.IndexBuffer); ConstantBuffer = new Buffer(Utilities.SizeOf <Transform>(), Utilities.SizeOf <Transform>(), Device, ResourceInfo.ConstantBuffer); Camera = new Camera(CameraType.Static); Camera.Position = new Vector3(0.0f, 0.0f, -2.5f); Camera.SetLens((float)Math.PI / 4, 1.2f, 1.0f, 1000.0f); World = new Matrix[2]; }
public RenderSystem(PresentationParameters parameters) { parameter = parameters; Adapters = GraphicsAdapter.EnumerateGraphicsAdapter(); Device = new GraphicsDevice(Adapters[0]); SwapChain = new GraphicsSwapChain(parameters, Device); CommandList = new CommandList(Device); Texture = new Texture(Device, SwapChain); Shaders = new Shaders(Device, "Shaders/VertexShader.hlsl", "Shaders/PixelShader.hlsl"); StateSolid = new PipelineState(Device, FillMode.Solid, CullMode.None); Mesh = new Mesh("Models/suzanne.obj"); TextureAddressMode Wrap = TextureAddressMode.Wrap; SamplerState = new SamplerState(Device, Wrap, Wrap, Wrap, Filter.MinMagMipLinear); Camera = new Camera(); Camera.Position = new Vector3(0, 5, -33); Camera.SetLens((float)Math.PI / 4, 1.2f, 1.0f, 1000.0f); Grid = new Grid(30, 30, 2, 2); System.Drawing.Point LastMousePos = new System.Drawing.Point(); parameter.Con.MouseDown += (o, e) => { LastMousePos = e.Location; }; parameter.Con.MouseMove += (o, e) => { if (e.Button == MouseButtons.Middle) { Camera.Pitch((float)Math.PI * (0.25f * (e.Y - LastMousePos.Y)) / 180.0f); Camera.Yaw((float)Math.PI * (0.25f * (e.X - LastMousePos.X)) / 180.0f); LastMousePos = e.Location; } }; BuildRenderItems(); Input = new Input.Input(); Input.Initialize(parameter.Con); }
public RenderSystem(PresentationParameters parameters) { Adapters = GraphicsAdapter.EnumerateGraphicsAdapter(); Device = new GraphicsDevice(Adapters[0]); SwapChain = new GraphicsSwapChain(parameters, Device); CommandList = new CommandList(Device); Texture = new Texture(Device, SwapChain); Shaders = new Shaders(Device, "Shaders/VertexShader.hlsl", "Shaders/PixelShader.hlsl"); StateSolid = new PipelineState(Device, FillMode.Solid, CullMode.None); Mesh = new Mesh("Models/mitsuba-sphere.obj"); VertexBuffer = new Buffer[1]; IndexBuffer = new Buffer[1]; ConstantBuffer = new Buffer[2]; VertexBuffer[0] = new Buffer(Mesh.SizeInBytes, Mesh.Size, Device, ResourceInfo.VertexBuffer); IndexBuffer[0] = new Buffer(Mesh.IndexSizeInBytes, Mesh.IndexSize, Device, ResourceInfo.IndexBuffer); ConstantBuffer[0] = new Buffer(Utilities.SizeOf <Transform>(), Utilities.SizeOf <Transform>(), Device, ResourceInfo.ConstantBuffer); ConstantBuffer[1] = new Buffer(Utilities.SizeOf <LightBuffer>(), Utilities.SizeOf <LightBuffer>(), Device, ResourceInfo.ConstantBuffer); TextureAddressMode Wrap = TextureAddressMode.Wrap; SamplerState = new SamplerState(Device, Wrap, Wrap, Wrap, Filter.MinMagMipLinear); Camera = new Camera(CameraType.Static); Camera.Position = new Vector3(0.0f, 1.2f, -8.0f); Camera.SetLens((float)Math.PI / 4, 1.2f, 1.0f, 1000.0f); World = new Matrix[3]; Textures = new ShaderResourceView[3]; Textures[0] = Texture.LoadFromFile(Device, "Text/cracked_c.png"); Textures[1] = Texture.LoadFromFile(Device, "Text/mtl01_c.png"); Textures[2] = Texture.LoadFromFile(Device, "Text/wall_stone04_c2.png"); }
public RenderSystem(PresentationParameters parameters) { Adapters = GraphicsAdapter.EnumerateGraphicsAdapter(); Device = new GraphicsDevice(Adapters[0]); SwapChain = new GraphicsSwapChain(parameters, Device); CommandList = new CommandList(Device); Texture = new Texture(Device, SwapChain); }
public void Draw() { Device.Reset(); CommandList.ClearDepthStencilView(Texture, DepthStencilClearFlags.Depth | DepthStencilClearFlags.Stencil); CommandList.SetRenderTargets(Texture); //Clear our backbuffer to the updated color CommandList.Clear(Texture, new Color4(0.2f, 0.4f, 0.8f, 1.0f)); CommandList.SetInputLayout(Shaders.Layout); CommandList.SetViewPort(SwapChain.PresentParameters.Width, SwapChain.PresentParameters.Height, 0, 0); CommandList.SetVertexShader(Shaders.VertexShader); CommandList.SetPixelShader(Shaders.PixelShader); for (int i = 0; i < RMesh.Worlds.Count(); i++) { RMesh.VertexBuffer.Update <Vertex>(Mesh.Vertices.Data.ToArray()); RMesh.IndexBuffer.Update <int>(Mesh.Indices.Data.ToArray()); RMesh.ConstantBuffer[0].UpdateConstant <Transform>(ShaderType.VertexShader, 0, new Transform(RMesh.Worlds[i], Camera.View, Camera.Proj)); // cbuffer MatrixBuffer (W V P) : register(b0) RMesh.ConstantBuffer[1].UpdateConstant <LightBuffer>(ShaderType.PixelShader, 0, RMesh.Light); RMesh.ConstantBuffer[2].UpdateConstant <CameraBuffer>(ShaderType.VertexShader, 1, new CameraBuffer(Camera.Position)); CommandList.SetVertexBuffer(RMesh.VertexBuffer); CommandList.SetIndexBuffer(RMesh.IndexBuffer); CommandList.SetPrimitiveType(SharpDX.Direct3D.PrimitiveTopology.TriangleList); CommandList.SetRasterizerState(StateSolid); CommandList.SetSampler(ShaderType.PixelShader, SamplerState, 0); CommandList.SetShaderResource(ShaderType.PixelShader, RMesh.Texture, 0); CommandList.DrawIndexed(Mesh.Indices.Count); } RGrid.VertexBuffer.Update <Vertex>(Grid.Vertices.Data.ToArray()); RGrid.IndexBuffer.Update <int>(Grid.Indices.Data.ToArray()); RGrid.ConstantBuffer[0].UpdateConstant <Transform>(ShaderType.VertexShader, 0, new Transform(RGrid.Worlds[0], Camera.View, Camera.Proj)); // cbuffer MatrixBuffer (W V P) : register(b0) RGrid.ConstantBuffer[1].UpdateConstant <LightBuffer>(ShaderType.PixelShader, 0, RGrid.Light); RGrid.ConstantBuffer[2].UpdateConstant <CameraBuffer>(ShaderType.VertexShader, 1, new CameraBuffer(Camera.Position)); CommandList.SetVertexBuffer(RGrid.VertexBuffer); CommandList.SetIndexBuffer(RGrid.IndexBuffer); CommandList.SetPrimitiveType(SharpDX.Direct3D.PrimitiveTopology.TriangleList); CommandList.SetRasterizerState(StateSolid); CommandList.SetSampler(ShaderType.PixelShader, SamplerState, 0); CommandList.SetShaderResource(ShaderType.PixelShader, RGrid.Texture, 0); CommandList.DrawIndexed(Grid.Indices.Count); }
public RenderSystem(PresentationParameters parameters) { Adapters = GraphicsAdapter.EnumerateGraphicsAdapter(); Device = new GraphicsDevice(Adapters[0]); SwapChain = new GraphicsSwapChain(parameters, Device); CommandList = new CommandList(Device); Texture = new Texture(Device, SwapChain); Shaders = new Shaders(Device, "Shaders/VertexShader.hlsl", "Shaders/PixelShader.hlsl"); StateWireframe = new PipelineState(Device, FillMode.Wireframe, CullMode.None); StateSolid = new PipelineState(Device, FillMode.Solid, CullMode.None); Grid = new Grid(1, 1, 8, 8); Mesh = new Mesh("suzanne.obj"); VertexBuffer = new Buffer[2]; IndexBuffer = new Buffer[2]; VertexBuffer[0] = new Buffer(Grid.SizeInBytes, Grid.Size, Device, ResourceInfo.VertexBuffer); IndexBuffer[0] = new Buffer(Grid.IndexSizeInBytes, Grid.IndexSize, Device, ResourceInfo.IndexBuffer); VertexBuffer[1] = new Buffer(Mesh.SizeInBytes, Mesh.Size, Device, ResourceInfo.VertexBuffer); IndexBuffer[1] = new Buffer(Mesh.IndexSizeInBytes, Mesh.IndexSize, Device, ResourceInfo.IndexBuffer); ConstantBuffer = new Buffer(Utilities.SizeOf <Transform>(), Utilities.SizeOf <Transform>(), Device, ResourceInfo.ConstantBuffer); TextureAddressMode Wrap = TextureAddressMode.Wrap; SamplerState = new SamplerState(Device, Wrap, Wrap, Wrap, Filter.MinMagMipLinear); Camera = new Camera(CameraType.Static); Camera.Position = new Vector3(0.0f, 0.15f, -1.5f); Camera.SetLens((float)Math.PI / 4, 1.2f, 1.0f, 1000.0f); World = new Matrix[2]; Textures = new ShaderResourceView[2]; Textures[0] = Texture.LoadFromFile(Device, "Text/UV_Grid_Sm.jpg"); Textures[1] = Texture.LoadFromFile(Device, "Text/UV_Grid_Lrg.jpg"); }
public void Draw() { Device.Reset(); VertexBuffer[0].Update <Vertex>(Grid.Vertices.ToArray()); IndexBuffer[0].Update <int>(Grid.Indices.ToArray()); VertexBuffer[1].Update <Vertex>(Mesh.Vertices.ToArray()); IndexBuffer[1].Update <int>(Mesh.Indices.ToArray()); CommandList.ClearDepthStencilView(Texture, DepthStencilClearFlags.Depth | DepthStencilClearFlags.Stencil); CommandList.SetRenderTargets(Texture); //Clear our backbuffer to the updated color CommandList.Clear(Texture, new Color4(0.0f, 0.2f, 0.4f, 1)); CommandList.SetInputLayout(Shaders.Layout); CommandList.SetViewPort(SwapChain.PresentParameters.Width, SwapChain.PresentParameters.Height, 0, 0); CommandList.SetVertexShader(Shaders.VertexShader); CommandList.SetPixelShader(Shaders.PixelShader); //---Draw Grid #2 CommandList.SetVertexBuffer(VertexBuffer[0]); CommandList.SetIndexBuffer(IndexBuffer[0]); ConstantBuffer.UpdateConstant <Transform>(ShaderType.VertexShader, 0, new Transform(World[0], Camera.View, Camera.Projection)); // cbuffer MatrixBuffer (W V P) : register(b0) CommandList.SetPrimitiveType(SharpDX.Direct3D.PrimitiveTopology.TriangleList); CommandList.SetRasterizerState(StateSolid); CommandList.SetSampler(ShaderType.PixelShader, SamplerState, 0); CommandList.SetShaderResource(ShaderType.PixelShader, Textures[0], 0); CommandList.DrawIndexed(Grid.IndexCount); //---Draw Grid #2 CommandList.SetVertexBuffer(VertexBuffer[1]); CommandList.SetIndexBuffer(IndexBuffer[1]); ConstantBuffer.UpdateConstant <Transform>(ShaderType.VertexShader, 0, new Transform(World[1], Camera.View, Camera.Projection)); // cbuffer MatrixBuffer (W V P) : register(b0) CommandList.SetPrimitiveType(SharpDX.Direct3D.PrimitiveTopology.TriangleList); CommandList.SetRasterizerState(StateWireframe); CommandList.SetSampler(ShaderType.PixelShader, SamplerState, 0); CommandList.SetShaderResource(ShaderType.PixelShader, Textures[1], 0); CommandList.DrawIndexed(Mesh.IndexCount); }
public RenderSystem(PresentationParameters parameters) { Adapters = GraphicsAdapter.EnumerateGraphicsAdapter(); Device = new GraphicsDevice(Adapters[0]); SwapChain = new GraphicsSwapChain(parameters, Device); CommandList = new CommandList(Device); Texture = new Texture(Device, SwapChain); Shaders = new Shaders(Device, "Shaders/VertexShader.hlsl", "Shaders/PixelShader.hlsl"); Triangle = new Mesh(); VertexBuffer = new Buffer(Triangle.SizeInBytes, Triangle.Size, Device, ResourceInfo.VertexBuffer()); }
public void Draw() { //Clear our backbuffer to the updated color CommandList.Clear(Texture, new Color4(0.0f, 0.2f, 0.4f, 1)); }