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); }
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; }
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" ); }
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; }
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; }