//private Buffer _parameterBuffer = null; private void Update(EvaluationContext context) { var id = Id.GetValue(context); var previousMap = context.PrbPrefilteredSpecular; var tex = PrefilteredSpecularMap.GetValue(context) ?? PbrContextSettings.WhitePixelTexture; var hadPreviousTexture = context.ContextTextures.TryGetValue(id, out var previousTexture); context.ContextTextures[id] = tex; // { // // } // // if (tex != null) // { // context.PrbPrefilteredSpecular = tex; // } SubTree.GetValue(context); if (hadPreviousTexture) { context.ContextTextures[id] = previousMap; } else { context.ContextTextures.Remove(id); } }
private void Update(EvaluationContext context) { var previousTime = context.TimeInBars; context.TimeInBars = NewTime.GetValue(context); // Execute subtree //SubTree.DirtyFlag.Invalidate(); Result.Value = SubTree.GetValue(context); //Log.Debug($"old:{previousTime} / new:{context.TimeInBars}"); context.TimeInBars = previousTime; //SubTree.DirtyFlag.Clear(); }
private void Update(EvaluationContext context) { if (!_initialized) { if (Parent?.Symbol == null) { Log.Warning("Can't register Preset blending for undefined parent", this.SymbolChildId); return; } BlendSettingForCompositionIds[Parent.Symbol.Id] = _blendSetting; _initialized = true; } // Evaluate subtree SubTree.GetValue(context); var wasUpdated = false; var groupIndex = GroupIndex.GetValue(context); if (groupIndex != _blendSetting.GroupIndex) { wasUpdated = true; _blendSetting.GroupIndex = groupIndex; } var presetA = PresetA.GetValue(context); if (presetA != _blendSetting.PresetAIndex) { wasUpdated = true; _blendSetting.PresetAIndex = presetA; } var presetB = PresetB.GetValue(context); if (presetB != _blendSetting.PresetBIndex) { wasUpdated = true; _blendSetting.PresetBIndex = presetB; } var blendFactor = BlendFactor.GetValue(context); if (Math.Abs(blendFactor - _blendSetting.BlendFactor) > 0.001f) { wasUpdated = true; _blendSetting.BlendFactor = blendFactor; } _blendSetting.WasActivatedLastFrame = wasUpdated; }
private void Update(EvaluationContext context) { // Parameters var parameterBufferContent = new PbrMaterialParams { BaseColor = BaseColor.GetValue(context), EmissiveColor = EmissiveColor.GetValue(context), Roughness = Roughness.GetValue(context), Specular = Specular.GetValue(context), Metal = Metal.GetValue(context) }; ResourceManager.Instance().SetupConstBuffer(parameterBufferContent, ref _parameterBuffer); // Textures var resourceManager = ResourceManager.Instance(); var device = resourceManager.Device; Utilities.Dispose(ref _baseColorMapSrv); var tex = BaseColorMap.GetValue(context) ?? PbrContextSettings.WhitePixelTexture; _baseColorMapSrv = new ShaderResourceView(device, tex); context.PbrMaterialTextures.AlbedoColorMap = _baseColorMapSrv; Utilities.Dispose(ref _normalMapSrv); var tex2 = NormalMap.GetValue(context) ?? PbrContextSettings.NormalFallbackTexture; _normalMapSrv = new ShaderResourceView(device, tex2); context.PbrMaterialTextures.NormalMap = _normalMapSrv; Utilities.Dispose(ref _rsmoMapSrv); var tex3 = RoughnessSpecularMetallicOcclusionMap.GetValue(context) ?? PbrContextSettings.RsmoFallbackTexture; _rsmoMapSrv = new ShaderResourceView(device, tex3); context.PbrMaterialTextures.RoughnessSpecularMetallicOcclusionMap = _rsmoMapSrv; Utilities.Dispose(ref _emissiveColorMapSrv); var tex4 = EmissiveColorMap.GetValue(context) ?? PbrContextSettings.WhitePixelTexture; _emissiveColorMapSrv = new ShaderResourceView(device, tex4); context.PbrMaterialTextures.EmissiveColorMap = _emissiveColorMapSrv; var previousParameters = context.PbrMaterialParams; context.PbrMaterialParams = _parameterBuffer; SubTree.GetValue(context); context.PbrMaterialParams = previousParameters; }
private void Update(EvaluationContext context) { //Log.Debug("Setting Particle system"); var previousSystem = context.ParticleSystem; var particleSystemForContext = ParticleSystem.GetValue(context); if (particleSystemForContext != null) { context.ParticleSystem = particleSystemForContext; } // Execute subtree Result.Value = SubTree.GetValue(context); context.ParticleSystem = previousSystem; }
private void Update(EvaluationContext context) { var previousKeyframeTime = context.LocalTime; var previousEffectTime = context.LocalFxTime; var newTime = NewTime.GetValue(context); context.LocalTime = newTime; context.LocalFxTime = newTime; // Execute subtree Result.Value = SubTree.GetValue(context); context.LocalTime = previousKeyframeTime; context.LocalFxTime = previousEffectTime; }
private void Update(EvaluationContext context) { BeatTapTriggered = false; var triggerTap = TriggerBeatTap.GetValue(context); if (triggerTap != _wasBeatTriggered) { _wasBeatTriggered = triggerTap; BeatTapTriggered = triggerTap; } ResyncTriggered = false; var triggerResync = TriggerResync.GetValue(context); if (triggerResync != _wasResyncTriggered) { _wasResyncTriggered = triggerResync; ResyncTriggered = triggerResync; } // Evaluate subtree SubTree.GetValue(context); }