Improve foliage instanced renderer tests with target support and state validation
This commit is contained in:
@@ -41,11 +41,14 @@ import { FoliageInstancedRenderer } from "../../src/foliage/foliage-instanced-re
|
|||||||
const TEST_TERRAIN_ID = "terrain-renderer";
|
const TEST_TERRAIN_ID = "terrain-renderer";
|
||||||
const TEST_LAYER_ID = "foliage-layer-renderer";
|
const TEST_LAYER_ID = "foliage-layer-renderer";
|
||||||
|
|
||||||
function createCamera(position: { x: number; y: number; z: number }) {
|
function createCamera(
|
||||||
|
position: { x: number; y: number; z: number },
|
||||||
|
target: { x: number; y: number; z: number } = { x: 8, y: 0, z: 8 }
|
||||||
|
) {
|
||||||
const camera = new PerspectiveCamera(60, 1, 0.1, 500);
|
const camera = new PerspectiveCamera(60, 1, 0.1, 500);
|
||||||
|
|
||||||
camera.position.set(position.x, position.y, position.z);
|
camera.position.set(position.x, position.y, position.z);
|
||||||
camera.lookAt(8, 0, 8);
|
camera.lookAt(target.x, target.y, target.z);
|
||||||
camera.updateProjectionMatrix();
|
camera.updateProjectionMatrix();
|
||||||
camera.updateMatrixWorld(true);
|
camera.updateMatrixWorld(true);
|
||||||
|
|
||||||
@@ -168,6 +171,23 @@ describe("FoliageInstancedRenderer", () => {
|
|||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
|
renderer.updateView(
|
||||||
|
createCamera(
|
||||||
|
{ x: 8, y: 8, z: 8 },
|
||||||
|
{
|
||||||
|
x: 10,
|
||||||
|
y: 0,
|
||||||
|
z: 8
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
|
await Promise.resolve();
|
||||||
|
|
||||||
|
expect(renderer.group.children[0]).toBe(activeBatchRoot);
|
||||||
|
expect(getInstancedMeshes(renderer.group)).toEqual(instancedMeshes);
|
||||||
|
expect(loaderState.loadCalls).toHaveLength(initialLoadCallCount);
|
||||||
|
expect(rebuildCount).toBe(initialRebuildCount);
|
||||||
|
|
||||||
renderer.updateView(createCamera({ x: 68, y: 8, z: 8 }));
|
renderer.updateView(createCamera({ x: 68, y: 8, z: 8 }));
|
||||||
await Promise.resolve();
|
await Promise.resolve();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user