Enhance tests for foliage render batches, adding checks for LOD stability and quality disabling
This commit is contained in:
@@ -251,6 +251,11 @@ describe("foliage render batch helpers", () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
expect(plan.chunks).toHaveLength(1);
|
expect(plan.chunks).toHaveLength(1);
|
||||||
|
expect(plan.chunks[0]?.center).toEqual({ x: 8, y: 0, z: 8 });
|
||||||
|
expect(plan.chunks[0]?.radius).toBeCloseTo(Math.sqrt(128));
|
||||||
|
expect(plan.chunks[0]?.batchKeysByLodLevel[0]).toBe(
|
||||||
|
plan.batches.find((batch) => batch.lodLevel === 0)?.key
|
||||||
|
);
|
||||||
expect(plan.batches).toHaveLength(prototype.lods.length);
|
expect(plan.batches).toHaveLength(prototype.lods.length);
|
||||||
expect(plan.batches.map((batch) => batch.lodLevel).sort()).toEqual([
|
expect(plan.batches.map((batch) => batch.lodLevel).sort()).toEqual([
|
||||||
0, 1, 2, 3
|
0, 1, 2, 3
|
||||||
@@ -296,6 +301,34 @@ describe("foliage render batch helpers", () => {
|
|||||||
).toBeNull();
|
).toBeNull();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("keeps chunk LOD stable near thresholds when a previous LOD is active", () => {
|
||||||
|
const prototype = BUNDLED_FOLIAGE_PROTOTYPES[0]!;
|
||||||
|
const plan = createFoliageRenderResourcePlan(
|
||||||
|
createScatter([createInstance({ prototypeId: prototype.id })]),
|
||||||
|
{
|
||||||
|
[prototype.id]: prototype
|
||||||
|
}
|
||||||
|
);
|
||||||
|
const chunk = plan.chunks[0]!;
|
||||||
|
const thresholdHoverView = {
|
||||||
|
cameraPosition: { x: 27, y: 0, z: 8 }
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(
|
||||||
|
resolveFoliageRenderChunkLod({
|
||||||
|
chunk,
|
||||||
|
view: thresholdHoverView
|
||||||
|
})?.level
|
||||||
|
).toBe(1);
|
||||||
|
expect(
|
||||||
|
resolveFoliageRenderChunkLod({
|
||||||
|
chunk,
|
||||||
|
view: thresholdHoverView,
|
||||||
|
previousLodLevel: 0
|
||||||
|
})?.level
|
||||||
|
).toBe(0);
|
||||||
|
});
|
||||||
|
|
||||||
it("returns no batches when foliage quality is disabled", () => {
|
it("returns no batches when foliage quality is disabled", () => {
|
||||||
const prototype = BUNDLED_FOLIAGE_PROTOTYPES[0]!;
|
const prototype = BUNDLED_FOLIAGE_PROTOTYPES[0]!;
|
||||||
const batches = createFoliageRenderBatches(
|
const batches = createFoliageRenderBatches(
|
||||||
|
|||||||
Reference in New Issue
Block a user