示例#1
0
 public override void Dispose()
 {
     _effect = null;
     DisposeHelper.Dispose(ref _sphere);
     DisposeHelper.Dispose(ref _rasterizer);
     DisposeHelper.Dispose(ref _depth);
 }
示例#2
0
 public override void OnInitialize(DeviceContextHolder holder)
 {
     _effect     = holder.GetEffect <EffectDeferredLight>();
     _sphere     = SphereObject.Create(Radius);
     _rasterizer = RasterizerState.FromDescription(holder.Device, new RasterizerStateDescription {
         CullMode                 = CullMode.Front,
         FillMode                 = FillMode.Solid,
         IsDepthClipEnabled       = true,
         IsAntialiasedLineEnabled = false
     });
     _depth = DepthStencilState.FromDescription(holder.Device, new DepthStencilStateDescription {
         DepthComparison  = Comparison.Greater,
         IsDepthEnabled   = true,
         IsStencilEnabled = false,
         DepthWriteMask   = DepthWriteMask.Zero
     });
 }
        protected override void InitializeInner()
        {
            _deferredLighting = DeviceContextHolder.GetEffect <EffectDeferredLight>();
            _deferredResult   = DeviceContextHolder.GetEffect <EffectDeferredResult>();
            _ppBasic          = DeviceContextHolder.GetEffect <EffectPpBasic>();

            _gDepthBuffer  = TargetResourceDepthTexture.Create();
            _gBufferBase   = TargetResourceTexture.Create(Format.R16G16B16A16_Float);
            _gBufferNormal = TargetResourceTexture.Create(Format.R32G32B32A32_Float);
            _gBufferMaps   = TargetResourceTexture.Create(Format.R8G8B8A8_UNorm);

            _temporaryDepthBuffer = TargetResourceDepthTexture.Create();
            _temporaryBuffer0     = TargetResourceTexture.Create(Format.R16G16B16A16_Float);
            _temporaryBuffer1     = TargetResourceTexture.Create(Format.R16G16B16A16_Float);
            _temporaryBuffer2     = TargetResourceTexture.Create(Format.R16G16B16A16_Float);
            _temporaryBuffer3     = TargetResourceTexture.Create(Format.R16G16B16A16_Float);
            _outputBuffer         = TargetResourceTexture.Create(Format.R8G8B8A8_UNorm);

            _reflectionCubemap = new ReflectionCubemap(1024);
            _reflectionCubemap.Initialize(DeviceContextHolder);

            _sunShadows = new ShadowsDirectional(2048);
            _sunShadows.Initialize(DeviceContextHolder);
        }
示例#4
0
 public override void Dispose()
 {
     _effect = null;
 }
示例#5
0
 public override void OnInitialize(DeviceContextHolder holder)
 {
     _effect = holder.GetEffect <EffectDeferredLight>();
 }