Add surfaceDisplacementEnabled to water material tests and validation
This commit is contained in:
@@ -733,7 +733,8 @@ describe("buildRuntimeSceneFromDocument", () => {
|
||||
colorHex: "#2f79c4",
|
||||
surfaceOpacity: 0.7,
|
||||
waveStrength: 0.35,
|
||||
foamContactLimit: 6
|
||||
foamContactLimit: 6,
|
||||
surfaceDisplacementEnabled: false
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -151,7 +151,8 @@ describe("scene document JSON", () => {
|
||||
colorHex: "#2f79c4",
|
||||
surfaceOpacity: 0.65,
|
||||
waveStrength: 0.35,
|
||||
foamContactLimit: 9
|
||||
foamContactLimit: 9,
|
||||
surfaceDisplacementEnabled: true
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -308,7 +309,8 @@ describe("scene document JSON", () => {
|
||||
expect(migratedDocument.brushes["brush-water-legacy"]?.volume).toEqual({
|
||||
mode: "water",
|
||||
water: expect.objectContaining({
|
||||
foamContactLimit: 24
|
||||
foamContactLimit: 24,
|
||||
surfaceDisplacementEnabled: false
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
@@ -28,7 +28,7 @@ describe("resolveUnderwaterFogState", () => {
|
||||
|
||||
expect(fogState).not.toBeNull();
|
||||
expect(fogState?.colorHex).toBe("#347aa0");
|
||||
expect(fogState?.density ?? 0).toBeCloseTo(0.03352, 5);
|
||||
expect(fogState?.density ?? 0).toBeCloseTo(0.08295, 5);
|
||||
});
|
||||
|
||||
it("does not enable fog when the camera is not submerged", () => {
|
||||
|
||||
@@ -100,7 +100,8 @@ describe("water volume integration", () => {
|
||||
colorHex: "#4da6d9",
|
||||
surfaceOpacity: 0.55,
|
||||
waveStrength: 0.35,
|
||||
foamContactLimit: 6
|
||||
foamContactLimit: 6,
|
||||
surfaceDisplacementEnabled: false
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -144,7 +145,8 @@ describe("water volume integration", () => {
|
||||
colorHex: "#12a4ff",
|
||||
surfaceOpacity: 0.55,
|
||||
waveStrength: 0.35,
|
||||
foamContactLimit: 6
|
||||
foamContactLimit: 6,
|
||||
surfaceDisplacementEnabled: false
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user