Feature: Implement anti-aliasing support in advanced rendering settings
This commit is contained in:
@@ -26,6 +26,13 @@ export const ADVANCED_RENDERING_TONE_MAPPING_MODES = [
|
|||||||
"cineon",
|
"cineon",
|
||||||
"acesFilmic"
|
"acesFilmic"
|
||||||
] as const;
|
] as const;
|
||||||
|
export const ADVANCED_RENDERING_ANTI_ALIASING_MODES = [
|
||||||
|
"smaa",
|
||||||
|
"fxaa",
|
||||||
|
"msaa2x",
|
||||||
|
"msaa4x",
|
||||||
|
"msaa8x"
|
||||||
|
] as const;
|
||||||
export const BOX_VOLUME_RENDER_PATHS = ["performance", "quality"] as const;
|
export const BOX_VOLUME_RENDER_PATHS = ["performance", "quality"] as const;
|
||||||
export const ADVANCED_RENDERING_WATER_REFLECTION_MODES = [
|
export const ADVANCED_RENDERING_WATER_REFLECTION_MODES = [
|
||||||
"none",
|
"none",
|
||||||
@@ -52,6 +59,8 @@ export type AdvancedRenderingShadowType =
|
|||||||
(typeof ADVANCED_RENDERING_SHADOW_TYPES)[number];
|
(typeof ADVANCED_RENDERING_SHADOW_TYPES)[number];
|
||||||
export type AdvancedRenderingToneMappingMode =
|
export type AdvancedRenderingToneMappingMode =
|
||||||
(typeof ADVANCED_RENDERING_TONE_MAPPING_MODES)[number];
|
(typeof ADVANCED_RENDERING_TONE_MAPPING_MODES)[number];
|
||||||
|
export type AdvancedRenderingAntiAliasingMode =
|
||||||
|
(typeof ADVANCED_RENDERING_ANTI_ALIASING_MODES)[number];
|
||||||
export type BoxVolumeRenderPath = (typeof BOX_VOLUME_RENDER_PATHS)[number];
|
export type BoxVolumeRenderPath = (typeof BOX_VOLUME_RENDER_PATHS)[number];
|
||||||
export type AdvancedRenderingWaterReflectionMode =
|
export type AdvancedRenderingWaterReflectionMode =
|
||||||
(typeof ADVANCED_RENDERING_WATER_REFLECTION_MODES)[number];
|
(typeof ADVANCED_RENDERING_WATER_REFLECTION_MODES)[number];
|
||||||
@@ -165,6 +174,11 @@ export interface AdvancedRenderingToneMappingSettings {
|
|||||||
exposure: number;
|
exposure: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface AdvancedRenderingAntiAliasingSettings {
|
||||||
|
enabled: boolean;
|
||||||
|
mode: AdvancedRenderingAntiAliasingMode;
|
||||||
|
}
|
||||||
|
|
||||||
export interface AdvancedRenderingDepthOfFieldSettings {
|
export interface AdvancedRenderingDepthOfFieldSettings {
|
||||||
enabled: boolean;
|
enabled: boolean;
|
||||||
focusDistance: number;
|
focusDistance: number;
|
||||||
@@ -226,6 +240,7 @@ export interface AdvancedRenderingSettings {
|
|||||||
dynamicGlobalIllumination: AdvancedRenderingDynamicGlobalIlluminationSettings;
|
dynamicGlobalIllumination: AdvancedRenderingDynamicGlobalIlluminationSettings;
|
||||||
bloom: AdvancedRenderingBloomSettings;
|
bloom: AdvancedRenderingBloomSettings;
|
||||||
toneMapping: AdvancedRenderingToneMappingSettings;
|
toneMapping: AdvancedRenderingToneMappingSettings;
|
||||||
|
antiAliasing: AdvancedRenderingAntiAliasingSettings;
|
||||||
depthOfField: AdvancedRenderingDepthOfFieldSettings;
|
depthOfField: AdvancedRenderingDepthOfFieldSettings;
|
||||||
whiteboxBevel: AdvancedRenderingWhiteboxBevelSettings;
|
whiteboxBevel: AdvancedRenderingWhiteboxBevelSettings;
|
||||||
distanceFog: AdvancedRenderingDistanceFogSettings;
|
distanceFog: AdvancedRenderingDistanceFogSettings;
|
||||||
@@ -317,6 +332,9 @@ const DEFAULT_ADVANCED_RENDERING_BLOOM_RADIUS = 0.35;
|
|||||||
const DEFAULT_ADVANCED_RENDERING_TONE_MAPPING_MODE: AdvancedRenderingToneMappingMode =
|
const DEFAULT_ADVANCED_RENDERING_TONE_MAPPING_MODE: AdvancedRenderingToneMappingMode =
|
||||||
"acesFilmic";
|
"acesFilmic";
|
||||||
const DEFAULT_ADVANCED_RENDERING_TONE_MAPPING_EXPOSURE = 1;
|
const DEFAULT_ADVANCED_RENDERING_TONE_MAPPING_EXPOSURE = 1;
|
||||||
|
const DEFAULT_ADVANCED_RENDERING_ANTI_ALIASING_ENABLED = true;
|
||||||
|
const DEFAULT_ADVANCED_RENDERING_ANTI_ALIASING_MODE: AdvancedRenderingAntiAliasingMode =
|
||||||
|
"smaa";
|
||||||
const DEFAULT_ADVANCED_RENDERING_DEPTH_OF_FIELD_FOCUS_DISTANCE = 10;
|
const DEFAULT_ADVANCED_RENDERING_DEPTH_OF_FIELD_FOCUS_DISTANCE = 10;
|
||||||
const DEFAULT_ADVANCED_RENDERING_DEPTH_OF_FIELD_FOCAL_LENGTH = 0.03;
|
const DEFAULT_ADVANCED_RENDERING_DEPTH_OF_FIELD_FOCAL_LENGTH = 0.03;
|
||||||
const DEFAULT_ADVANCED_RENDERING_DEPTH_OF_FIELD_BOKEH_SCALE = 1.5;
|
const DEFAULT_ADVANCED_RENDERING_DEPTH_OF_FIELD_BOKEH_SCALE = 1.5;
|
||||||
@@ -538,6 +556,14 @@ export function isAdvancedRenderingToneMappingMode(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function isAdvancedRenderingAntiAliasingMode(
|
||||||
|
value: unknown
|
||||||
|
): value is AdvancedRenderingAntiAliasingMode {
|
||||||
|
return ADVANCED_RENDERING_ANTI_ALIASING_MODES.includes(
|
||||||
|
value as AdvancedRenderingAntiAliasingMode
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
export function isBoxVolumeRenderPath(
|
export function isBoxVolumeRenderPath(
|
||||||
value: unknown
|
value: unknown
|
||||||
): value is BoxVolumeRenderPath {
|
): value is BoxVolumeRenderPath {
|
||||||
@@ -694,6 +720,10 @@ export function createDefaultAdvancedRenderingSettings(): AdvancedRenderingSetti
|
|||||||
mode: DEFAULT_ADVANCED_RENDERING_TONE_MAPPING_MODE,
|
mode: DEFAULT_ADVANCED_RENDERING_TONE_MAPPING_MODE,
|
||||||
exposure: DEFAULT_ADVANCED_RENDERING_TONE_MAPPING_EXPOSURE
|
exposure: DEFAULT_ADVANCED_RENDERING_TONE_MAPPING_EXPOSURE
|
||||||
},
|
},
|
||||||
|
antiAliasing: {
|
||||||
|
enabled: DEFAULT_ADVANCED_RENDERING_ANTI_ALIASING_ENABLED,
|
||||||
|
mode: DEFAULT_ADVANCED_RENDERING_ANTI_ALIASING_MODE
|
||||||
|
},
|
||||||
depthOfField: {
|
depthOfField: {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
focusDistance: DEFAULT_ADVANCED_RENDERING_DEPTH_OF_FIELD_FOCUS_DISTANCE,
|
focusDistance: DEFAULT_ADVANCED_RENDERING_DEPTH_OF_FIELD_FOCUS_DISTANCE,
|
||||||
@@ -1050,6 +1080,9 @@ export function cloneAdvancedRenderingSettings(
|
|||||||
toneMapping: {
|
toneMapping: {
|
||||||
...settings.toneMapping
|
...settings.toneMapping
|
||||||
},
|
},
|
||||||
|
antiAliasing: {
|
||||||
|
...settings.antiAliasing
|
||||||
|
},
|
||||||
depthOfField: {
|
depthOfField: {
|
||||||
...settings.depthOfField
|
...settings.depthOfField
|
||||||
},
|
},
|
||||||
@@ -1246,6 +1279,8 @@ export function areAdvancedRenderingSettingsEqual(
|
|||||||
left.bloom.radius === right.bloom.radius &&
|
left.bloom.radius === right.bloom.radius &&
|
||||||
left.toneMapping.mode === right.toneMapping.mode &&
|
left.toneMapping.mode === right.toneMapping.mode &&
|
||||||
left.toneMapping.exposure === right.toneMapping.exposure &&
|
left.toneMapping.exposure === right.toneMapping.exposure &&
|
||||||
|
left.antiAliasing.enabled === right.antiAliasing.enabled &&
|
||||||
|
left.antiAliasing.mode === right.antiAliasing.mode &&
|
||||||
left.depthOfField.enabled === right.depthOfField.enabled &&
|
left.depthOfField.enabled === right.depthOfField.enabled &&
|
||||||
left.depthOfField.focusDistance === right.depthOfField.focusDistance &&
|
left.depthOfField.focusDistance === right.depthOfField.focusDistance &&
|
||||||
left.depthOfField.focalLength === right.depthOfField.focalLength &&
|
left.depthOfField.focalLength === right.depthOfField.focalLength &&
|
||||||
|
|||||||
Reference in New Issue
Block a user