public RenderTargetBinding(RenderTarget3D renderTarget) { if (renderTarget == null) { throw new ArgumentNullException("renderTarget"); } _renderTarget = renderTarget; _arraySlice = 0; }
public RenderTargetBinding(RenderTarget3D renderTarget, int arraySlice) { if (renderTarget == null) { throw new ArgumentNullException("renderTarget"); } if (arraySlice < 0 || arraySlice >= renderTarget.Depth) { throw new ArgumentOutOfRangeException("arraySlice"); } _renderTarget = renderTarget; _arraySlice = arraySlice; }
public Atmosphere() { GraphicsDevice device = Engine.GraphicsContext.Device; transmittanceT = RenderTarget2D.New(device, TRANSMITTANCE_W, TRANSMITTANCE_H, PixelFormat.R16G16B16A16.Float); irradianceT = RenderTarget2D.New(device, SKY_W, SKY_H, PixelFormat.R16G16B16A16.Float); inscatterT = RenderTarget3D.New(device, RES_MU_S * RES_NU, RES_MU, RES_R, PixelFormat.R16G16B16A16.Float); deltaET = RenderTarget2D.New(device, SKY_W, SKY_H, PixelFormat.R16G16B16A16.Float); deltaSRT = RenderTarget3D.New(device, RES_MU_S * RES_NU, RES_MU, RES_R, PixelFormat.R16G16B16A16.Float); deltaSMT = RenderTarget3D.New(device, RES_MU_S * RES_NU, RES_MU, RES_R, PixelFormat.R16G16B16A16.Float); deltaJT = RenderTarget3D.New(device, RES_MU_S * RES_NU, RES_MU, RES_R, PixelFormat.R16G16B16A16.Float); atmosphere = EffectLoader.Load(@"World/Atmosphere/Shaders/atmosphere.fx"); copyInscatter1 = EffectLoader.Load(@"World/Atmosphere/Shaders/copyInscatter1.fx"); copyInscatterN = EffectLoader.Load(@"World/Atmosphere/Shaders/copyInscatterN.fx"); copyIrradiance = EffectLoader.Load(@"World/Atmosphere/Shaders/copyIrradiance.fx"); inscatter1 = EffectLoader.Load(@"World/Atmosphere/Shaders/inscatter1.fx"); inscatterN = EffectLoader.Load(@"World/Atmosphere/Shaders/inscatterN.fx"); inscatterS = EffectLoader.Load(@"World/Atmosphere/Shaders/inscatterS.fx"); irradiance1 = EffectLoader.Load(@"World/Atmosphere/Shaders/irradiance1.fx"); irradianceN = EffectLoader.Load(@"World/Atmosphere/Shaders/irradianceN.fx"); transmittance = EffectLoader.Load(@"World/Atmosphere/Shaders/transmittance.fx"); QuadVert[] verts = new QuadVert[6] { new QuadVert(-1, -1, 0), new QuadVert(-1, 1, 0), new QuadVert(1, 1, 0), new QuadVert(1, 1, 0), new QuadVert(1, -1, 0), new QuadVert(-1, -1, 0) }; vb = SharpDX.Toolkit.Graphics.Buffer.New <QuadVert>(device, verts, BufferFlags.VertexBuffer); PreProcess(); }