EnvironmentSettings.fromScene constructor
EnvironmentSettings.fromScene(
- 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,
);
}