Пример #1
0
        private void AddBaseGlossiness(MaterialGeneratorContext context)
        {
            // Glossiness Feature
            context.UseStream(MaterialShaderStage.Pixel, "matGlossiness");
            var metalFlakesGlossinessComputeColorMap = MetalFlakesGlossinessMap.GenerateShaderSource(context, new MaterialComputeColorKeys(MaterialKeys.GlossinessMap, MaterialKeys.GlossinessValue));
            var mixinBaseGlossiness = new ShaderMixinSource();

            mixinBaseGlossiness.Mixins.Add(new ShaderClassSource("MaterialSurfaceGlossinessMap", MetalFlakesGlossinessInvert));
            mixinBaseGlossiness.AddComposition("glossinessMap", metalFlakesGlossinessComputeColorMap);
            context.AddShaderSource(MaterialShaderStage.Pixel, mixinBaseGlossiness);
        }
Пример #2
0
        private void ClampInputs()
        {
            // Clamp color inputs
            var diffuseMin = Vector4.Zero;
            var diffuseMax = Vector4.One;

            BasePaintDiffuseMap.ClampFloat4(ref diffuseMin, ref diffuseMax);
            MetalFlakesDiffuseMap.ClampFloat4(ref diffuseMin, ref diffuseMax);

            // Clamp scalar inputs
            BasePaintGlossinessMap.ClampFloat(0, 1);
            MetalFlakesGlossinessMap.ClampFloat(0, 1);
            ClearCoatGlossinessMap.ClampFloat(0, 1);

            MetalFlakesMetalnessMap.ClampFloat(0, 1);
            ClearCoatMetalnessMap.ClampFloat(0, 1);
        }