public void PrepareLocalStorage(VoxelStorageContext context, IVoxelStorage storage) { foreach (var modifier in Modifiers) { modifier.PrepareLocalStorage(context, storage); } VoxelLayout.PrepareLocalStorage(context, storage); }
public void ApplyWriteParameters(ParameterCollection parameters) { foreach (IVoxelModifierEmissionOpacity modifier in Modifiers) { modifier.ApplyWriteParameters(parameters); } VoxelLayout.ApplyWriteParameters(parameters, Modifiers); }
public ShaderSource GetShader() { var mixin = new ShaderMixinSource(); mixin.Mixins.Add(source); mixin.AddComposition("layout", VoxelLayout.GetShaderFloat4(Modifiers)); return(mixin); }
public override ShaderSource GetVoxelizationShader() { var mixin = new ShaderMixinSource(); mixin.Mixins.Add(source); mixin.AddComposition("layout", VoxelLayout.GetVoxelizationShader(Modifiers)); return(mixin); }
public void UpdateLayout(string compositionName) { int i = 0; foreach (IVoxelModifierEmissionOpacity modifier in Modifiers) { modifier.UpdateLayout("Modifiers[" + i.ToString() + "].layout." + compositionName); i++; } VoxelLayout.UpdateLayout("layout." + compositionName, Modifiers); }
public override void ApplyVoxelizationParameters(ParameterCollection parameters) { foreach (VoxelModifierEmissionOpacity modifier in Modifiers) { if (!modifier.Enabled) { continue; } modifier.ApplyVoxelizationParameters(parameters); } VoxelLayout.ApplyVoxelizationParameters(parameters, Modifiers); }
public void PostProcess(RenderDrawContext drawContext) { switch (LightFalloff) { case LightFalloffs.Sharp: VoxelLayout.PostProcess(drawContext, "VoxelMipmapSimple"); break; case LightFalloffs.PhysicallyBasedButNotAccurate: VoxelLayout.PostProcess(drawContext, "VoxelMipmapPhysicallyBased"); break; case LightFalloffs.Heuristic: VoxelLayout.PostProcess(drawContext, "VoxelMipmapHeuristic"); break; } }
public override void UpdateVoxelizationLayout(string compositionName) { int i = 0; foreach (VoxelModifierEmissionOpacity modifier in Modifiers) { if (!modifier.Enabled) { continue; } modifier.UpdateVoxelizationLayout($"Modifiers[{i}].layout.{compositionName}"); i++; } VoxelLayout.UpdateVoxelizationLayout("layout." + compositionName, Modifiers); }
public void UpdateSamplerLayout(string compositionName) { VoxelLayout.UpdateSamplerLayout(compositionName); }
public override void PostProcess(RenderDrawContext drawContext) { VoxelLayout.PostProcess(drawContext, LightFalloff); }
public override void ClearOutputStorage() { VoxelLayout.ClearOutputStorage(); }
public override void PrepareOutputStorage(VoxelStorageContext context, IVoxelStorage storage) { VoxelLayout.PrepareOutputStorage(context, storage); }
public override void PrepareLocalStorage(VoxelStorageContext context, IVoxelStorage storage) { BufferOffset = VoxelLayout.PrepareLocalStorage(context, storage); }
public override void ApplySamplingParameters(VoxelViewContext viewContext, ParameterCollection parameters) { VoxelLayout.ApplySamplingParameters(viewContext, parameters); }
public override void UpdateSamplingLayout(string compositionName) { VoxelLayout.UpdateSamplingLayout(compositionName); }
public override ShaderSource GetSamplingShader() { return(VoxelLayout.GetSamplingShader()); }
public void ApplyViewParameters(ParameterCollection parameters) { VoxelLayout.ApplyViewParameters(parameters); }
public ShaderSource GetSampler() { return(VoxelLayout.GetSampler()); }