Sign in to follow this  
ian

Babylon does not import model with its textures if I have bakeCurrentTransformIntoVertices in loop

Recommended Posts

I have problem with physics and mesh impostor with sphere.

I create some componets in blender. And add each component texture.  I create pathMesh from components. (pathMesh have multi materials and textures because each component has its own material and texture)

If I load babylon with sandbox it load OK (but sandbox doesn't have pathMesh.bakeCurrentTransformIntoVertices(); .

If I have pathMesh.bakeCurrentTransformIntoVertices(); in loop then pathMesh is loaded without textures and physics works OK.

If I remove pathMesh.bakeCurrentTransformIntoVertices(); then pathMesh is loaded correctly with textures, but physics doesn't work as it should.

var pathMesh;

meshTask.onSuccess = function (task) {                       
        for (var i=0; i<task.loadedMeshes.length; i++ ){
            var newMesheI = task.loadedMeshes[i];
            if ( newMesheI.id == "Path" ) {                        
                pathMesh = newMesheI;                                
       
              pathMesh.checkCollisions = true;
              pathMesh.bakeCurrentTransformIntoVertices(); // this line works ok with physics but pathMesh doesn load correcly with textures
               pathMesh.pBody= perplexus.setPhysicsState(BABYLON.PhysicsEngine.MeshImpostor , { mass: 0, friction: 0.4, restitution: 0 });                         
            }

...

I need pathMesh.bakeCurrentTransformIntoVertices();  and correcly inported pathMesh with its textures?

Can anybody help me solve this problem? Any advice? What should I do? Am I missing anything?

Greetings

Share this post


Link to post
Share on other sites

I don't know how to upload .babylon file and textures on playgroudn.

Therefore I upload this examples on my server.

This link http://ajna4taiga.no-ip.org:8080/TestBabylonjs/TextureIssueWithBake.html shows example what happens if I use bakeCurrentTransformIntoVertices.
 This example show that textures are not loading OK. But physics works ok. Ball fall on model. Everything work OK except texutres.

This http://ajna4taiga.no-ip.org:8080/TestBabylonjs/TextureIssueWithoutBake.html link show how textures loads OK, But ball is not fall on model it stops on air. Physics/collision here doesn't work OK.
This code is same except it doesn have bakeCurrentTransformIntoVertices.
 
Everything can be viewed if you press F12. The source code is there and texutes and .babylon (model is same for both examples.)
 
I don't know to reproduce the issue with playground.

Greetings
 

Share this post


Link to post
Share on other sites

http://playground.babylonjs.com/#19BQOY#1

There it is, guys.  Activate line 19, and the texture changes.  Weird.  *scratch scratch*  :)

@ian - I hosted your .babylon file and three textures... at my free github site.  You should go get one, too.  You can simply drag - drop files onto your github webpage, then "commit" them (hit a button at the website bottom), and then they can be used in the playground... just like I did. 

Have a try, if you wish.  Create a github account, put your 4 files in a folder there, change the .babylon url in the playground demo (to point at your github repository), and then run/save the new playground.  Then you will be ready for future playground tests... forever.  And... free online storage with no CORS hassles!   That's a good good good thing, yes?   I think so.

You can see your 4 files (and other files) at https://github.com/Wingnutt/misc

Share this post


Link to post
Share on other sites

I have good and bad news.  Deltakosh, textures are loadaing OK.

Bad news is that rotation model and use cannon mesh impolster on model and sphere mesh impostor on sphere. Physics doesn't work as is should.

I think that there should make some test with physics cannon (mesh impostor and sphere impostor).

Previous version works better then now. 

Share this post


Link to post
Share on other sites

Hi ho!

So, a quick word about the mesh impostor - At the moment, the direct position vertex data and indices are taken into account. So if you scaled your mesh (which you have. The scaling value of the mesh is 1, 0.25, 1) it won't work correctly. This is why baking the current transformation works.

I know how to solve this (simply scaling all of the position vertex data * scaling vector), but I actually was trying to avoid this, as this might create different unexpected problems.

Let me check how I can solve this in the nicest way. Until them, baking is better than st(r)eaming.

Share this post


Link to post
Share on other sites

I do not understand exactly you RaananW. 

You suggest. If we use mesh impostor and mesh sphere impostor together. It will be the best not to scale any of this two mesh? 
I would realy like to know how mesh impostor and sphere impostor works the best together?
What mesh.updatePhysicsBody() realy do and where it do the best if we rotate mesh?
I create new models and sphere imostor sometimes on same position in mesh impostor falls through.
I check model and normals and it looks fine, but may be I do not know something should when modeling mesh for mesh impostor in blender?
I realy don't know if there is problem in my mesh(mesh impostor) model or there are porblems with mesh impostor physics?

If you think there could be problems with physics, on what you should I be careful or (pay attention) when I'm modeling sphere and mesh(for mesh impostor)? 
 

Greetings

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.