private void UpdateTexture(VolumeTextureMaterialCoreBase <T> material)
 {
     RemoveAndDispose(ref texture);
     texture = Collect(OnCreateTexture(material, EffectsManager));
     if (texture != null)
     {
         UpdateStepSize();
     }
 }
 public VolumeMaterialVariable(IEffectsManager manager, IRenderTechnique technique, VolumeTextureMaterialCoreBase <T> material,
                               string volumePassName = DefaultPassNames.Default)
     : base(manager, technique, DefaultVolumeConstantBufferDesc, material)
 {
     this.material = material;
     volumePass    = technique[volumePassName];
     texSlot       = volumePass.PixelShader.ShaderResourceViewMapping.TryGetBindSlot(DefaultBufferNames.VolumeTB);
     gradientSlot  = volumePass.PixelShader.ShaderResourceViewMapping.TryGetBindSlot(DefaultBufferNames.ColorStripe1DXTB);
     samplerSlot   = volumePass.PixelShader.SamplerMapping.TryGetBindSlot(DefaultSamplerStateNames.VolumeSampler);
 }