All Activity

This stream auto-updates   

  1. Today
  2. Hello Guys! I want to know why this error is coming out: phaser.js:17481 Uncaught TypeError: Cannot read property 'compressionAlgorithm' of null at PIXI.WebGLRenderer.updateTexture (phaser.js:17481) at PIXI.WebGLSpriteBatch.renderBatch (phaser.js:18911) at PIXI.WebGLSpriteBatch.flush (phaser.js:18890) at PIXI.WebGLSpriteBatch.renderTilingSprite (phaser.js:18629) at Phaser.TileSprite._renderWebGL (phaser.js:60299) at Phaser.World.PIXI.DisplayObjectContainer._renderWebGL (phaser.js:15056) at Phaser.Stage.PIXI.DisplayObjectContainer._renderWebGL (phaser.js:15056) at PIXI.WebGLRenderer.renderDisplayObject (phaser.js:17377) at PIXI.WebGLRenderer.render (phaser.js:17343) at Phaser.Game.updateRender (phaser.js:35041) this is my code: Preload = { preload: function(){ PhaserGame.load.image("Background", "./img/Preload.jpg"); PhaserGame.load.image("LoadingFrame", "./img/Loading/LoadingFrame.png"); PhaserGame.load.image("Loading", "./img/Loading/LoadingBar.png"); }, create: function(){ // INTERFAZ // this.Background = PhaserGame.add.image(0, 0, "Background"); PhaserGame.scale.pageAlignHorizontally = true; this.LoadingBar = PhaserGame.add.tileSprite(PhaserGame.width/2-(416), PhaserGame.height/2-(26-80), 832, 52, "Loading"); this.LoadingBar.width = 0; this.LoadingFrame = PhaserGame.add.image(this.LoadingBar.position.x, this.LoadingBar.position.y, "LoadingFrame"); this.LoadingPercentage = PhaserGame.add.text(0, 0, "", {font: "bold 18px Arial"}); this.LoadingPercentage.addColor("#000000", 0); // EVENTOS // PhaserGame.load.onLoadStart.add(this.Start, this); PhaserGame.load.onFileComplete.add(this.Loading, this); PhaserGame.load.onLoadComplete.add(this.Finished, this); this.Preloaders(); }, update: function(){}, Preloaders: function(){ PhaserGame.load.image("Background", "./img/Assest/Background001.png"); PhaserGame.load.image("BarFrame", "./img/Assest/BarFrame.png"); PhaserGame.load.image("BlueBar", "./img/Assest/BlueBar.png"); PhaserGame.load.image("RedBar", "./img/Assest/RedBar.png"); PhaserGame.load.image("GreenBar", "./img/Assest/GreenBar.png"); PhaserGame.load.image("Coin", "./img/Assest/Coin.png"); PhaserGame.load.image("Energy", "./img/Assest/Energy.png"); PhaserGame.load.image("Star", "./img/Assest/Star.png"); PhaserGame.load.image("StatusBar001", "./img/Assest/StatusBar001.png"); PhaserGame.load.image("StatusBar002", "./img/Assest/StatusBar002.png"); PhaserGame.load.image("StatusBar003", "./img/Assest/BarFrame.png"); PhaserGame.load.image("Lock", "./img/Assest/Lock.png"); PhaserGame.load.image("Unlock", "./img/Assest/BarFrame.png"); PhaserGame.load.image("Health001", "./img/Assest/Health001.png"); PhaserGame.load.image("Health002", "./img/Assest/Health002.png"); PhaserGame.load.image("Health003", "./img/Assest/Health003.png"); // BOTONES // PhaserGame.load.spritesheet("Button002", "./img/Buttons/002.png", 108, 48); PhaserGame.load.start(); }, Start: function(){ this.LoadingPercentage.text = "Preparing..."; this.LoadingPercentage.position.x = this.LoadingFrame.position.x+(this.LoadingFrame.width/2-(this.LoadingPercentage.width/2)); this.LoadingPercentage.position.y = this.LoadingFrame.position.y+(this.LoadingFrame.height/2-(this.LoadingPercentage.height/2)); }, Loading: function(progress){ this.LoadingBar.width = 832*progress/100; this.LoadingPercentage.text = progress+"%"; this.LoadingPercentage.position.x = this.LoadingFrame.position.x+(this.LoadingFrame.width/2-(this.LoadingPercentage.width/2)); this.LoadingPercentage.position.y = this.LoadingFrame.position.y+(this.LoadingFrame.height/2-(this.LoadingPercentage.height/2)); }, Finished(){ PhaserGame.state.start("MainMenu"); } } This is the line of the error: this.Background = PhaserGame.add.image(0, 0, "Background"); If that line is commented, do not throw mistakes Why is this?
  3. @ivan.popelyshev That's awesome. It is an example that simple changes affect so much in behaviors. I think I just get lost when I switch my brain from canvas API to PIXI's API. They are totally different! I can't do this without your help. BTW, your new code doesn't even use pivot this time, why?
  4. Oh good catch!! Sorry I missed that, it seems so obvious in hindsight. I'm glad you got it working. Btw, instead of using sendToBack, you can just create the background first, then the platforms, then the player.
  5. Hi, Is your tileset "tmw_desert_spacing" and tilemap JSON inside the same folder? Because in your tilemap property "tilesets", looks like it's expecting to be in the same folder: "image":"tmw_desert_spacing.png", I didn't understand what you're trying to achieve here: sid = map.tiles[tile.index][2]; set = map.tilesets[sid]; map.tiles returns the property "tiles" from your tilemap json, and I didn't see any "tiles" property there. If your're trying to get an specific tile, you can do it using: var tile = map.getTile(x, y, layer, true); Bonus: //to get the tileset ID (number): var tilesetID = map.getTilesetIndex("tmw_desert_spacing");
  6. Good afternoon, first of all I have to say that update to the last verison that the repository that you left me up, replace the files with the new version but i get this error babylon.js:6 Uncaught TypeError: o.getScene(...).addMesh is not a function at i [as constructor] (babylon.js:6) at i.r [as constructor] (babylon.js:11) at new i (babylon.js:24) at Function.t.CreateGround (babylon.js:24) at Game.createTrack (Game.ts:47) at Game.init (Game.ts:114) at window.addEventListener (index.ts:8) I do not know if it's my fault, here I leave a repo with what I have until now https://github.com/sailarg/test All I want to do is load a scene with a terrain, a cubemap (the example and already achieved) and an animation (the wolf running) this is my index.html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html" charset="utf-8"/> <title>Babylon - Getting Started</title> <script src="js/hand.min.1.3.8.js"></script> <script src="js/cannon.js"></script> <script src="js/Oimo.js"></script> <script src="js/split.js"></script> <script src="js/babylon.max.js"></script> <script src="js/babylon.terrainMaterial.min.js"></script> <script src="js/bGUI.js"></script> <script src="js/engine.js"></script> <link type="text/css" href="css/style.css" rel="stylesheet"/> </head> <body> <canvas id="renderCanvas"></canvas> </body> </html> And engine.js (Compiled already, I remind you that I use typescript) class MySkybox { create(scene, _size = 100.0) { var skyboxMaterial = new BABYLON.StandardMaterial("skyBox", scene); skyboxMaterial.backFaceCulling = false; skyboxMaterial.disableLighting = true; skyboxMaterial.diffuseColor = new BABYLON.Color3(0, 0, 0); skyboxMaterial.specularColor = new BABYLON.Color3(0, 0, 0); skyboxMaterial.reflectionTexture = new BABYLON.CubeTexture("assets/skyboxTextures/skybox", scene); skyboxMaterial.reflectionTexture.coordinatesMode = BABYLON.Texture.SKYBOX_MODE; let skybox = BABYLON.Mesh.CreateBox("skyBox", _size, scene); skybox.material = skyboxMaterial; skybox.infiniteDistance = false; return skybox; } } class Jockey { constructor(_data) { this._name = _data._name; if (_data._age != undefined) { this._age = _data._age; } } getID() { return this._id; } makeRandom() { this._skin = Math.floor(Math.random() * 15); var has_marks = !(this._skin > 0 && this._skin < 6); if (has_marks) { this._hands = Math.floor(Math.random() * 7) - 1; this._hands_color = this._hands == -1 ? -1 : 1; } else { this._hands = -1; this._hands_color = -1; } console.log("HCODE", this._hands, this._hands_color); } } class Horse { constructor(_data) { this._name = _data._name; if (_data._age != undefined) { this._age = _data._age; } } getID() { return this._id; } makeRandom() { this._skin = Math.floor(Math.random() * 15); var has_marks = !(this._skin > 0 && this._skin < 6); if (has_marks) { this._hands = Math.floor(Math.random() * 7) - 1; this._hands_color = this._hands == -1 ? -1 : 1; this._feet = Math.floor(Math.random() * 7) - 1; this._feet_color = this._feet == -1 ? -1 : 1; this._head = Math.floor(Math.random() * 11) - 1; this._head_color = this._head == -1 ? -1 : 1; } else { this._hands = -1; this._hands_color = -1; this._feet = -1; this._feet_color = -1; this._head = -1; this._head_color = -1; } console.log("HCODE", this._hands, this._hands_color, this._feet, this._feet_color, this._head, this._head_color); } } class Game { constructor(canvasElement) { this._canvas = document.getElementById(canvasElement); this._engine = new BABYLON.Engine(this._canvas, true); } createScene() { this._scene = new BABYLON.Scene(this._engine); this._camera = new BABYLON.FreeCamera('camera_1', new BABYLON.Vector3(0, 10, 15), this._scene); this._camera.setTarget(new BABYLON.Vector3(0, 0, 0)); this._camera.attachControl(this._canvas, true); this._light = new BABYLON.HemisphericLight('light_1', new BABYLON.Vector3(0, 1, 0), this._scene); } createTrack(_width = 100.0, _height = 100.0, _subdivisions = 2) { var terrainMaterial = new BABYLON.TerrainMaterial("terrainMaterial", this._scene); terrainMaterial.specularColor = new BABYLON.Color3(0.5, 0.5, 0.5); terrainMaterial.specularPower = 64; terrainMaterial.mixTexture = new BABYLON.Texture("assets/tracks/mixMap.png", this._scene); terrainMaterial.diffuseTexture1 = new BABYLON.Texture("assets/tracks/floor.png", this._scene); terrainMaterial.diffuseTexture2 = new BABYLON.Texture("assets/tracks/rock.png", this._scene); terrainMaterial.diffuseTexture3 = new BABYLON.Texture("assets/tracks/grass.png", this._scene); terrainMaterial.bumpTexture1 = new BABYLON.Texture("assets/tracks/floor_bump.png", this._scene); terrainMaterial.bumpTexture2 = new BABYLON.Texture("assets/tracks/rockn.png", this._scene); terrainMaterial.bumpTexture3 = new BABYLON.Texture("assets/tracks/grassn.png", this._scene); terrainMaterial.diffuseTexture1.uScale = terrainMaterial.diffuseTexture1.vScale = 10; terrainMaterial.diffuseTexture2.uScale = terrainMaterial.diffuseTexture2.vScale = 10; terrainMaterial.diffuseTexture3.uScale = terrainMaterial.diffuseTexture3.vScale = 10; var ground = BABYLON.Mesh.CreateGround("ground", 100, 100, 100, 0, 10, this._scene, false); ground.position.y = -2.05; ground.material = terrainMaterial; } createModel() { let __this = this; BABYLON.SceneLoader.ImportMesh("wolf", "assets/animation/", "Wolf.babylon", __this._scene, function (newMeshes, particleSystems, skeletons) { var wolf = newMeshes[1]; __this._scene.beginAnimation(skeletons[0], 0, 100, true, 0.8); }); } createSkybox(_size = 100.0) { this._skybox = new MySkybox().create(this._scene, _size); } animate() { this._engine.runRenderLoop(() => { this._scene.render(); }); window.addEventListener('resize', () => { this._engine.resize(); }); } init() { this.createScene(); this.createTrack(); this.createSkybox(); this.createModel(); this.animate(); } } window.addEventListener('DOMContentLoaded', () => { console.log("creating a new game"); let game = new Game('renderCanvas'); game.init(); }); //# sourceMappingURL=engine.js.map
  7. Yesterday
  8. Thanks for the reply! I did fix this with game.world.sendToBack(background); to place the background behind the ground, that was the main problem. Thanks for your time!
  9. In which place in my code I can use this? When I used this before 'return scene' and i tried log 'scene.getMeshByName("Cube")' I got null.
  10. I've been having a look through the phaser tutorials for json tiled maps and I've noticed that it's not clear on how to create a json tiled map that is 'phaser ready'. After creating a tiled map in tiled and following the code examples I've been unable to get passed the following error. Cannot read property '2' of undefined line phaser.js:98679 // find the relevant tileset sid = map.tiles[tile.index][2]; set = map.tilesets[sid]; version: 2.6.2 Is there anything obviously wrong with the code or the exported json tile map? Maybe there is a special way to export maps from tiled? Help would be appreciated. Thanks. game = new Phaser.Game(600, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update }); function preload() { game.load.tilemap('map', 'assets/map.json', null, Phaser.Tilemap.TILED_JSON); game.load.image('tmw_desert_spacing', 'assets/tmw_desert_spacing.png'); } function create() { map = game.add.tilemap('map'); map.addTilesetImage('tmw_desert_spacing'); layer = map.createLayer('Tile Layer 1'); } { "height":14, "layers":[ { "data":[0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 0, 0, 40, 40, 0, 0, 40, 40, 40, 0, 40, 40, 0, 40, 0, 0, 40, 40, 0, 0, 0, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 40, 0, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 0, 40, 0, 40, 0, 40, 40, 40, 40, 40, 0, 40, 40, 40, 0, 40, 40, 0, 40, 0, 40, 40, 0, 40, 0, 40, 40, 40, 0, 0, 40, 40, 40, 0, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 40, 40, 40], "height":14, "name":"Tile Layer 1", "opacity":1, "type":"tilelayer", "visible":true, "width":14, "x":0, "y":0 }], "nextobjectid":1, "orientation":"orthogonal", "renderorder":"right-down", "tiledversion":"1.0.1", "tileheight":32, "tilesets":[ { "firstgid":1, "source": { "columns":8, "image":"tmw_desert_spacing.png", "imageheight":199, "imagewidth":265, "margin":0, "name":"tmw_desert_spacing", "spacing":0, "tilecount":48, "tileheight":32, "tilewidth":32, "type":"tileset" } }], "tilewidth":32, "type":"map", "version":1, "width":14 }
  11. You could use scene.getMeshByName("Cube") to get the mesh and then change the diffuseColor of the material. As far as I know name and id are the same in Blender exporter.
  12. Replying to myself again: the source of the problem is Phaser.Utils.Debug.boot(), which creates a new canvas every time it is called, which by default is every time a new Phaser.Game instance is created and booted. Only affects instances where the renderer is WebGL (or more precisely whenever renderType !== Phaser.CANVAS), and if enableDebug is true, which is the default. For completeness, here's an edited version of the above demonstration code that does not exhibit the memory leak (by virtue of disabling debugging): <!doctype html> <html> <head> <meta charset="UTF-8"/> <title>test</title> <script src="http://cdnjs.cloudflare.com/ajax/libs/phaser-ce/2.8.1/phaser.js"></script> </head> <body> <button id="button">Click</button> <div id="canvas"></div> <script> window.onload = function() { var d, n, game; d = document.getElementById('button'); n = document.getElementById('canvas'); function preload() { } function create() { } function update() { } function handler() { if(game) { game.destroy(); game = null; } else { game = new Phaser.Game({ width: 800, height: 600, renderer: Phaser.AUTO, parent: n, enableDebug: false, state: { preload: preload, create: create, update: update }, }); } } d.onclick = handler; }; </script> </body> </html>
  13. Hey guys! I was messing around with some of this WebVR Vive stuff and it's pretty exciting! I was wondering, maybe I'm crazy, are the minZ and maxZ variables on the WebVRFreeCamera broken? I've been messing with them and they don't seem to modify the clipping planes at all.
  14. I think I should re-do the UI completely.
  15. Available for work! Please email me at [email protected] to ensure my receipt of your messages. Here's some new art I made:
  16. I've never done this before, so I'll read carefully the instructions! If I got it right first I fork the documentation from github, clone locally, create the new content, grunt build and create a pull request, right? At first I thought of doing it, but if you dispose of the previous one you lose position, rotation and physics impostor. Yes, you can copy all that, but I'm lazy . Then I thought there must be a simpler way, with my method you mantain all that and only change the options parameters. In fact, all the CreateXXX methods can add this resetOptions(options) method to the resulting mesh. However I don't know if this would break something else. The thing would look like this: let myBox = BABYLON.MeshBuilder.CreateBox("box", options, scene); CreateBox adds the resetOptions method to the mesh, and when you need to change the options parameter just: myBox.restOptions(newOptions); This would only work for meshes created the CreateXXX way, but AFAIK those are the only use cases for the option parameters. The main limitation is that you keep the same texture object, but if you use the faceUV parameter it works just as a spritesheet where you keep all the different textures and only change the UVs.
  17. I maked simple hexagon in blender and i want change colour on click button "Click me". How I can refer to the specific id (In this case - Cube) from blender in my script? Can you check my html file? I'm not sure that all it's good. It's blender file {"producer":{"name":"Blender","version":"2.78 (sub 0)","exporter_version":"4.6.1","file":"szescian.babylon"}, "autoClear":true,"clearColor":[0.0509,0.0509,0.0509],"ambientColor":[0,0,0],"gravity":[0,-9.81,0], "materials":[{"name":"szescian.Material","id":"szescian.Material","ambient":[0.8,0.7048,0.0663],"diffuse":[0.64,0.5639,0.0531],"specular":[0.5,0.5,0.5],"emissive":[0,0,0],"specularPower":50,"alpha":1,"backFaceCulling":true,"checkReadyOnlyOnce":false}], "multiMaterials":[], "skeletons":[], "meshes":[{"name":"Plane","id":"Plane","billboardMode":0,"position":[0.2658,0.2489,1.9542],"rotation":[0,0,0],"scaling":[5,5,5],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false ,"positions":[1,0,-1,-1,0,1,-1,0,-1,1,0,1] ,"normals":[0,1,0,0,1,0,0,1,0,0,1,0] ,"indices":[0,1,2,0,3,1] ,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":4,"indexStart":0,"indexCount":6}] ,"instances":[]} ,{"name":"Cube","id":"Cube","materialId":"szescian.Material","billboardMode":0,"position":[0,1,0],"rotation":[0,0,0],"scaling":[1,1,1],"isVisible":true,"freezeWorldMatrix":false,"isEnabled":true,"checkCollisions":false,"receiveShadows":false ,"positions":[1,-1,-1,-1,-1,1,1,-1,1,-1,1,1,1,1,-1,1,1,1,-1,-1,-1,-1,1,-1] ,"normals":[0.5773,-0.5773,-0.5773,-0.5773,-0.5773,0.5773,0.5773,-0.5773,0.5773,-0.5773,0.5773,0.5773,0.5773,0.5773,-0.5773,0.5773,0.5773,0.5773,-0.5773,-0.5773,-0.5773,-0.5773,0.5773,-0.5773] ,"indices":[0,1,2,3,4,5,5,0,2,4,6,0,6,3,1,2,3,5,0,6,1,3,7,4,5,4,0,4,7,6,6,7,3,2,1,3] ,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":8,"indexStart":0,"indexCount":36}] ,"instances":[]} ], "cameras":[{"name":"Camera","id":"Camera","position":[7.4811,5.3437,-6.5076],"rotation":[0.4615,-0.8149,0],"fov":0.8576,"minZ":0.1,"maxZ":100,"speed":1,"inertia":0.9,"checkCollisions":false,"applyGravity":false,"ellipsoid":[0.2,0.9,0.2],"cameraRigMode":0,"interaxial_distance":0.0637,"type":"FreeCamera"}],"activeCamera":"Camera", "lights":[{"name":"Lamp","id":"Lamp","type":0,"position":[4.0762,5.9039,1.0055],"intensity":8.22,"diffuse":[0.1138,1,0.1492],"specular":[0.1138,1,0.1492]}], "shadowGenerators":[] } My html code <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html" charset="utf-8"/> <title>Babylon - Getting Started</title> <!-- link to the last version of babylon --> <script src="js/babylon.2.5.js"></script> <link rel="stylesheet" href="css/style.css"> </head> <body> <canvas id="renderCanvas"></canvas> <button id="sweetButton">Click me</button> <script> window.addEventListener('DOMContentLoaded', function(){ var canvas = document.getElementById('renderCanvas'); var engine = new BABYLON.Engine(canvas, true); engine.enableOfflineSupport = false; var createScene = function(){ var scene = new BABYLON.Scene(engine); // create a FreeCamera, and set its position to (x:0, y:5, z:-10) var camera = new BABYLON.FreeCamera('camera1', new BABYLON.Vector3(0, 5,-10), scene); // target the camera to scene origin camera.setTarget(BABYLON.Vector3.Zero()); // attach the camera to the canvas camera.attachControl(canvas, false); // create a basic light, aiming 0,1,0 - meaning, to the sky var light = new BABYLON.HemisphericLight('light1', new BABYLON.Vector3(0,1,0), scene); BABYLON.SceneLoader.ImportMesh("","","szescian.babylon",scene); return scene; } var scene = createScene(); engine.runRenderLoop(function(){ scene.render(); }); window.addEventListener('resize', function() { engine.resize(); }); }); </script> </body> </html>
  18. I've just started with phaser and I'm looking into csv tile maps. I'm using tiled to create the maps with multiple layers to separate parts of the map such as collision, npc, etc. Exporting the map to csv leads to multiple csv files being created which is what im unsure on how to handle with phaser. To get around this i've combined the layers before exporting them however this is not ideal as I would prefer less coupling. A problem that I have faced is that i'm not sure how to add and reference multiple csv tile layers to a game based on the phaser documentation. Reference: https://phaser.io/examples/v2/tilemaps/csv-map Q1. Why is the parameter passed in 0 when creating a layer based on the csv tiles? layer = map.createLayer(0); Q2. How would I go about adding in a second layer so that it's part of the same map and is shown at the same time as the first layer? function preload() { game.load.tilemap('map', 'assets/tilemaps/csv/catastrophi_level1.csv', null, Phaser.Tilemap.CSV); game.load.tilemap('map2', 'assets/tilemaps/csv/catastrophi_level2.csv', null, Phaser.Tilemap.CSV); game.load.image('tiles', 'assets/tilemaps/tiles/catastrophi_tiles_16.png'); game.load.image('tiles2', 'assets/tilemaps/tiles/catastrophi_tiles_16.png'); } var map; var layer; var cursors; function create() { // Because we're loading CSV map data we have to specify the tile size here or we can't render it map = game.add.tilemap('map', 16, 16); // Now add in the tileset map.addTilesetImage('tiles'); // Create our layer layer = map.createLayer(0); map2 = game.add.tilemap('map2', 16, 16); map2.addTilesetImage('tiles'); layer2 = map2.createLayer(?);// 0? map.layers.push(layer2);//make sure both layers are on the same map?
  19. You won't have any performance gain running inside an app (Cordova or Hosted Web App) as it's exact the same JavaScript and rendering engine used via the webview. As you said, you have to consider that a mobile has a potential less powerful GPU but it's really more on the memory side you'll have trouble as well as CPU. For instance my iPhone 6s has a more powerful GPU than my laptop running a i7 with the embed GPU! As @deltakosh said, try our Sponza demo, it runs well on most of the recent smartphones. David
  20. I have a scene not quite ready, but essentially a human mesh appears. It does some skeleton posing coordinated with some morphing. The scene is using an arcrotate camera. The human has meshes for eyes, eyelashes, eye browse, teeth, & tongue which were all merged prior to export. They are a single mesh with multi-materials, so sub-meshes, in BJS. If you zoom in, the sub-meshes disappear early. I am not sure, is this was supposed to happen? BTW, If no animation is done or only the morphing, then this does not happen. If I do the QI.skeleton posing this results. The series of poses do lower the skeleton, which are part of a defense. Could it be since bones are done on gpu, frustrum is not done based on being slightly crouched? It does look really weird.
  21. Oh, i thought that there white circles are actual circles OK, i changed a lot, just run a diff or something like that to understand hats going on. 1. Moved eyes inside the head 2. changed anchor to (0, 0.5) 3. change rotation that it "jumps" to mouse position (+=) 4. using last event in RAF, to adjust eyes after head rotation.
  22. Note: you need to use the grab button (left or right) to enable teleportation.
  23. Hello, Here are 2 demos working fine with HTC Vive or Oculus to move via teleportation : - Mansion VR: http://playground.babylonjs.com/#YITJU9%2331 - the same demo you're referencing but updated : https://www.babylonjs-playground.com/#U848D6#15 I've tested them successfully in my Vive on Firefox 55 beta David
  24. snupas, Do you mean that the scene will be downloaded when running through a mobile app. So an app useless in case the scene is updated periodically?
  25. Hello! So you cannot add objects to the shadowmap on EVERY frame This will destroy perf (see lines #111 and #112) The guy is composed of multiple meshes. See it fixed here: http://www.babylonjs-playground.com/#1EVNNB#93 You don't have acne issue actually: you have a problem of precision. For the ESM version, can you try to reproduce your setup in the PG: this is likely a problem to just move the light at the right place
  26. @scheffgames my friend, one day you're going to be huge! So don't muddle your brand "Exonplay" with the global might of "Exxon". Rebrand now - because it is day 1 and costs nothing to do so. Tomorrow will cost more ...
  1. Load more activity