jpvaillancourt

Members
  • Content Count

    14
  • Joined

  • Last visited

  • Days Won

    1

jpvaillancourt last won the day on April 5

jpvaillancourt had the most liked content!

1 Follower

About jpvaillancourt

  • Rank
    Member
  • Birthday January 28

Contact Methods

  • Website URL
    http://korsr.studio
  • Skype
    vaillancourtjp

Profile Information

  • Gender
    Male
  • Location
    Montréal

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi Paul! We used Schemapack (https://www.npmjs.com/package/schemapack). We created a tool to automate the process and we feed it a list of schemas at start that is used for encoding / decoding, based on the message name. If the schema is not defined, we skip the encoding / decoding phase.
  2. Hey ! We have just release our first HTML5 game We are a small studio based in Montreal, Canada, that focus on delivering WebGL services to creative agencies. so, this year, instead of creating a Christmas card, we decided to create a mini casual multiplayer game. The goal is to throw decorations in order to claim the trees in the forest for your team. The last decoration wins the tree. It's pretty simple and fun Here's the tech stack we used for the game : BabylonJS ReactJS (For the GUI) ExpressJS (NodeJS server) Socket.io (For the multiplayer features) Amazon EC2 (Hosting) Webpack We had a lot of technical challenges to optimize the decorations and the forest, and we think it's working pretty well ! https://noeldescorsaires.com (Don't worry, the game is available in english ) Here's the studio's infos : https://korsr.studio (we do not even have a completed website XD) https://www.facebook.com/korsrstudio https://www.linkedin.com/company/korsr-studio Go see and try it ! We would love to have some feedbacks, comments or questions !
  3. I must say, the performance issue is a fps drop of 15 frames. I will profiled my code and get you back. As for the particle system, I have thought of it, but all my tree are user generated for the shape, decorations, colors, etc. They all have unique textures. Might it work?!? Haven't seen anything like this into the documentation. Sure it would save me a lot of time to manage and optimize the scale animation, but at the same time I feel I'll have an issue with the textures.
  4. I'm trying to create a forest with planes. All with a unique texture. Since I want it to be optimize, I have created a sort of "clusterer" to append some textures together and draw the planes into one mesh (with some serverside work to append the textures). It works fine! The problem that I have is that I need to animate the scale of the planes dynamically. I am using mesh.setVerticesData() to update the vertex positions, but it has some performance issues. Is there a way to update only 16 vertices positions out of 64k without refreshing ALL of the mesh? I'm not sure if I'm clear enough... that's what I have so far to update the positions. updateMesh(index, vertexPositions) { let positions = this.mesh.getVerticesData(BABYLON.VertexBuffer.PositionKind); let dataLength = vertexPositions.length; let startIndex = index * dataLength; for(let i = 0; i < dataLength; i++) { positions[startIndex+i] = vertexPositions[i]; } this.mesh.setVerticesData(BABYLON.VertexBuffer.PositionKind, positions); }
  5. Thanks ! I'll put a reminder to put the link here when it will be online for the beta. It's our company interactive christmas card.
  6. Since then I had a texture problem. I checked out another branch on my git and did an "npm install". It started to glitch again. It seems the problem wasn't fixed with setParent vs .parent, but by updating my npm packages. So I have NO idea what was wrong at first... Maybe a Babylon bug that was fixed. Probably the same reason why it worked into the playground.
  7. Thanks for the compliment I have created a playground, and it turns out it was working. I had to build an AssetsManager for our game. Turns out I had a problem with some of my transform since, mesh.parent = X is not the same as mesh.setParent(X). Still not sure why... I guess there's a manipulation on the transformation matrix on the setParent() method that need to be done.
  8. I have a very strange problem with the ray picker. I've been searching online for the past hours and tried so many things. I've checked the vertex normals and the geometry. Everything seems fine. It seems the ray only pick some faces of my mesh. Always the same ones, so it's not a "collision logic" issue. Every parts of my meshes are correctly UV mapped and they are all merged together. As you can see on the image, only this part of this mesh seemed to be picked by the ray. Any idea?
  9. I have a very simple graphics with a custom filter that creates a Noise + basic sin calculation to create a wave displacement map. I need to get the result of only one channel and I'm currently using : renderer.extract.pixels() But it is VERY slow. Is there a way to get the data output directly from the shader instead? I'm not sure if I'm explaining well enough... In other words, I would like to have the gl_FragColor of each pixels directly after the filter calculation. I'm pretty sure it should be possible instead of waiting for the Renderer to calculate the exact same result based on the position of the graphics, and then extracting it. I have search for several hours everywhere... Here's what I have at the moment (in Typescript), but the pixel() consume 49% of the tick duration. private createTextureDeformer() : void { this._pixiApp = new PIXI.Application(this.textureResolution + 1, this.textureResolution + 1, { transparent : <any> "notMultiplied", }); var uniforms : any = {}; uniforms.u_time = { type : 'f', value : 0 }; uniforms.u_size = { type : 'i', value : this.textureResolution }; this._textureFilter = new PIXI.Filter(null, this.getTextureDeformerShader(), uniforms); var graphics : PIXI.Graphics = new PIXI.Graphics(); graphics.drawRect(0, 0, this.textureResolution, this.textureResolution); graphics.filters = [this._textureFilter]; this._pixiApp.stage.addChild(graphics); if(this.debug) { document.body.appendChild(this._pixiApp.view); this._pixiApp.view.id = 'pixi-canvas'; } this.renderTextureDeformer(0); } private renderTextureDeformer(delta : number) : void { this._textureFilter.uniforms.u_time += delta / 1000; this._texturePixels = this._pixiApp.renderer.extract.pixels() as Uint8Array; }
  10. I found out ! My scene had a white transparent background instead of a black transparent one.
  11. I'm noticing that the light seems to be different in general between the two screenshots. But once again, the only thing that changes is the Debug Layer.
  12. I have a strange bug where my shadowGenerator.setDarkness value doesn't have the same effect when the debug layer is open or closed. I really don't see the possible link between those two things. Here are the 2 screenshots. Same darkness value (0.82). The only thing that differ is the commenting of the line that shows the debug layer. The shadow is cast on a plane with a ShadowOnlyMaterial Material.