EnvironmentSettings.fromScene constructor

EnvironmentSettings.fromScene(
  1. Scene scene
)

Reads the current look of scene into a snapshot. The IBL/sky references are shared (not deep-copied); the scalar look is captured by value.

Implementation

factory EnvironmentSettings.fromScene(Scene scene) {
  final cg = scene.postProcess.colorGrading;
  final bloom = scene.postProcess.bloom;
  final vignette = scene.postProcess.vignette;
  final ca = scene.postProcess.chromaticAberration;
  final grain = scene.postProcess.filmGrain;
  final ao = scene.ambientOcclusion;
  final ssr = scene.screenSpaceReflections;
  final fog = scene.fog;
  final rays = scene.godRays;
  final dof = scene.depthOfField;
  final auto = scene.autoExposure;
  return EnvironmentSettings(
    environment: scene.environment,
    environmentTransform: scene.environmentTransform.clone(),
    skybox: scene.skybox,
    skyEnvironment: scene.skyEnvironment,
    sunLight: scene.sunLight,
    toneMapping: scene.toneMapping,
    agxWhite: scene.agxWhite,
    agxContrast: scene.agxContrast,
    environmentIntensity: scene.environmentIntensity,
    exposure: scene.exposure,
    colorGradingEnabled: cg.enabled,
    brightness: cg.brightness,
    contrast: cg.contrast,
    saturation: cg.saturation,
    temperature: cg.temperature,
    tint: cg.tint,
    lift: cg.lift.clone(),
    gamma: cg.gamma.clone(),
    gain: cg.gain.clone(),
    colorGradingLut: cg.lut,
    colorGradingLutBlend: cg.lutBlend,
    bloomEnabled: bloom.enabled,
    bloomThreshold: bloom.threshold,
    bloomIntensity: bloom.intensity,
    bloomScatter: bloom.scatter,
    vignetteEnabled: vignette.enabled,
    vignetteIntensity: vignette.intensity,
    vignetteRadius: vignette.radius,
    vignetteSmoothness: vignette.smoothness,
    chromaticAberrationEnabled: ca.enabled,
    chromaticAberrationIntensity: ca.intensity,
    filmGrainEnabled: grain.enabled,
    filmGrainIntensity: grain.intensity,
    ambientOcclusionEnabled: ao.enabled,
    ambientOcclusionMethod: ao.method,
    ambientOcclusionRadius: ao.radius,
    ambientOcclusionIntensity: ao.intensity,
    ambientOcclusionBias: ao.bias,
    ambientOcclusionPower: ao.power,
    ambientOcclusionDetail: ao.detail,
    ambientOcclusionHorizonAngle: ao.horizonAngle,
    ambientOcclusionDirectLightAffect: ao.directLightAffect,
    ambientOcclusionMultiBounce: ao.multiBounce,
    ambientOcclusionSampleCount: ao.sampleCount,
    ambientOcclusionSliceCount: ao.sliceCount,
    ambientOcclusionStepsPerSlice: ao.stepsPerSlice,
    ambientOcclusionVisibilityBitmask: ao.visibilityBitmask,
    ambientOcclusionThickness: ao.thickness,
    ambientOcclusionThicknessHeuristic: ao.thicknessHeuristic,
    ambientOcclusionBentNormals: ao.bentNormals,
    ambientOcclusionIndirectLight: ao.indirectLight,
    ambientOcclusionHalfResolution: ao.halfResolution,
    ambientOcclusionDepthMipChain: ao.depthMipChain,
    ambientOcclusionSpecularMode: ao.specularMode,
    screenSpaceReflectionsEnabled: ssr.enabled,
    screenSpaceReflectionsIntensity: ssr.intensity,
    screenSpaceReflectionsMaxDistance: ssr.maxDistance,
    screenSpaceReflectionsThickness: ssr.thickness,
    screenSpaceReflectionsStride: ssr.stride,
    screenSpaceReflectionsMaxSteps: ssr.maxSteps,
    screenSpaceReflectionsBlur: ssr.blur,
    screenSpaceReflectionsDistanceFadeStart: ssr.distanceFadeStart,
    screenSpaceReflectionsResolutionScale: ssr.resolutionScale,
    fogEnabled: fog.enabled,
    fogMode: fog.mode,
    fogColor: fog.color.clone(),
    fogSkyColorInfluence: fog.skyColorInfluence,
    fogDensity: fog.density,
    fogStart: fog.start,
    fogEnd: fog.end,
    fogMaxOpacity: fog.maxOpacity,
    fogCutoffDistance: fog.cutoffDistance,
    fogHeight: fog.height,
    fogHeightFalloff: fog.heightFalloff,
    fogSunInScatter: fog.sunInScatter,
    fogSunInScatterExponent: fog.sunInScatterExponent,
    godRaysEnabled: rays.enabled,
    godRaysIntensity: rays.intensity,
    godRaysDensity: rays.density,
    godRaysAnisotropy: rays.anisotropy,
    godRaysStepCount: rays.stepCount,
    godRaysMaxDistance: rays.maxDistance,
    godRaysJitter: rays.jitter,
    godRaysColor: rays.color.clone(),
    depthOfFieldEnabled: dof.enabled,
    depthOfFieldFocusDistance: dof.focusDistance,
    depthOfFieldFStop: dof.fStop,
    depthOfFieldFocalLength: dof.focalLength,
    depthOfFieldSensorHeight: dof.sensorHeight,
    depthOfFieldBlurScale: dof.blurScale,
    depthOfFieldMaxForegroundBlur: dof.maxForegroundBlur,
    depthOfFieldMaxBackgroundBlur: dof.maxBackgroundBlur,
    depthOfFieldBladeCount: dof.bladeCount,
    depthOfFieldBladeRotation: dof.bladeRotation,
    depthOfFieldBladeCurvature: dof.bladeCurvature,
    depthOfFieldQuality: dof.quality,
    autoExposureEnabled: auto.enabled,
    autoExposureStrength: auto.strength,
    autoExposureCompensation: auto.compensation,
    autoExposureMinEv: auto.minEv,
    autoExposureMaxEv: auto.maxEv,
    autoExposureSpeedUp: auto.speedUp,
    autoExposureSpeedDown: auto.speedDown,
  );
}