Implement advanced rendering controls (Anti-Aliasing, Shadows) and update world settings equality tests

This commit is contained in:
2026-05-21 08:09:22 +02:00
parent 27f06c8b10
commit 51a7de1068
2 changed files with 51 additions and 0 deletions

View File

@@ -20559,6 +20559,45 @@ export function App({
{!advancedRendering.enabled ? null : (
<>
<div className="form-section">
<div className="label">Anti-Aliasing</div>
<label className="form-field form-field--toggle">
<span className="label">Enabled</span>
<input
type="checkbox"
checked={advancedRendering.antiAliasing.enabled}
onChange={(event) =>
applyAdvancedRenderingAntiAliasingEnabled(
event.currentTarget.checked
)
}
/>
</label>
<label className="form-field">
<span className="label">Method</span>
<select
className="select-input"
value={advancedRendering.antiAliasing.mode}
onChange={(event) =>
applyAdvancedRenderingAntiAliasingMode(
event.currentTarget
.value as AdvancedRenderingAntiAliasingMode
)
}
>
{ADVANCED_RENDERING_ANTI_ALIASING_MODES.map(
(mode) => (
<option key={mode} value={mode}>
{formatAdvancedRenderingAntiAliasingModeLabel(
mode
)}
</option>
)
)}
</select>
</label>
</div>
<div className="form-section">
<div className="label">Shadows</div>
<label className="form-field form-field--toggle">

View File

@@ -33,6 +33,9 @@ describe("world settings helpers", () => {
expect(clone.advancedRendering.dynamicGlobalIllumination).not.toBe(
source.advancedRendering.dynamicGlobalIllumination
);
expect(clone.advancedRendering.antiAliasing).not.toBe(
source.advancedRendering.antiAliasing
);
expect(clone.advancedRendering.whiteboxBevel).not.toBe(
source.advancedRendering.whiteboxBevel
);
@@ -178,6 +181,15 @@ describe("world settings helpers", () => {
expect(areWorldSettingsEqual(left, right)).toBe(false);
});
it("treats anti-aliasing settings as part of authored world equality", () => {
const left = createDefaultWorldSettings();
const right = cloneWorldSettings(left);
right.advancedRendering.antiAliasing.mode = "fxaa";
expect(areWorldSettingsEqual(left, right)).toBe(false);
});
it("treats god rays settings as part of authored world equality", () => {
const left = createDefaultWorldSettings();
const right = cloneWorldSettings(left);