bma73

.getHeightAtCoordinates() with .updateMeshPositions()

Recommended Posts

Hi,

I'm manipulating the vertices of a ground mesh using the .updateMeshPositions() method and  now i want to get the height at a specific point (x,z) on the mesh with .getHeightAtCoordinates().

Unfortunately, this doesn't seem to work...

Here is a playground example:
http://www.babylonjs-playground.com/#1JXJVF#2
 

What am I doing wrong? 

Thank you!

BMA

 

 

Share this post


Link to post
Share on other sites

The altitudes are computed, for performance reasons, once on the first call to getHeightAtCoordinates() because the height map, designed from an image, wasn't supposed to be updated then

Nevertheless, if you want to force the altitude recomputation at will, just use the private method _computeHeightQuads() : https://github.com/BabylonJS/Babylon.js/blob/master/src/Mesh/babylon.groundMesh.ts#L109

heightMap._computeHeightQuads();

This will generate a new underlying pre-computed altitude array.

Note well that, for now, this is not optimized to be used in the render loop because a new big array is generated each call. Your GC will shout !

Until I find a way to fix this, you should use a ribbon instead (if you don't need the heights from an image) and the same dedicated user function than in this example : 

 

Share this post


Link to post
Share on other sites

I just PRed an optimization, regarding the GC, with a new public method called updateCoordinateHeights() to force the height array reomputation on demand without any memory reallocation.

I'll show a PG example as soon as the fix is pushed in the PG engine.

 

[EDIT] :

 

Share this post


Link to post
Share on other sites

please have a look a this example : http://jerome.bousquie.fr/BJS/demos/getHeightAtCoordinates.html

 

code here : http://jerome.bousquie.fr/BJS/demos/getHeightAtCoordinates.js

the boxes are rotated according the terrain normals : just a cross product (two actually) between the box direction (velocity) and the current terrain normal. 

 

ground API doc : http://doc.babylonjs.com/classes/2.4/GroundMesh

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.