예제 #1
0
        protected override bool OnAttached()
        {
            var result = base.OnAttached();

            this.EnabledSSAO        = true;
            this.EnabledSSR         = true;
            this.EnabledDoF         = true;
            this.EnabledBloom       = true;
            this.EnabledTonemapping = true;

            var enabledNodes = volume.ppGraph.Description.Nodes.FindAll(n => n.Name == "Enabled");

            // SSAO
            var ssaoEnabledNode = enabledNodes.First();

            this.ssaoProperty = ssaoEnabledNode.Inputs[0].Type as PostProcessingNodePortDirectiveType;

            // SSR
            var ssrEnabledNode = enabledNodes.Skip(1).Take(1).Single();

            this.ssrProperty = ssrEnabledNode.Inputs[0].Type as PostProcessingNodePortDirectiveType;

            // Dof
            var dofEnabledNode = enabledNodes.Skip(5).Take(1).Single();

            this.dofProperty = dofEnabledNode.Inputs[0].Type as PostProcessingNodePortDirectiveType;

            // Bloom
            var bloomEnabledNode = enabledNodes.Skip(6).Take(1).Single();

            this.bloomProperty = bloomEnabledNode.Inputs[0].Type as PostProcessingNodePortDirectiveType;

            // Tonemapping
            var toneEnabledNode = enabledNodes.Skip(7).Take(1).Single();

            this.toneProperty = toneEnabledNode.Inputs[0].Type as PostProcessingNodePortDirectiveType;

            return(result);
        }
예제 #2
0
 private void RefreshProperty(PostProcessingNodePortDirectiveType property, bool value)
 {
     property.Value = value ? property.Directives[1] : property.Directives[0];
 }