コード例 #1
0
 public void PrepareLocalStorage(VoxelStorageContext context, IVoxelStorage storage)
 {
     foreach (var modifier in Modifiers)
     {
         modifier.PrepareLocalStorage(context, storage);
     }
     VoxelLayout.PrepareLocalStorage(context, storage);
 }
コード例 #2
0
 public void ApplyWriteParameters(ParameterCollection parameters)
 {
     foreach (IVoxelModifierEmissionOpacity modifier in Modifiers)
     {
         modifier.ApplyWriteParameters(parameters);
     }
     VoxelLayout.ApplyWriteParameters(parameters, Modifiers);
 }
コード例 #3
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #9
0
 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());
 }
コード例 #17
0
 public void ApplyViewParameters(ParameterCollection parameters)
 {
     VoxelLayout.ApplyViewParameters(parameters);
 }
コード例 #18
0
 public ShaderSource GetSampler()
 {
     return(VoxelLayout.GetSampler());
 }