Add surfaceDisplacementEnabled to water material tests and validation

This commit is contained in:
2026-04-07 07:22:13 +02:00
parent 0b4c144090
commit c82d547dd8
7 changed files with 25 additions and 11 deletions

View File

@@ -733,7 +733,8 @@ describe("buildRuntimeSceneFromDocument", () => {
colorHex: "#2f79c4",
surfaceOpacity: 0.7,
waveStrength: 0.35,
foamContactLimit: 6
foamContactLimit: 6,
surfaceDisplacementEnabled: false
}
}
});

View File

@@ -296,7 +296,8 @@ describe("box brush commands", () => {
colorHex: "#3a7dc2",
surfaceOpacity: 0.65,
waveStrength: 0.4,
foamContactLimit: 6
foamContactLimit: 6,
surfaceDisplacementEnabled: false
}
}
})
@@ -308,7 +309,8 @@ describe("box brush commands", () => {
colorHex: "#3a7dc2",
surfaceOpacity: 0.65,
waveStrength: 0.4,
foamContactLimit: 6
foamContactLimit: 6,
surfaceDisplacementEnabled: false
}
});
@@ -324,7 +326,8 @@ describe("box brush commands", () => {
colorHex: "#3a7dc2",
surfaceOpacity: 0.65,
waveStrength: 0.4,
foamContactLimit: 6
foamContactLimit: 6,
surfaceDisplacementEnabled: false
}
});
});

View File

@@ -552,7 +552,8 @@ describe("validateSceneDocument", () => {
water: {
colorHex: "#3a7dc2",
surfaceOpacity: 0.6,
waveStrength: 0.3
waveStrength: 0.3,
surfaceDisplacementEnabled: false
}
};
(invalidWaterBrush as any).volume = {
@@ -599,6 +600,10 @@ describe("validateSceneDocument", () => {
code: "invalid-box-water-wave-strength",
path: "brushes.brush-invalid-volume-water.volume.water.waveStrength"
}),
expect.objectContaining({
code: "invalid-box-water-surface-displacement-enabled",
path: "brushes.brush-invalid-volume-water.volume.water.surfaceDisplacementEnabled"
}),
expect.objectContaining({
code: "invalid-box-fog-color",
path: "brushes.brush-invalid-volume-fog.volume.fog.colorHex"

View File

@@ -608,8 +608,9 @@ describe("water material helpers", () => {
expect(material.uniforms["fogDensity"]).toBeDefined();
expect(material.uniforms["surfaceOpacity"]?.value).toBeGreaterThan(0.14);
expect(material.uniforms["waveStrength"]?.value).toBe(0.35);
expect(material.uniforms["surfaceDisplacementEnabled"]?.value).toBe(0);
expect(material.uniforms["isTopFace"]?.value).toBe(1);
expect(material.vertexShader).not.toContain("transformed.y +=");
expect(material.vertexShader).toContain("surfaceDisplacementEnabled");
expect(result.contactPatchesUniform?.value).toHaveLength(MAX_BOX_BRUSH_WATER_FOAM_CONTACT_LIMIT);
expect(result.contactPatchShapesUniform?.value).toHaveLength(MAX_BOX_BRUSH_WATER_FOAM_CONTACT_LIMIT);
expect(result.reflectionTextureUniform).not.toBeNull();