Beispiel #1
0
        public override Scene CreateScene(dom.HTMLCanvasElement canvas, Engine engine)
        {
            // This creates a basic Babylon Scene object (non-mesh)
            var scene = new Scene(engine);

            // This creates and positions a free camera (non-mesh)
            var camera = new FreeCamera("camera1", new Vector3(0, 5, -10), scene);

            // This targets the camera to scene origin
            camera.setTarget(Vector3.Zero());

            // This attaches the camera to the canvas
            camera.attachControl(canvas, true);

            // This creates a light, aiming 0,1,0 - to the sky (non-mesh)
            var light = new HemisphericLight("light1", new Vector3(0, 1, 0), scene);

            // Default intensity is 1. Let's dim the light a small amount
            light.intensity = 0.7;

            // Our built-in 'sphere' shape. Params: name, subdivs, size, scene
            var sphere = Mesh.CreateSphere("sphere1", 16, 2, scene);

            // Move the sphere upward 1/2 its height
            sphere.position.y = 1;

            // Our built-in 'ground' shape. Params: name, width, depth, subdivs, scene
            var ground = Mesh.CreateGround("ground1", 6, 6, 2, scene);

            return(scene);
        }
Beispiel #2
0
        public void CreateScene()
        {
            var canvas = Canvas.GetElementById(
                "game-window"
                );
            var engine = new Engine(
                canvas,
                true
                );
            var scene = new Scene(
                engine
                );
            var light0 = new PointLight(
                "Omni",
                new Vector3(
                    0,
                    100,
                    8
                    ),
                scene
                );
            var light1 = new HemisphericLight(
                "HemisphericLight",
                new Vector3(
                    0,
                    100,
                    8
                    ),
                scene
                );
            var house = SceneLoader.ImportMesh(
                null,
                "assets/",
                "House.gltf",
                scene
                );
            var freeCamera = new FreeCamera(
                "FreeCamera",
                new Vector3(
                    0,
                    0,
                    -100
                    ),
                scene
                )
            {
                rotation = new Vector3(
                    0,
                    0,
                    0
                    ),
            };

            scene.activeCamera = freeCamera;
            freeCamera.attachControl(
                false
                );
            engine.runRenderLoop(new ActionCallback(
                                     () => Task.Run(() => scene.render(true, false))
                                     ));

            _engine = engine;
        }
        public async ValueTask CreateScene()
        {
            var canvas = await Canvas.GetElementById(
                "game-window"
                );

            var engine = await Engine.NewEngine(
                canvas,
                true
                );

            var scene = await Scene.NewScene(
                engine
                );

            var light0 = await PointLight.NewPointLight(
                "Omni",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var light1 = await HemisphericLight.NewHemisphericLight(
                "HemisphericLight",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var Player = await SceneLoader.ImportMesh(
                null,
                "assets/",
                "Shark.glb",
                scene,
                new ActionCallback <AbstractMesh[], IParticleSystem[], Skeleton[], AnimationGroup[], TransformNode[], Geometry[], Light[]>(async(arg1, arg2, arg3, arg4, arg5, arg6, arg7) =>
            {
                foreach (var animation in arg4)
                {
                    await animation.stop();
                    _animationMap.Add(await animation.get_name(), animation);
                }

                if (_animationMap.Count > 0)
                {
                    _runningAnimation = _animationMap.First().Value;
                    await _runningAnimation.start(true);
                }
            })
                );

            var camera = await ArcRotateCamera.NewArcRotateCamera(
                "ArcRotateCamera",
                (decimal)(System.Math.PI / 2),
                (decimal)(System.Math.PI / 4),
                0,
                await Vector3.NewVector3(0, 1, 0),
                scene
                );

            // This positions the camera
            await camera.setPosition(await Vector3.NewVector3(30, 10, -30));

            await camera.set_lowerRadiusLimit(2);

            await camera.set_upperRadiusLimit(100);

            await camera.set_wheelDeltaPercentage(0.01m);

            await scene.set_activeCamera(camera);

            await camera.attachControl(
                false
                );

            await engine.runRenderLoop(new ActionCallback(
                                           () => Task.Run(() => scene.render(true, false))
                                           ));

            _engine = engine;
        }
        public void CreateScene()
        {
            var canvas = Canvas.GetElementById(
                "game-window"
                );
            var engine = new Engine(
                canvas,
                true
                );
            var scene = new Scene(
                engine
                );
            var light0 = new PointLight(
                "Omni",
                new Vector3(
                    0,
                    100,
                    8
                    ),
                scene
                );
            var light1 = new HemisphericLight(
                "HemisphericLight",
                new Vector3(
                    0,
                    100,
                    8
                    ),
                scene
                );
            var advancedTexture = AdvancedDynamicTexture.CreateFullscreenUI("UI");
            var button          = Button.CreateSimpleButton(
                "button", "Click Me"
                );

            button.width      = "90%";
            button.height     = "90%";
            button.color      = "white";
            button.background = "green";
            button.onPointerClickObservable.add(async(Vector2WithInfo arg1, EventState state) =>
            {
                var x      = arg1.x.ToString();
                var fds    = arg1.buttonIndex;
                var vector = new Vector3(2.1m, 3.2m, 4.1m);
                Console.WriteLine(
                    $"Clicked: {arg1.x}, {arg1.y}"
                    );
                var xx        = vector.getClassName();
                ClickPosition = arg1;
                await InvokeAsync(StateHasChanged);
            });
            advancedTexture.addControl(
                button
                );
            var freeCamera = new FreeCamera(
                "FreeCamera",
                new Vector3(
                    0,
                    0,
                    -100
                    ),
                scene
                )
            {
                rotation = new Vector3(
                    0,
                    0,
                    0
                    ),
            };

            scene.activeCamera = freeCamera;
            freeCamera.attachControl(
                canvas,
                false
                );
            engine.runRenderLoop(() => Task.Run(() => scene.render(true, false)));

            _engine = engine;
        }
Beispiel #5
0
        public async Task CreateScene()
        {
            var canvas = await Canvas.GetElementById(
                "game-window"
                );

            var engine = await Engine.NewEngine(
                canvas,
                true
                );

            var scene = await Scene.NewScene(
                engine
                );

            var light0 = await PointLight.NewPointLight(
                "Omni",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var light1 = await HemisphericLight.NewHemisphericLight(
                "HemisphericLight",
                await Vector3.NewVector3(0, 100, 8),
                scene
                );

            var advancedTexture = await AdvancedDynamicTexture.CreateFullscreenUI("UI");

            var button = await Button.CreateSimpleButton(
                "button", "Click Me"
                );

            await button.set_width("90%");

            await button.set_height("90%");

            await button.set_color("white");

            await button.set_background("green");

            await(await button.get_onPointerClickObservable()).add(async(Vector2WithInfo arg1, EventState state) =>
            {
                var x      = (await arg1.get_x()).ToString();
                var fds    = await arg1.get_buttonIndex();
                var vector = await Vector3.NewVector3(2.1m, 3.2m, 4.1m);
                //Console.WriteLine(
                //    $"Clicked: {await arg1.get_x()}, {await arg1.get_y()}"
                //);
                var xx          = await vector.getClassName();
                ClickPosition   = arg1;
                ClickPosition_X = await ClickPosition.get_x();
                ClickPosition_Y = await ClickPosition.get_y();
                await InvokeAsync(StateHasChanged);
                //Console.WriteLine("Clicked: ");
            });
            await advancedTexture.addControl(
                button
                );

            var freeCamera = await FreeCamera.NewFreeCamera(
                "FreeCamera",
                await Vector3.NewVector3(
                    0,
                    0,
                    -100
                    ),
                scene
                );

            await freeCamera.set_rotation(
                await Vector3.NewVector3(
                    0,
                    0,
                    0
                    )
                );

            await scene.set_activeCamera(freeCamera);

            await freeCamera.attachControl(false);

            await engine.runRenderLoop(new ActionCallback(() => Task.Run(() => scene.render(true, false))));

            _engine = engine;

            await Canvas.RemoveBlur(
                "game-window"
                );
        }
Beispiel #6
0
        public async ValueTask CreateScene()
        {
            var canvas = await Canvas.GetElementById(
                "game-window"
                );

            var engine = await Engine.NewEngine(
                canvas,
                true
                );

            var scene = await Scene.NewScene(
                engine
                );

            var light0 = await PointLight.NewPointLight(
                "Omni",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var light1 = await HemisphericLight.NewHemisphericLight(
                "HemisphericLight",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var house = await SceneLoader.ImportMesh(
                null,
                "assets/",
                "House.gltf",
                scene
                );

            var freeCamera = await FreeCamera.NewFreeCamera(
                "FreeCamera",
                await Vector3.NewVector3(
                    0,
                    0,
                    -100
                    ),
                scene
                );

            await freeCamera.set_rotation(await Vector3.NewVector3(
                                              0,
                                              0,
                                              0
                                              ));

            await scene.set_activeCamera(freeCamera);

            await freeCamera.attachControl(
                canvas,
                false
                );

            await engine.runRenderLoop(() => Task.Run(() => scene.render(true, false)));

            _engine = engine;
        }
        public void CreateScene()
        {
            var canvas = Canvas.GetElementById(
                "game-window"
                );
            var engine = new Engine(
                canvas,
                true
                );
            var scene = new Scene(
                engine
                );

            scene.clearColor = new Color4(0, 0, 0, 0);
            var light0 = new PointLight(
                "Omni",
                new Vector3(
                    0,
                    100,
                    8
                    ),
                scene
                );
            var light1 = new HemisphericLight(
                "HemisphericLight",
                new Vector3(
                    0,
                    100,
                    8
                    ),
                scene
                );
            var advancedTexture = AdvancedDynamicTexture.CreateFullscreenUI("UI");
            var UiPanel         = new StackPanel("name")
            {
                width               = "220px",
                fontSize            = "14px",
                horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_RIGHT,
                verticalAlignment   = Control.VERTICAL_ALIGNMENT_CENTER
            };

            advancedTexture.addControl(UiPanel);

            var house = SceneLoader.ImportMesh(
                null,
                "assets/",
                "Player.glb",
                scene,
                new Interop.Callbacks.ActionCallback <AbstractMesh[], IParticleSystem[], Skeleton[], AnimationGroup[], TransformNode[], Geometry[], Light[]>((arg1, arg2, arg3, arg4, arg5, arg6, arg7) =>
            {
                foreach (var animation in arg4)
                {
                    animation.stop();
                    _animationMap.Add(animation.name, animation);
                    AddRunAnimationButton(
                        UiPanel,
                        animation.name
                        );
                }
                if (_animationMap.Count > 0)
                {
                    _runningAnimation = _animationMap.First().Value;
                    _runningAnimation.start(true);
                }
                return(Task.CompletedTask);
            })
                );
            var camera = new ArcRotateCamera(
                "ArcRotateCamera",
                (decimal)(System.Math.PI / 2),
                (decimal)(System.Math.PI / 4),
                3,
                new Vector3(0, 1, 0),
                scene
                )
            {
                lowerRadiusLimit     = 2,
                upperRadiusLimit     = 10,
                wheelDeltaPercentage = 0.01m
            };

            scene.activeCamera = camera;
            camera.attachControl(
                false
                );
            engine.runRenderLoop(new ActionCallback(
                                     () => Task.Run(() => scene.render(true, false))
                                     ));

            _engine = engine;
        }
        public async ValueTask CreateScene()
        {
            var canvas = await Canvas.GetElementById(
                "game-window"
                );

            var engine = await Engine.NewEngine(
                canvas,
                true
                );

            var scene = await Scene.NewScene(
                engine
                );

            var light0 = await PointLight.NewPointLight(
                "Omni",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var light1 = await HemisphericLight.NewHemisphericLight(
                "HemisphericLight",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var advancedTexture = await AdvancedDynamicTexture.CreateFullscreenUI("UI");

            var UiPanel = await StackPanel.NewStackPanel("name");

            await UiPanel.set_width("220px");

            await UiPanel.set_fontSize("14px");

            await UiPanel.set_horizontalAlignment(await Control.get_HORIZONTAL_ALIGNMENT_RIGHT());

            await UiPanel.set_verticalAlignment(await Control.get_VERTICAL_ALIGNMENT_CENTER());

            await advancedTexture.addControl(UiPanel);

            var house = await SceneLoader.ImportMesh(
                null,
                "assets/",
                "Player.glb",
                scene,
                new Server.Interop.Callbacks.ActionCallback <AbstractMesh[], IParticleSystem[], Skeleton[], AnimationGroup[]>(async(arg1, arg2, arg3, arg4) =>
            {
                foreach (var animation in arg4)
                {
                    await animation.stop();
                    _animationMap.Add(await animation.get_name(), animation);
                    await AddRunAnimationButton(
                        UiPanel,
                        await animation.get_name()
                        );
                }
                if (_animationMap.Count > 0)
                {
                    _runningAnimation = _animationMap.First().Value;
                    await _runningAnimation.start(true);
                }
            })
                );

            var camera = await ArcRotateCamera.NewArcRotateCamera(
                "ArcRotateCamera",
                (decimal)(System.Math.PI / 2),
                (decimal)(System.Math.PI / 4),
                3,
                await Vector3.NewVector3(0, 1, 0),
                scene
                );

            await camera.set_lowerRadiusLimit(2);

            await camera.set_upperRadiusLimit(10);

            await camera.set_wheelDeltaPercentage(0.01m);

            await scene.set_activeCamera(camera);

            await camera.attachControl(
                canvas,
                false
                );

            await engine.runRenderLoop(() => Task.Run(() => scene.render(true, false)));

            _engine = engine;
        }
Beispiel #9
0
        public void CreateScene()
        {
            var canvas = Canvas.GetElementById(
                "game-window"
                );
            var engine = new Engine(
                canvas,
                true
                );
            var scene = new Scene(
                engine
                );
            var light1 = new HemisphericLight(
                "HemisphericLight",
                new Vector3(1, 1, 0),
                scene
                );

            var columns = 6m;
            var rows    = 1m;

            var faceUV = new Vector4[6];

            for (var i = 0; i < 6; i++)
            {
                faceUV[i] = new Vector4(
                    i / columns,
                    0,
                    (i + 1) / columns,
                    1m / rows
                    );
            }

            var mat = new StandardMaterial(
                "mat",
                scene
                );
            var texture = new Texture(
                scene,
                "https://assets.babylonjs.com/environments/numbers.jpg"
                );

            mat.diffuseTexture = texture;

            var alpha = 1;
            var red   = new Color4(
                1,
                0,
                0,
                alpha
                );
            var blue = new Color4(
                0,
                0,
                1,
                alpha
                );
            var green = new Color4(
                0,
                1,
                0,
                alpha
                );

            var options = new
            {
                faceUV,
                wrap       = true,
                width      = 1,
                height     = 2,
                depth      = 3,
                faceColors = new List <Color4> {
                    green, green, green, green, blue, red
                }
            };

            var box = MeshBuilder.CreateBox(
                "box",
                options,
                scene
                );

            box.material = mat;

            var camera = new ArcRotateCamera(
                "ArcRotateCamera",
                (decimal)(Math.PI / 2),
                (decimal)(Math.PI / 4),
                10,
                new Vector3(0, 1, 0),
                scene
                );

            scene.activeCamera = camera;
            camera.attachControl(
                false
                );

            engine.runRenderLoop(new ActionCallback(
                                     () => Task.Run(() => scene.render(true, false))
                                     ));

            _engine = engine;
        }