Babylon.js - V8 demo source

Back to demo

main.ts

import { runDemo } from "../shared/demoRunner";
import { createV8Scene } from "./scene";

runDemo({ createScene: createV8Scene });

scene.ts

import type { Engine } from "@babylonjs/core/Engines/engine";
import type { Scene } from "@babylonjs/core/scene";
import { LoadSceneAsync } from "@babylonjs/core/Loading/sceneLoader";
import { ShadowGenerator } from "@babylonjs/core/Lights/Shadows/shadowGenerator";
import "@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent";
import "@babylonjs/core/Loading/Plugins/babylonFileLoader";
import "@babylonjs/core/Engines/Extensions/engine.cubeTexture";

export async function createV8Scene(engine: Engine): Promise<Scene> {
    const scene = await LoadSceneAsync("/Scenes/V8/v8.babylon", engine);
    scene.collisionsEnabled = true;

    if (scene.activeCamera) {
        scene.activeCamera.minZ = 1;
    }

    const shadowGenerator = scene.lights[0]?.getShadowGenerator();
    if (shadowGenerator instanceof ShadowGenerator) {
        shadowGenerator.usePoissonSampling = true;
        shadowGenerator.bias = 0.01;
    }

    return scene;
}