Enhance advanced rendering tests, updating distance fog parameters and adding tests for fade margins and camera clamping.
This commit is contained in:
@@ -153,6 +153,7 @@ import {
|
|||||||
import {
|
import {
|
||||||
applyAdvancedRenderingPerspectiveCameraFar,
|
applyAdvancedRenderingPerspectiveCameraFar,
|
||||||
resolveAdvancedRenderingPerspectiveCameraFar,
|
resolveAdvancedRenderingPerspectiveCameraFar,
|
||||||
|
resolveDistanceFogFadeMargin,
|
||||||
resolveDistanceFogParameters
|
resolveDistanceFogParameters
|
||||||
} from "../../src/rendering/distance-fog-pass";
|
} from "../../src/rendering/distance-fog-pass";
|
||||||
import {
|
import {
|
||||||
@@ -270,22 +271,49 @@ describe("distance fog parameters", () => {
|
|||||||
nearDistance: 40,
|
nearDistance: 40,
|
||||||
farDistance: 400,
|
farDistance: 400,
|
||||||
strength: 2,
|
strength: 2,
|
||||||
renderDistance: 180
|
renderDistance: 180,
|
||||||
|
skyBlend: 2,
|
||||||
|
horizonStrength: 1.5,
|
||||||
|
heightFalloff: 0.02
|
||||||
};
|
};
|
||||||
|
|
||||||
expect(resolveDistanceFogParameters(settings.distanceFog)).toMatchObject({
|
const resolvedParameters = resolveDistanceFogParameters(
|
||||||
|
settings.distanceFog
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(resolvedParameters).toMatchObject({
|
||||||
enabled: true,
|
enabled: true,
|
||||||
colorHex: "#aabbcc",
|
colorHex: "#aabbcc",
|
||||||
nearDistance: 40,
|
nearDistance: 40,
|
||||||
farDistance: 180,
|
farDistance: 160.4,
|
||||||
strength: 1,
|
strength: 1,
|
||||||
renderDistance: 180
|
renderDistance: 180,
|
||||||
|
skyBlend: 1,
|
||||||
|
horizonStrength: 1,
|
||||||
|
heightFalloff: 0.02,
|
||||||
|
fadeMargin: 19.6
|
||||||
});
|
});
|
||||||
expect(
|
expect(
|
||||||
resolveAdvancedRenderingPerspectiveCameraFar(settings, 1000, 0.1)
|
resolveAdvancedRenderingPerspectiveCameraFar(settings, 1000, 0.1)
|
||||||
).toBe(180);
|
).toBe(180);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("keeps a safe fade margin before the render-distance cutoff", () => {
|
||||||
|
const settings = createDefaultWorldSettings().advancedRendering;
|
||||||
|
settings.distanceFog.enabled = true;
|
||||||
|
settings.distanceFog.nearDistance = 25;
|
||||||
|
settings.distanceFog.farDistance = 300;
|
||||||
|
settings.distanceFog.renderDistance = 100;
|
||||||
|
|
||||||
|
expect(resolveDistanceFogFadeMargin(25, 100)).toBe(10.5);
|
||||||
|
expect(resolveDistanceFogParameters(settings.distanceFog)).toMatchObject({
|
||||||
|
nearDistance: 25,
|
||||||
|
farDistance: 89.5,
|
||||||
|
renderDistance: 100,
|
||||||
|
fadeMargin: 10.5
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it("applies and resets the perspective camera far clamp", () => {
|
it("applies and resets the perspective camera far clamp", () => {
|
||||||
const settings = createDefaultWorldSettings().advancedRendering;
|
const settings = createDefaultWorldSettings().advancedRendering;
|
||||||
const camera = new PerspectiveCamera(60, 1, 0.1, 1000);
|
const camera = new PerspectiveCamera(60, 1, 0.1, 1000);
|
||||||
|
|||||||
Reference in New Issue
Block a user