@@ -21,6 +21,7 @@ struct SceneData: Codable {
2121 var vignette : VignetteData ? = nil
2222 var chromaticAberration : ChromaticAberrationData ? = nil
2323 var depthOfField : DepthOfFieldData ? = nil
24+ var ssao : SSAOData ? = nil
2425}
2526
2627struct ToneMappingData : Codable {
@@ -49,24 +50,35 @@ struct ColorCorrectionData: Codable {
4950struct BloomThresholdData : Codable {
5051 var threshold : Float = 1.0 // 0.0 to 5.0
5152 var intensity : Float = 1.0 // 0.0 to 2.0
53+ var enabled : Bool = false
5254}
5355
5456struct VignetteData : Codable {
5557 var intensity : Float = 0.7 // 0.0 to 1.0
5658 var radius : Float = 0.75 // 0.5 to 1.0
5759 var softness : Float = 0.45 // 0.0 to 1.0
5860 var center : simd_float2 = . init( 0.5 , 0.5 ) // 0-1
61+ var enabled : Bool = false
5962}
6063
6164struct ChromaticAberrationData : Codable {
6265 var intensity : Float = 0.0 // 0.0 to 0.1
6366 var center : simd_float2 = . init( 0.5 , 0.5 ) // 0-1
67+ var enabled : Bool = false
6468}
6569
6670struct DepthOfFieldData : Codable {
6771 var focusDistance : Float = 1.0 // 0.0 to 1.0
6872 var focusRange : Float = 0.1 // 0.01-0.3
6973 var maxBlur : Float = 0 // 0.005-0.05
74+ var enabled : Bool = false
75+ }
76+
77+ struct SSAOData : Codable {
78+ var radius : Float = 0.5
79+ var bias : Float = 0.0
80+ var intensity : Float = 0.0
81+ var enabled : Bool = false
7082}
7183
7284struct LightData : Codable {
@@ -356,13 +368,15 @@ func serializeScene() -> SceneData {
356368 tint: ColorGradingParams . shared. tint
357369 )
358370
359- sceneData. bloom = BloomThresholdData ( threshold: BloomThresholdParams . shared. threshold, intensity: BloomThresholdParams . shared. intensity)
371+ sceneData. bloom = BloomThresholdData ( threshold: BloomThresholdParams . shared. threshold, intensity: BloomThresholdParams . shared. intensity, enabled : BloomThresholdParams . shared . enabled )
360372
361- sceneData. vignette = VignetteData ( intensity: VignetteParams . shared. intensity, radius: VignetteParams . shared. radius, softness: VignetteParams . shared. softness, center: VignetteParams . shared. center)
373+ sceneData. vignette = VignetteData ( intensity: VignetteParams . shared. intensity, radius: VignetteParams . shared. radius, softness: VignetteParams . shared. softness, center: VignetteParams . shared. center, enabled : VignetteParams . shared . enabled )
362374
363- sceneData. chromaticAberration = ChromaticAberrationData ( intensity: ChromaticAberrationParams . shared. intensity, center: ChromaticAberrationParams . shared. center)
375+ sceneData. chromaticAberration = ChromaticAberrationData ( intensity: ChromaticAberrationParams . shared. intensity, center: ChromaticAberrationParams . shared. center, enabled : ChromaticAberrationParams . shared . enabled )
364376
365- sceneData. depthOfField = DepthOfFieldData ( focusDistance: DepthOfFieldParams . shared. focusDistance, focusRange: DepthOfFieldParams . shared. focusRange, maxBlur: DepthOfFieldParams . shared. maxBlur)
377+ sceneData. depthOfField = DepthOfFieldData ( focusDistance: DepthOfFieldParams . shared. focusDistance, focusRange: DepthOfFieldParams . shared. focusRange, maxBlur: DepthOfFieldParams . shared. maxBlur, enabled: DepthOfFieldParams . shared. enabled)
378+
379+ sceneData. ssao = SSAOData ( radius: SSAOParams . shared. radius, bias: SSAOParams . shared. bias, intensity: SSAOParams . shared. intensity, enabled: SSAOParams . shared. enabled)
366380
367381 // save asset base path
368382 sceneData. assetBasePath = assetBasePath
@@ -459,24 +473,35 @@ func deserializeScene(sceneData: SceneData) {
459473 if let bloomThreshold = sceneData. bloom {
460474 BloomThresholdParams . shared. intensity = bloomThreshold. intensity
461475 BloomThresholdParams . shared. threshold = bloomThreshold. threshold
476+ BloomThresholdParams . shared. enabled = bloomThreshold. enabled
462477 }
463478
464479 if let vignette = sceneData. vignette {
465480 VignetteParams . shared. intensity = vignette. intensity
466481 VignetteParams . shared. radius = vignette. radius
467482 VignetteParams . shared. softness = vignette. softness
468483 VignetteParams . shared. center = vignette. center
484+ VignetteParams . shared. enabled = vignette. enabled
469485 }
470486
471487 if let chromaticAberration = sceneData. chromaticAberration {
472488 ChromaticAberrationParams . shared. intensity = chromaticAberration. intensity
473489 ChromaticAberrationParams . shared. center = chromaticAberration. center
490+ ChromaticAberrationParams . shared. enabled = chromaticAberration. enabled
474491 }
475492
476493 if let depthOfField = sceneData. depthOfField {
477494 DepthOfFieldParams . shared. focusDistance = depthOfField. focusDistance
478495 DepthOfFieldParams . shared. focusRange = depthOfField. focusRange
479496 DepthOfFieldParams . shared. maxBlur = depthOfField. maxBlur
497+ DepthOfFieldParams . shared. enabled = depthOfField. enabled
498+ }
499+
500+ if let ssao = sceneData. ssao{
501+ SSAOParams . shared. radius = ssao. radius
502+ SSAOParams . shared. intensity = ssao. intensity
503+ SSAOParams . shared. bias = ssao. bias
504+ SSAOParams . shared. enabled = ssao. enabled
480505 }
481506
482507 for sceneDataEntity in sceneData. entities {
0 commit comments