Skip to content

Commit 486deff

Browse files
committed
serialized ssao data
1 parent eaa7edc commit 486deff

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

Sources/UntoldEngine/Editor/SceneSerializer.swift

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

2627
struct ToneMappingData: Codable {
@@ -49,24 +50,35 @@ struct ColorCorrectionData: Codable {
4950
struct 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

5456
struct 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

6164
struct 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

6670
struct 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

7284
struct 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

Comments
 (0)