private void DrawTransparent() {
var effect = DeviceContextHolder.GetEffect<EffectDeferredGObject>();
effect.FxReflectionCubemap.SetResource(_reflectionCubemap.View);
effect.FxEyePosW.Set(Camera.Position);
DeviceContext.OutputMerger.SetTargets(_gDepthBuffer.DepthView, _temporaryBuffer1.TargetView);
DeviceContext.OutputMerger.BlendState = DeviceContextHolder.TransparentBlendState;
Scene.Draw(DeviceContextHolder, Camera, SpecialRenderMode.DeferredTransparentDepth);
DeviceContext.OutputMerger.DepthStencilState = DeviceContextHolder.ReadOnlyDepthState;
Scene.Draw(DeviceContextHolder, Camera, SpecialRenderMode.DeferredTransparentForw);
DeviceContext.OutputMerger.DepthStencilState = null;
DeviceContext.OutputMerger.BlendState = null;
DeviceContext.OutputMerger.SetTargets(_gDepthBuffer.DepthView, _gBufferBase.TargetView, _gBufferNormal.TargetView, _gBufferMaps.TargetView);
DeviceContext.OutputMerger.DepthStencilState = DeviceContextHolder.LessEqualDepthState;
Scene.Draw(DeviceContextHolder, Camera, SpecialRenderMode.DeferredTransparentDef);
DrawLights(_temporaryBuffer0);
if (UseLocalReflections) DrawReflections(_temporaryBuffer3, BlurLocalReflections ? _temporaryBuffer2 : null, _temporaryBuffer0);
CombineResult(_temporaryBuffer2, _temporaryBuffer0, UseLocalReflections ? _temporaryBuffer3 : null, _temporaryBuffer1);
}