public void Draw(IDeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { contextHolder.DeviceContext.InputAssembler.InputLayout = _bonesMode ? _effect.LayoutPNTGW4B : _effect.LayoutPNTG; GetTechnique(mode).DrawAllPasses(contextHolder.DeviceContext, indices); contextHolder.DeviceContext.OutputMerger.BlendState = null; contextHolder.DeviceContext.OutputMerger.DepthStencilState = null; }
public bool Prepare(DeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.Deferred && mode != SpecialRenderMode.Reflection) return false; _effect.FxSkyDown.Set(SkyColorLower); _effect.FxSkyRange.Set(SkyColorUpper - SkyColorLower); return true; }
public bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode == SpecialRenderMode.DeferredTransparentMask) { return(IsBlending); } if (mode == SpecialRenderMode.Reflection) { _effect.FxDiffuseMap.SetResource(_txDiffuse); _effect.FxNormalMap.SetResource(_txNormal); _effect.FxMaterial.Set(_material); } else { if ((mode == SpecialRenderMode.DeferredTransparentForw || mode == SpecialRenderMode.DeferredTransparentDepth || mode == SpecialRenderMode.DeferredTransparentDef) && !IsBlending) { return(false); } _effect.FxMaterial.Set(_material); _effect.FxDiffuseMap.SetResource(_txDiffuse); _effect.FxNormalMap.SetResource(_txNormal); _effect.FxDetailsMap.SetResource(_txDetails); _effect.FxDetailsNormalMap.SetResource(_txDetailsNormal); _effect.FxMapsMap.SetResource(_txMaps); } contextHolder.DeviceContext.InputAssembler.InputLayout = _effect.LayoutPNTG; return(true); }
public override void Draw(IDeviceContextHolder holder, ICamera camera, SpecialRenderMode mode, Func <IRenderableObject, bool> filter = null) { if (mode == SpecialRenderMode.SimpleTransparent) { base.Draw(holder, camera, mode, filter); } }
public virtual void Draw(IDeviceContextHolder contextHolder, ICamera camera, SpecialRenderMode mode, Func <IRenderableObject, bool> filter = null) { if (!IsEnabled || filter?.Invoke(this) == false) { return; } if (mode == SpecialRenderMode.Reflection && !IsReflectable) { return; } if (camera != null && BoundingBox != null && !camera.Visible(BoundingBox.Value)) { return; } UpdateLookAt(); var c = Count; for (var i = 0; i < c; i++) { var child = this[i]; if (child.IsEnabled) { child.Draw(contextHolder, camera, mode, filter); } } }
public void Draw(IDeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { if (mode == SpecialRenderMode.DeferredTransparentMask || mode == SpecialRenderMode.Shadow) { _effect.TechTransparentMask.DrawAllPasses(contextHolder.DeviceContext, indices); Drawed++; return; } if (IsBlending) { if (mode == SpecialRenderMode.DeferredTransparentForw || mode == SpecialRenderMode.DeferredTransparentDepth) { _effect.TechTransparentForward.DrawAllPasses(contextHolder.DeviceContext, indices); Drawed++; } else if (mode == SpecialRenderMode.DeferredTransparentDef) { _effect.TechTransparentDeferred.DrawAllPasses(contextHolder.DeviceContext, indices); Drawed++; } return; } if (mode == SpecialRenderMode.DeferredTransparentForw || mode == SpecialRenderMode.DeferredTransparentDepth || mode == SpecialRenderMode.DeferredTransparentDef) { return; } (mode == SpecialRenderMode.Deferred ? _effect.TechStandardDeferred : _effect.TechStandardForward) .DrawAllPasses(contextHolder.DeviceContext, indices); Drawed++; }
public void Draw(IDeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { _effect.TechMain.DrawAllPasses(contextHolder.DeviceContext, indices); contextHolder.DeviceContext.OutputMerger.BlendState = null; contextHolder.DeviceContext.OutputMerger.DepthStencilState = null; contextHolder.DeviceContext.Rasterizer.State = null; }
protected void PrepareStates(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { SetInputLayout(contextHolder); if (mode == SpecialRenderMode.GBuffer) { return; } contextHolder.DeviceContext.OutputMerger.BlendState = IsBlending ? contextHolder.States.TransparentBlendState : null; if (mode == SpecialRenderMode.SimpleTransparent || mode == SpecialRenderMode.Outline) { return; } switch (Kn5Material.DepthMode) { case Kn5MaterialDepthMode.DepthNormal: contextHolder.DeviceContext.OutputMerger.DepthStencilState = null; break; case Kn5MaterialDepthMode.DepthNoWrite: contextHolder.DeviceContext.OutputMerger.DepthStencilState = contextHolder.States.ReadOnlyDepthState; break; case Kn5MaterialDepthMode.DepthOff: contextHolder.DeviceContext.OutputMerger.DepthStencilState = contextHolder.States.DisabledDepthState; break; default: throw new ArgumentOutOfRangeException(); } }
public override void Draw(IDeviceContextHolder holder, ICamera camera, SpecialRenderMode mode, Func <IRenderableObject, bool> filter = null) { if (mode != SpecialRenderMode.Simple && mode != SpecialRenderMode.SimpleTransparent && mode != SpecialRenderMode.GBuffer) { return; } _object.Draw(holder, camera, mode, filter); }
public override bool Prepare(DeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.SimpleTransparent && mode != SpecialRenderMode.Simple && mode != SpecialRenderMode.Outline) return false; Effect.FxMaterial.Set(_material); Effect.FxDiffuseMap.SetResource(_txDiffuse); PrepareStates(contextHolder, mode); return true; }
public bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (!mode.HasFlag(SpecialRenderMode.Simple)) { return(false); } contextHolder.DeviceContext.InputAssembler.InputLayout = _effect.LayoutPNTG; return(true); }
public virtual bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.SimpleTransparent && mode != SpecialRenderMode.Simple && mode != SpecialRenderMode.Outline) { return(false); } PrepareStates(contextHolder, mode); return(true); }
public bool Prepare(DeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.Deferred) return false; _effect.FxDiffuseMap.SetResource(_txDiffuse); contextHolder.DeviceContext.InputAssembler.InputLayout = _effect.LayoutPT; contextHolder.DeviceContext.OutputMerger.BlendState = contextHolder.TransparentBlendState; contextHolder.DeviceContext.OutputMerger.DepthStencilState = contextHolder.LessEqualReadOnlyDepthState; return true; }
public virtual bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.Simple && mode != SpecialRenderMode.GBuffer) { return(false); } contextHolder.DeviceContext.InputAssembler.InputLayout = Effect.LayoutPT; return(true); }
public virtual bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if ((mode & _mode) == 0) { return(false); } PrepareStates(contextHolder, mode); return(true); }
public override bool Prepare(DeviceContextHolder contextHolder, SpecialRenderMode mode) { if (!base.Prepare(contextHolder, mode)) return false; Effect.FxMapsMaterial.Set(_material); Effect.FxNormalMap.SetResource(_txNormal); Effect.FxDetailsMap.SetResource(_txDetails); Effect.FxDetailsNormalMap.SetResource(_txDetailsNormal); Effect.FxMapsMap.SetResource(_txMaps); return true; }
public bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.Simple) { return(false); } contextHolder.DeviceContext.InputAssembler.InputLayout = _effect.LayoutPNTG; contextHolder.DeviceContext.OutputMerger.BlendState = IsBlending ? contextHolder.States.TransparentBlendState : null; return(true); }
public override void Draw(IDeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { if (_debugReflectionsMode) { _debugReflections.TechMain.DrawAllPasses(contextHolder.DeviceContext, indices); return; } base.Draw(contextHolder, indices, mode); }
public override bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (!base.Prepare(contextHolder, mode)) { return(false); } Effect.FxAlphaMaterial.Set(_material); return(true); }
public void Draw(DeviceContextHolder contextHolder, ICamera camera, SpecialRenderMode mode) { if (!IsEnabled || mode == SpecialRenderMode.Reflection && !IsReflectable) return; if (!_initialized) { Initialize(contextHolder); _initialized = true; } DrawInner(contextHolder, camera, mode); }
public override bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (!base.Prepare(contextHolder, mode)) { return(false); } Effect.FxNormalMap.SetResource(_txNormal); return(true); }
public override bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (!base.Prepare(contextHolder, mode)) { return(false); } contextHolder.DeviceContext.OutputMerger.BlendState = contextHolder.States.TransparentBlendState; contextHolder.DeviceContext.OutputMerger.DepthStencilState = contextHolder.States.DisabledDepthState; return(true); }
public void Draw(DeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { contextHolder.DeviceContext.Rasterizer.State = _rasterizerState; if (mode == SpecialRenderMode.Deferred) { _effect.TechSkyDeferred.DrawAllPasses(contextHolder.DeviceContext, indices); } else if (mode == SpecialRenderMode.Reflection) { _effect.TechSkyForward.DrawAllPasses(contextHolder.DeviceContext, indices); } contextHolder.DeviceContext.Rasterizer.State = null; }
public bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.Deferred && mode != SpecialRenderMode.Reflection) { return(false); } _effect.FxSkyDown.Set(SkyColorLower); _effect.FxSkyRange.Set(SkyColorUpper - SkyColorLower); return(true); }
public override bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (!AllowedFlags.HasFlag(mode)) { return(false); } Effect.FxMaterial.Set(Material); Effect.FxDiffuseMap.SetResource(TxDiffuse); PrepareStates(contextHolder, mode); return(true); }
public bool Prepare(DeviceContextHolder contextHolder, SpecialRenderMode mode) { switch (mode) { case SpecialRenderMode.Deferred: case SpecialRenderMode.Reflection: case SpecialRenderMode.Shadow: contextHolder.DeviceContext.InputAssembler.InputLayout = _effect.LayoutPNTG; return true; default: return false; } }
public bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.Deferred) { return(false); } _effect.FxDiffuseMap.SetResource(_txDiffuse); contextHolder.DeviceContext.InputAssembler.InputLayout = _effect.LayoutPT; contextHolder.DeviceContext.OutputMerger.BlendState = contextHolder.States.TransparentBlendState; contextHolder.DeviceContext.OutputMerger.DepthStencilState = contextHolder.States.LessEqualReadOnlyDepthState; return(true); }
public void Draw(IDeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { _effect.FxOverrideColor.Set(mode == SpecialRenderMode.Outline); if (mode == SpecialRenderMode.Outline) { _effect.FxCustomColor.Set(new Vector4(1f)); } _effect.TechMain.DrawAllPasses(contextHolder.DeviceContext, indices); contextHolder.DeviceContext.OutputMerger.BlendState = null; contextHolder.DeviceContext.OutputMerger.DepthStencilState = null; contextHolder.DeviceContext.Rasterizer.State = null; }
public override bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (!base.Prepare(contextHolder, mode)) { return(false); } Effect.FxNormalMap.SetResource(_txNormal); Effect.FxDiffuseBlurMap.SetResource(_txDiffuseBlur); Effect.FxNormalBlurMap.SetResource(_txNormalBlur); Effect.FxTyresMaterial.Set(_material); return(true); }
public override bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.SimpleTransparent && mode != SpecialRenderMode.Simple && mode != SpecialRenderMode.Outline) { return(false); } Effect.FxMaterial.Set(_material); Effect.FxDiffuseMap.SetResource(_txDiffuse); PrepareStates(contextHolder, mode); return(true); }
public bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.Simple && mode != SpecialRenderMode.Outline) { return(false); } contextHolder.DeviceContext.InputAssembler.InputLayout = _effect.LayoutPC; contextHolder.DeviceContext.OutputMerger.BlendState = contextHolder.States.TransparentBlendState; contextHolder.DeviceContext.OutputMerger.DepthStencilState = contextHolder.States.DisabledDepthState; contextHolder.DeviceContext.Rasterizer.State = contextHolder.States.DoubleSidedSmoothLinesState; return(true); }
public bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { switch (mode) { case SpecialRenderMode.Deferred: case SpecialRenderMode.Reflection: case SpecialRenderMode.Shadow: contextHolder.DeviceContext.InputAssembler.InputLayout = _effect.LayoutPNTG; return(true); default: return(false); } }
public bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.SimpleTransparent && mode != SpecialRenderMode.Simple && mode != SpecialRenderMode.Outline && mode != SpecialRenderMode.Reflection && mode != SpecialRenderMode.Shadow && mode != SpecialRenderMode.GBuffer) { return(false); } _bonesMode = false; PrepareStates(contextHolder, mode); _effect.FxMaterial.Set(_material); _effect.FxDiffuseMap.SetResource(_txDiffuse); _effect.FxNormalMap.SetResource(_txNormal); return(true); }
public void Draw(IDeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { if (GrassPass) { _effect.TechPerPixel_GrassPass.DrawAllPasses(contextHolder.DeviceContext, indices); } else if (_multilayer) { (SecondPass ? _effect.TechMultiLayer_SecondPass : _effect.TechMultiLayer).DrawAllPasses(contextHolder.DeviceContext, indices); } else { (SecondPass ? _effect.TechPerPixel_SecondPass :_effect.TechPerPixel).DrawAllPasses(contextHolder.DeviceContext, indices); } }
public void Draw(IDeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { contextHolder.DeviceContext.Rasterizer.State = _rasterizerState; if (mode == SpecialRenderMode.Deferred) { _effect.TechSkyDeferred.DrawAllPasses(contextHolder.DeviceContext, indices); } else if (mode == SpecialRenderMode.Reflection) { _effect.TechSkyForward.DrawAllPasses(contextHolder.DeviceContext, indices); } contextHolder.DeviceContext.Rasterizer.State = null; }
public void Draw(DeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { switch (mode) { case SpecialRenderMode.Deferred: _effect.TechSpecialGlDeferred.DrawAllPasses(contextHolder.DeviceContext, indices); break; case SpecialRenderMode.Reflection: _effect.TechSpecialGlForward.DrawAllPasses(contextHolder.DeviceContext, indices); break; case SpecialRenderMode.Shadow: _effect.TechSpecialGlMask.DrawAllPasses(contextHolder.DeviceContext, indices); break; } }
public virtual void Draw(IDeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { if (mode == SpecialRenderMode.Shadow) { DrawShadow(contextHolder, indices); } else if (mode == SpecialRenderMode.GBuffer) { DrawGBuffer(contextHolder, indices); } else { DrawMain(contextHolder, indices); } }
public override bool Prepare(IDeviceContextHolder contextHolder, SpecialRenderMode mode) { if (!base.Prepare(contextHolder, mode)) { return(false); } Effect.FxNormalMap.SetResource(_txNormal); if (Kn5Material.GetPropertyValueAByName("nmObjectSpace") != 0) { Flags |= EffectDarkMaterial.NmObjectSpace; } return(true); }
protected void PrepareStates(DeviceContextHolder contextHolder, SpecialRenderMode mode) { contextHolder.DeviceContext.InputAssembler.InputLayout = Effect.LayoutPNTG; contextHolder.DeviceContext.OutputMerger.BlendState = IsBlending ? contextHolder.TransparentBlendState : null; if (mode == SpecialRenderMode.SimpleTransparent || mode == SpecialRenderMode.Outline) return; switch (Kn5Material.DepthMode) { case Kn5MaterialDepthMode.DepthNormal: contextHolder.DeviceContext.OutputMerger.DepthStencilState = null; break; case Kn5MaterialDepthMode.DepthNoWrite: contextHolder.DeviceContext.OutputMerger.DepthStencilState = contextHolder.ReadOnlyDepthState; break; case Kn5MaterialDepthMode.DepthOff: contextHolder.DeviceContext.OutputMerger.DepthStencilState = contextHolder.DisabledDepthState; break; default: throw new ArgumentOutOfRangeException(); } }
public bool Prepare(DeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.Simple) return false; contextHolder.DeviceContext.InputAssembler.InputLayout = _effect.LayoutPNTG; contextHolder.DeviceContext.OutputMerger.BlendState = IsBlending ? contextHolder.TransparentBlendState : null; return true; }
public void Draw(DeviceContextHolder contextHolder, ICamera camera, SpecialRenderMode mode, Func<IRenderableObject, bool> filter) { if (!filter(this)) return; Draw(contextHolder, camera, mode); }
public virtual void Draw(DeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { Effect.TechStandard.DrawAllPasses(contextHolder.DeviceContext, indices); }
public void Draw(DeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { _effect.TechAmbientShadowDeferred.DrawAllPasses(contextHolder.DeviceContext, indices); contextHolder.DeviceContext.OutputMerger.BlendState = null; contextHolder.DeviceContext.OutputMerger.DepthStencilState = null; }
protected abstract void DrawInner(DeviceContextHolder contextHolder, ICamera camera, SpecialRenderMode mode);
public bool Prepare(DeviceContextHolder contextHolder, SpecialRenderMode mode) { if (!mode.HasFlag(SpecialRenderMode.Simple)) return false; contextHolder.DeviceContext.InputAssembler.InputLayout = _effect.LayoutPNTG; return true; }
public bool Prepare(DeviceContextHolder contextHolder, SpecialRenderMode mode) => false;
public override bool Prepare(DeviceContextHolder contextHolder, SpecialRenderMode mode) { if (!base.Prepare(contextHolder, mode)) return false; Effect.FxNmUvMultMaterial.Set(_material); return true; }
public override void Draw(DeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { Effect.TechNmUvMult.DrawAllPasses(contextHolder.DeviceContext, indices); }
public void Draw(DeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) {}
public virtual bool Prepare(DeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode != SpecialRenderMode.SimpleTransparent && mode != SpecialRenderMode.Simple && mode != SpecialRenderMode.Outline) return false; PrepareStates(contextHolder, mode); return true; }
public void Draw(DeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { _effect.TechMain.DrawAllPasses(contextHolder.DeviceContext, indices); }
public bool Prepare(DeviceContextHolder contextHolder, SpecialRenderMode mode) { if (mode == SpecialRenderMode.DeferredTransparentMask) return IsBlending; if (mode == SpecialRenderMode.Reflection) { _effect.FxDiffuseMap.SetResource(_txDiffuse); _effect.FxNormalMap.SetResource(_txNormal); _effect.FxMaterial.Set(_material); } else { if ((mode == SpecialRenderMode.DeferredTransparentForw || mode == SpecialRenderMode.DeferredTransparentDepth || mode == SpecialRenderMode.DeferredTransparentDef) && !IsBlending) return false; _effect.FxMaterial.Set(_material); _effect.FxDiffuseMap.SetResource(_txDiffuse); _effect.FxNormalMap.SetResource(_txNormal); _effect.FxDetailsMap.SetResource(_txDetails); _effect.FxDetailsNormalMap.SetResource(_txDetailsNormal); _effect.FxMapsMap.SetResource(_txMaps); } contextHolder.DeviceContext.InputAssembler.InputLayout = _effect.LayoutPNTG; return true; }
public void Draw(DeviceContextHolder contextHolder, int indices, SpecialRenderMode mode) { if (mode == SpecialRenderMode.DeferredTransparentMask || mode == SpecialRenderMode.Shadow) { _effect.TechTransparentMask.DrawAllPasses(contextHolder.DeviceContext, indices); Drawed++; return; } if (IsBlending) { if (mode == SpecialRenderMode.DeferredTransparentForw || mode == SpecialRenderMode.DeferredTransparentDepth) { _effect.TechTransparentForward.DrawAllPasses(contextHolder.DeviceContext, indices); Drawed++; } else if (mode == SpecialRenderMode.DeferredTransparentDef) { _effect.TechTransparentDeferred.DrawAllPasses(contextHolder.DeviceContext, indices); Drawed++; } return; } if (mode == SpecialRenderMode.DeferredTransparentForw || mode == SpecialRenderMode.DeferredTransparentDepth || mode == SpecialRenderMode.DeferredTransparentDef) return; (mode == SpecialRenderMode.Deferred ? _effect.TechStandardDeferred : _effect.TechStandardForward) .DrawAllPasses(contextHolder.DeviceContext, indices); Drawed++; }