private void ProceedFillRender(RenderObject AddedObject) { #region fillrender if (AddedObject.isTransparent) { //не мб шадовкастером и не мб анимированным if (AddedObject.isshadowreceiver) if (EnableShadows) if (SmoothShadows) AddedObject.PictureTehnique = AddedObject.isSelfIllumination ? Shader.TransparentSelfIlmnNoSM : Shader.TransparentSMSmooth; else AddedObject.PictureTehnique = AddedObject.isSelfIllumination ? Shader.TransparentSelfIlmnNoSM : Shader.TransparentSM; else AddedObject.PictureTehnique = AddedObject.isSelfIllumination ? Shader.TransparentSelfIlmnNoSM : Shader.TransparentNoSM; else AddedObject.PictureTehnique = AddedObject.isSelfIllumination ? Shader.TransparentSelfIlmnNoSM : Shader.TransparentNoSM; } else { if (AddedObject.isanimated) { if (AddedObject.isshadowcaster && EnableShadows) AddedObject.ShadowTehnique = Shader.CreateAnimShadowMap; if (AddedObject.isshadowreceiver) if (EnableShadows) if (SmoothShadows) AddedObject.PictureTehnique = Shader.AnimRenderSMSmooth; else AddedObject.PictureTehnique = Shader.AnimRenderSM; else AddedObject.PictureTehnique = Shader.AnimRenderNoSM; } else { if (AddedObject.isshadowcaster && EnableShadows) AddedObject.ShadowTehnique = Shader.CreateStaticShadowMap; if (AddedObject.isshadowreceiver) if (EnableShadows) if (SmoothShadows) AddedObject.PictureTehnique = Shader.NotAnimRenderSMSmooth; else AddedObject.PictureTehnique = Shader.NotAnimRenderSM; else AddedObject.PictureTehnique = Shader.NotAnimRenderNoSM; else AddedObject.PictureTehnique = Shader.NotAnimRenderNoSM; } } #endregion }
private void ProceedInstRender(RenderObject AddedObject) { #region instanced render if (AddedObject.isTransparent) { //не мб шадовкастером и не мб анимированным if (AddedObject.isshadowreceiver) if (EnableShadows) if (SmoothShadows) AddedObject.PictureTehnique = AddedObject.isSelfIllumination ? Shader.InstancedTransparentSelfIlmnNoSM : Shader.InstancedTransparentSMSmooth; else AddedObject.PictureTehnique = AddedObject.isSelfIllumination ? Shader.InstancedTransparentSelfIlmnNoSM : Shader.InstancedTransparentSM; else AddedObject.PictureTehnique = AddedObject.isSelfIllumination ? Shader.InstancedTransparentSelfIlmnNoSM : Shader.InstancedTransparentNoSM; else AddedObject.PictureTehnique = AddedObject.isSelfIllumination ? Shader.InstancedTransparentSelfIlmnNoSM : Shader.InstancedTransparentNoSM; } else { //отключим пока возможность кастования теней //if (AddedObject.isshadowcaster && EnableShadows) // AddedObject.ShadowTehnique = Shader.CreateStaticShadowMap; if (AddedObject.isshadowreceiver) if (EnableShadows) if (SmoothShadows) AddedObject.PictureTehnique = Shader.InstancedSMSmooth; else AddedObject.PictureTehnique = Shader.InstancedSM; else AddedObject.PictureTehnique = Shader.InstancedNoSM; else AddedObject.PictureTehnique = Shader.InstancedNoSM; } #endregion }
/// <summary> /// тут решаем что за рыба и как её соотв рендерить. /// </summary> /// <param name="AddedObject">объект</param> public void ProceedObject(RenderObject AddedObject) { if (AddedObject as UnAnimRenderObject != null || AddedObject as AnimRenderObject != null) { ProceedFillRender(AddedObject); } else if (AddedObject as ParticleRenderObject != null) { if (Config.Instance["_useHardwareInstancing"]) ProceedInstRender(AddedObject); else ProceedFillRender(AddedObject); } }