Jump to content

Bounding box is off - importing from raw obj data


Numa
 Share

Recommended Posts

Hi there, 

I'm importing a model from raw obj data, and I'm getting strange bounding boxes:

d6040dfef5.jpg

2d7ed6bb3c.png

 

1.The little grey cube on the left is the first to come in and its bounding box is correct.

2.the second grey cube comes next and it looks like its bounding box has grown to be "as wide" as both cubes combined.

3.The big blue box comes in and again, its bounding box seems to be as wide as cubes + itself, and so on.

That's my theory at least, no idea what's going on.

 

This is what I use to import the model: 

var base64Data= "IyBCbGVuZGVyIHYyLjc0IChzdWIgMCkgT0JKIEZpbGU6ICdmYWNlLmJsZW5kJwojIHd3dy5ibGVuZGVyLm9yZwptdGxsaWIgamFjazEubXRsCm8gVGhvdWdodF8yX1Rob3VnaHQyCnYgMC4yMDY5NzMgMy4wMDgyNzIgMi42MDMyOTUKdiAwLjIwNjk3MyAzLjQyMjIxOCAyLjYwMzI5NQp2IDAuMjA2OTczIDMuMDA4MjcyIDMuMDE3MjQyCnYgMC4yMDY5NzMgMy40MjIyMTggMy4wMTcyNDIKdiAtMC4yMDY5NzMgMy4wMDgyNzIgMi42MDMyOTUKdiAtMC4yMDY5NzMgMy40MjIyMTggMi42MDMyOTUKdiAtMC4yMDY5NzMgMy4wMDgyNzIgMy4wMTcyNDIKdiAtMC4yMDY5NzMgMy40MjIyMTggMy4wMTcyNDIKdnQgMC41NTkwNTkgMC41NjM5ODAKdm4gMS4wMDAwMDAgMC4wMDAwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMC4wMDAwMDAgMS4wMDAwMDAKdm4gLTEuMDAwMDAwIDAuMDAwMDAwIDAuMDAwMDAwCnZuIDAuMDAwMDAwIDAuMDAwMDAwIC0xLjAwMDAwMAp2biAwLjAwMDAwMCAtMS4wMDAwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMS4wMDAwMDAgMC4wMDAwMDAKdXNlbXRsIE1hdGVyaWFsLjAwMQpzIG9mZgpmIDIvMS8xIDQvMS8xIDMvMS8xIDEvMS8xCmYgNC8xLzIgOC8xLzIgNy8xLzIgMy8xLzIKZiA4LzEvMyA2LzEvMyA1LzEvMyA3LzEvMwpmIDYvMS80IDIvMS80IDEvMS80IDUvMS80CmYgMS8xLzUgMy8xLzUgNy8xLzUgNS8xLzUKZiA2LzEvNiA4LzEvNiA0LzEvNiAyLzEvNgpvIFRob3VnaHQxCnYgMC4yMDY5NzMgMy4wMDgyNzIgMS45NTIwOTkKdiAwLjIwNjk3MyAzLjQyMjIxOCAxLjk1MjA5OQp2IDAuMjA2OTczIDMuMDA4MjcyIDIuMzY2MDQ2CnYgMC4yMDY5NzMgMy40MjIyMTggMi4zNjYwNDYKdiAtMC4yMDY5NzMgMy4wMDgyNzIgMS45NTIwOTkKdiAtMC4yMDY5NzMgMy40MjIyMTggMS45NTIwOTkKdiAtMC4yMDY5NzMgMy4wMDgyNzIgMi4zNjYwNDYKdiAtMC4yMDY5NzMgMy40MjIyMTggMi4zNjYwNDYKdnQgMC41NTQxMzcgMC41NzYyODQKdm4gMS4wMDAwMDAgMC4wMDAwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMC4wMDAwMDAgMS4wMDAwMDAKdm4gLTEuMDAwMDAwIDAuMDAwMDAwIDAuMDAwMDAwCnZuIDAuMDAwMDAwIDAuMDAwMDAwIC0xLjAwMDAwMAp2biAwLjAwMDAwMCAtMS4wMDAwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMS4wMDAwMDAgMC4wMDAwMDAKdXNlbXRsIE1hdGVyaWFsLjAwMQpzIG9mZgpmIDEwLzIvNyAxMi8yLzcgMTEvMi83IDkvMi83CmYgMTIvMi84IDE2LzIvOCAxNS8yLzggMTEvMi84CmYgMTYvMi85IDE0LzIvOSAxMy8yLzkgMTUvMi85CmYgMTQvMi8xMCAxMC8yLzEwIDkvMi8xMCAxMy8yLzEwCmYgOS8yLzExIDExLzIvMTEgMTUvMi8xMSAxMy8yLzExCmYgMTQvMi8xMiAxNi8yLzEyIDEyLzIvMTIgMTAvMi8xMgpvIExpZAp2IDAuOTE3NDQzIDIuMDA4OTc5IC0xLjAwMDAwMAp2IDAuOTE3NDQzIDIuMTg0NjAzIC0xLjAwMDAwMAp2IDAuOTE3NDQzIDIuMDA4OTc5IDEuMDAwMDAwCnYgMC45MTc0NDMgMi4xODQ2MDMgMS4wMDAwMDAKdiAtMC45OTcwNDQgMi4wMDg5NzkgLTEuMDAwMDAwCnYgLTAuOTk3MDQ0IDIuMTg0NjAzIC0xLjAwMDAwMAp2IC0wLjk5NzA0NCAyLjAwODk3OSAxLjAwMDAwMAp2IC0wLjk5NzA0NCAyLjE4NDYwMyAxLjAwMDAwMAp2dCAwLjg0NDUxMCAwLjgyOTc0NQp2dCAwLjgxNzQ0MSAwLjc5NTI5NAp2dCAwLjgwMDIxNSAwLjgwMjY3Ngp2biAxLjAwMDAwMCAwLjAwMDAwMCAwLjAwMDAwMAp2biAwLjAwMDAwMCAwLjAwMDAwMCAxLjAwMDAwMAp2biAtMS4wMDAwMDAgMC4wMDAwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMC4wMDAwMDAgLTEuMDAwMDAwCnZuIDAuMDAwMDAwIC0xLjAwMDAwMCAwLjAwMDAwMAp2biAwLjAwMDAwMCAxLjAwMDAwMCAwLjAwMDAwMAp1c2VtdGwgTWF0ZXJpYWwuMDAxCnMgb2ZmCmYgMTgvMy8xMyAyMC8zLzEzIDE5LzMvMTMgMTcvMy8xMwpmIDIwLzQvMTQgMjQvNC8xNCAyMy80LzE0IDE5LzQvMTQKZiAyNC80LzE1IDIyLzQvMTUgMjEvNC8xNSAyMy80LzE1CmYgMjIvNC8xNiAxOC80LzE2IDE3LzQvMTYgMjEvNC8xNgpmIDE3LzUvMTcgMTkvNS8xNyAyMy81LzE3IDIxLzUvMTcKZiAyMi8zLzE4IDI0LzMvMTggMjAvMy8xOCAxOC8zLzE4Cm8gSGluZ2UKdiAwLjkyODk0MSAyLjIwODIxMSAxLjAyNjk2OQp2IDAuOTI4OTQxIDIuMjA4MjEyIC0xLjAyNjEzMAp2IDAuODE1MDMzIDIuMTI1NDUyIDEuMDI2OTY5CnYgMC44MTUwMzMgMi4xMjU0NTMgLTEuMDI2MTMwCnYgMC44NTg1NDIgMS45OTE1NDUgMS4wMjY5NjkKdiAwLjg1ODU0MiAxLjk5MTU0NSAtMS4wMjYxMzAKdiAwLjk5OTM0MCAxLjk5MTU0NSAxLjAyNjk2OQp2IDAuOTk5MzQwIDEuOTkxNTQ1IC0xLjAyNjEzMAp2IDEuMDQyODQ5IDIuMTI1NDUyIDEuMDI2OTY5CnYgMS4wNDI4NDkgMi4xMjU0NTMgLTEuMDI2MTMwCnZ0IDAuNTQ2NzU1IDAuNDI2MTc3CnZ0IDAuNDg1MjM1IDAuNDE2MzMzCnZuIC0wLjU4NzgwMCAwLjgwOTAwMCAwLjAwMDAwMAp2biAtMC45NTExMDAgLTAuMzA5MDAwIC0wLjAwMDAwMAp2biAwLjAwMDAwMCAtMS4wMDAwMDAgLTAuMDAwMDAwCnZuIDAuMDAwMDAwIDAuMDAwMDAwIC0xLjAwMDAwMAp2biAwLjU4NzgwMCAwLjgwOTAwMCAwLjAwMDAwMAp2biAwLjk1MTEwMCAtMC4zMDkwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMC4wMDAwMDAgMS4wMDAwMDAKdXNlbXRsIE1hdGVyaWFsLjAwMQpzIG9mZgpmIDI1LzYvMTkgMjYvNi8xOSAyOC82LzE5IDI3LzYvMTkKZiAyNy82LzIwIDI4LzYvMjAgMzAvNi8yMCAyOS82LzIwCmYgMjkvNy8yMSAzMC83LzIxIDMyLzcvMjEgMzEvNy8yMQpmIDI4LzcvMjIgMjYvNy8yMiAzNC83LzIyIDMyLzcvMjIgMzAvNy8yMgpmIDMzLzYvMjMgMzQvNi8yMyAyNi82LzIzIDI1LzYvMjMKZiAzMS82LzI0IDMyLzYvMjQgMzQvNi8yNCAzMy82LzI0CmYgMjUvNy8yNSAyNy83LzI1IDI5LzcvMjUgMzEvNy8yNSAzMy83LzI1Cm8gSmFjawp2IDAuNzcxMjg0IDIuNDQyMzcyIC0wLjc3MTI4NAp2IDAuNzcxMjg0IDMuOTg0OTQwIC0wLjc3MTI4NAp2IDAuNzcxMjg0IDIuNDQyMzcyIDAuNzcxMjg0CnYgMC43NzEyODQgMy45ODQ5NDAgMC43NzEyODQKdiAtMC43NzEyODQgMi40NDIzNzIgLTAuNzcxMjg0CnYgLTAuNzcxMjg0IDMuOTg0OTQwIC0wLjc3MTI4NAp2IC0wLjc3MTI4NCAyLjQ0MjM3MiAwLjc3MTI4NAp2IC0wLjc3MTI4NCAzLjk4NDk0MCAwLjc3MTI4NAp2dCAwLjAwMDAwMCAwLjY2NjY2Nwp2dCAwLjAwMDAwMCAwLjMzMzMzMwp2dCAwLjMzMzMzMyAwLjMzMzMzMwp2dCAwLjMzMzMzMyAwLjY2NjY2Nwp2dCAwLjAwMDAwMCAwLjAwMDAwMAp2dCAwLjMzMzMzMyAwLjAwMDAwMAp2dCAwLjY2NjY2NyAwLjY2NjY2Nwp2dCAwLjY2NjY2NyAwLjMzMzMzMwp2dCAwLjY2NjY2NyAwLjAwMDAwMAp2dCAwLjIwMzU3OCAwLjE4MTIyNgp2dCAxLjAwMDAwMCAwLjAwMDAwMAp2dCAxLjAwMDAwMCAwLjMzMzMzMwp2biAxLjAwMDAwMCAwLjAwMDAwMCAwLjAwMDAwMAp2biAwLjAwMDAwMCAwLjAwMDAwMCAxLjAwMDAwMAp2biAtMS4wMDAwMDAgMC4wMDAwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMC4wMDAwMDAgLTEuMDAwMDAwCnZuIDAuMDAwMDAwIC0xLjAwMDAwMCAwLjAwMDAwMAp2biAwLjAwMDAwMCAxLjAwMDAwMCAwLjAwMDAwMAp1c2VtdGwgTWF0ZXJpYWwuMDAxCnMgb2ZmCmYgMzYvOC8yNiAzOC85LzI2IDM3LzEwLzI2IDM1LzExLzI2CmYgMzgvOS8yNyA0Mi8xMi8yNyA0MS8xMy8yNyAzNy8xMC8yNwpmIDQyLzE0LzI4IDQwLzExLzI4IDM5LzEwLzI4IDQxLzE1LzI4CmYgNDAvMTMvMjkgMzYvMTYvMjkgMzUvMTUvMjkgMzkvMTAvMjkKZiAzNS8xNy8zMCAzNy8xNy8zMCA0MS8xNy8zMCAzOS8xNy8zMApmIDQwLzE2LzMxIDQyLzE4LzMxIDM4LzE5LzMxIDM2LzE1LzMxCm8gQm94CnYgLTEuMDAwMDAwIDAuMDA2MDAxIDEuMDAwMDAwCnYgLTEuMDAwMDAwIDAuMDA2MDAxIC0xLjAwMDAwMAp2IDEuMDAwMDAwIDAuMDA2MDAxIC0xLjAwMDAwMAp2IDEuMDAwMDAwIDAuMDA2MDAxIDEuMDAwMDAwCnYgLTEuMDAwMDAwIDIuMDA2MDAxIDAuOTk5OTk5CnYgLTAuOTk5OTk5IDIuMDA2MDAxIC0xLjAwMDAwMQp2IDEuMDAwMDAwIDIuMDA2MDAxIC0xLjAwMDAwMAp2IDEuMDAwMDAwIDIuMDA2MDAxIDEuMDAwMDAwCnYgLTAuNzg4NzI4IDIuMDA2MDAxIDAuNzg4NzI3CnYgLTAuNzg4NzI3IDIuMDA2MDAxIC0wLjc4ODcyOAp2IDAuNzg4NzI4IDIuMDA2MDAxIDAuNzg4NzI4CnYgMC43ODg3MjggMi4wMDYwMDEgLTAuNzg4NzI4CnYgLTAuNzg4NzI4IDAuMTcyNDAzIDAuNzg4NzI3CnYgLTAuNzg4NzI3IDAuMTcyNDAzIC0wLjc4ODcyOAp2IDAuNzg4NzI4IDAuMTcyNDAzIDAuNzg4NzI4CnYgMC43ODg3MjggMC4xNzI0MDMgLTAuNzg4NzI4CnZ0IDAuODI0ODIzIDAuNzg3OTEyCnZ0IDAuODIwMjcwIDAuODEyODg4CnZ0IDAuODQ5MDYzIDAuODEyODg4CnZ0IDAuODQ5MDYzIDAuODQxNjgwCnZ0IDAuODIwMjcwIDAuODQxNjgwCnZuIDAuMDAwMDAwIC0xLjAwMDAwMCAwLjAwMDAwMAp2biAtMS4wMDAwMDAgMC4wMDAwMDAgLTAuMDAwMDAwCnZuIDAuMDAwMDAwIC0wLjAwMDAwMCAtMS4wMDAwMDAKdm4gMS4wMDAwMDAgLTAuMDAwMDAwIDAuMDAwMDAwCnZuIC0wLjAwMDAwMCAwLjAwMDAwMCAxLjAwMDAwMAp2biAwLjAwMDAwMCAxLjAwMDAwMCAwLjAwMDAwMAp1c2VtdGwgTWF0ZXJpYWwuMDAxCnMgb2ZmCmYgNDMvMjAvMzIgNDQvMjAvMzIgNDUvMjAvMzIgNDYvMjAvMzIKZiA1My8yMS8zMyA1NC8yMi8zMyA1OC8yMy8zMyA1Ny8yNC8zMwpmIDQzLzIxLzMzIDQ3LzIyLzMzIDQ4LzIzLzMzIDQ0LzI0LzMzCmYgNDQvMjEvMzQgNDgvMjIvMzQgNDkvMjMvMzQgNDUvMjQvMzQKZiA0NS8yMS8zNSA0OS8yMi8zNSA1MC8yMy8zNSA0Ni8yNC8zNQpmIDQ3LzIxLzM2IDQzLzIyLzM2IDQ2LzIzLzM2IDUwLzI0LzM2CmYgNTEvMjEvMzcgNTIvMjIvMzcgNDgvMjMvMzcgNDcvMjQvMzcKZiA1My8yMS8zNyA1MS8yMi8zNyA0Ny8yMy8zNyA1MC8yNC8zNwpmIDUyLzIxLzM3IDU0LzIyLzM3IDQ5LzIzLzM3IDQ4LzI0LzM3CmYgNTQvMjEvMzcgNTMvMjIvMzcgNTAvMjMvMzcgNDkvMjQvMzcKZiA1NS8yMS8zNyA1Ny8yMi8zNyA1OC8yMy8zNyA1Ni8yNC8zNwpmIDU0LzIxLzM2IDUyLzIyLzM2IDU2LzIzLzM2IDU4LzI0LzM2CmYgNTEvMjEvMzQgNTMvMjIvMzQgNTcvMjMvMzQgNTUvMjQvMzQKZiA1Mi8yMS8zNSA1MS8yMi8zNSA1NS8yMy8zNSA1Ni8yNC8zNQo=";

    var modelData = "data:" + window.atob(base64Data);
    BABYLON.SceneLoader.ImportMesh("", "", modelData, scene, function (meshes)
    {
        for (var i = 0; i < meshes.length; i++)
        {
            meshes.showBoundingBox = true;         
        }
    });

I also get that error but it doesn't prevent the model from showing up:

b2cce39268.png

 

I'd love some help on this :)

 

Cheers, 

 

Numa

Link to comment
Share on other sites

It doesn't seem to make a difference :( 

I tried using the asset manager too:

var loader = new BABYLON.AssetsManager(scene);
var jack = loader.addMeshTask("jack", "", "", modelData);

Am I using the correct format for my modelData string? ie.    "data:blablablablabla" ? or am I missing some sort of obj indicator similar to what's used for images: "data:image/png;base64," ?

Also, I decode my string manually, should I be inputting the raw base64 data?

I'm thinking those errors I'm getting on load might prevent the process to fully complete and JS just keeps going with whatever it's got at that point.

 

Thanks!

Link to comment
Share on other sites

Its the structure of your 3d file for sure then.
 

I can say with a certain degree of confidence that you have multiple objects all with different orgins in your 3d file, this is babylons attempt to organize them and import them.  I have seen it happen sometimes with my files.

The solution separate all the objects into separate files OR, in your single file make sure all the objects are set to the global position 0,0,0 then move them once they are in babylon.

Kind of a headache but that's how I worked around that.

Also just by looking at your model, why would you not just construct that with prefabs in babylon?

Link to comment
Share on other sites

Oh ok ok, yes that's what's going on! The mesh in the 3d model is off to the side, its pivot point is at 0,0,0.

I need my meshes to be brought where they should be, and with their pivot at their origin, not 0,0,0. So what I used to do in unity (before I moved to babylon) was:

1. Work out the center of the mesh (center of its bounding box in unity)

2. Move the pivot point to the center of the mesh.

I think the problem is Babylon seems to include the mesh's pivot point in the bounding box, not just the mesh's vertices.

What would be a good way to work out where the center of my mesh is?

Link to comment
Share on other sites

That one was made in blender but I need to be able to import pretty much anything so I need to clean up whatever is imported to make sure the pivot is right.

Maybe work out the highest/lowest/rightest/leftest points on my mesh and compute my own bounding box? sounds like a pain :D

Link to comment
Share on other sites

the correct solution is to make sure you have correctly built 3d files.

It would be interesting to have a method for overwriting the imported axis like you are suggesting though.

But yea convention is just set up your Obj file correctly and reexport it.  Once you get used to this process the 3d model to game engine pipeline becomes easier.  But all of this is very important especially as you get into skin weights and other more advance model manipulations.

Link to comment
Share on other sites

The obj is set up correctly. But I need multiple meshes per file, and I need them to come in at their correct world position, with their pivot at the centre of the mesh.

Just so you get an idea of why that is, check out http://jig.space

We basically have an online editor where people can bring in models and create step by step presentations for instructions / how to's / education / etc.

They need to be able to articulate / rotate every part and I can't control what people import, I need to clean up / double check them myself :)

We were building this in Unity, but their webgl builds are huge and slow and we need to move to three.js / babylon to get better loading/parsing times.

--

In Babylon is there a way to compute a bounding box from an array of vertices?

Link to comment
Share on other sites

average of all the points then will give you "center" for the most part, you might want to do limits on it, like an average range or something incase there is some odd point way off to infinity...

When they import find the average, then have a option for them to offset the origin

Link to comment
Share on other sites

@Deltakosh Thanks for that, I gave it a go and the bounding sphere gives me exactly the same result ie the center of the bounding sphere/box which is not where it should be for some reason.

How is the bounding box calculated exactly? I made this example: 

In blender:

b3570637a1.png

In babylon:

39ed5d5b68.png

Again, the first cube gets its correct bounding box, the second one gets the total bounding box for both meshes. I'm drawing a little sphere at the center of the second bounding box.

The problem doesn't seem to be the origin of the meshes, looks more like the bounding box isn't what it should be.

thoughts?

EDIT:

It looks like the second mesh contains both meshes (see _totalVertices: 24 / 48). Am I doing something horribly wrong or is the importer working in mysterious ways?

27c8fd1ba5.png

Thanks!

Link to comment
Share on other sites

The above topic seems to tackle the same issue of positioning meshes after loading.  Unfortunately it only seems resolved by some custom coding (not given). To draw the mesh in the correct place somewhere in the Babylon code the translation vector from the world origin for the mesh must be known or calculated. Perhaps one of the experts could point out where if possible.

 

Link to comment
Share on other sites

Yeah, it looks like the bounding boxes are being "summed".  They are being "cumulative".  Strangest thing I've ever seen.  It is acting like each mesh is actually a sub-mesh of a master mesh... and this all-encompassing bounding box is doing just that... all-encompassing.  Each mesh is not being treated independently of others.  There's more than a simple positioning problem here.  There's something strange/wrong with the bounding boxes for each mesh, and because of that, positions and pivot centers are landing in the wrong places.   Unwanted sub-meshing... maybe that's what we will name it for now.

I'll be glad to do my NORMAL assistance... where I talk and talk and talk until everyone forgets what the bug was, or loses interest.  :D  Or maybe, we should keep trying to figure out what is happening here.  Okay, okay, not "we".  SOMEONE.  :)  I have the skills to add colors, fog, godrays, sparkly-particles, and nearly any other effect... to the issue.  But, I have found that... no matter how much frosting, makeup, fashion, and marbleTexture you add to a dog turd (a bug), it still doesn't taste good.  It just LOOKS like it could taste good.

http://www.html5gamedevs.com/topic/20932-sceneloaderload-should-be-depreciated/#comment-119123

Append (instead of load) is the subject, there. Maybe this is the wrong approach, but, doesn't this problem ACT somewhat like... each imported mesh is being appended into a constantly-enlarging central bounding box?  And, we have not heard of this issue... until very recently.  And very recently, is when this sceneLoader.Append() talk started.  Coincidence?  Maybe not.  *shrug*

Link to comment
Share on other sites

Thanks everyone for your help.

The model is just 2 boxes, nothing special about it. The same exact datastring loads fine in three.js and unity. I'm pretty sure the problem is in the loading.

This was all in my original post hehe :) : this is what I'm using to load the file:

var base64Data= "IyBCbGVuZGVyIHYyLjc0IChzdWIgMCkgT0JKIEZpbGU6ICdmYWNlLmJsZW5kJwojIHd3dy5ibGVuZGVyLm9yZwptdGxsaWIgamFjazEubXRsCm8gVGhvdWdodF8yX1Rob3VnaHQyCnYgMC4yMDY5NzMgMy4wMDgyNzIgMi42MDMyOTUKdiAwLjIwNjk3MyAzLjQyMjIxOCAyLjYwMzI5NQp2IDAuMjA2OTczIDMuMDA4MjcyIDMuMDE3MjQyCnYgMC4yMDY5NzMgMy40MjIyMTggMy4wMTcyNDIKdiAtMC4yMDY5NzMgMy4wMDgyNzIgMi42MDMyOTUKdiAtMC4yMDY5NzMgMy40MjIyMTggMi42MDMyOTUKdiAtMC4yMDY5NzMgMy4wMDgyNzIgMy4wMTcyNDIKdiAtMC4yMDY5NzMgMy40MjIyMTggMy4wMTcyNDIKdnQgMC41NTkwNTkgMC41NjM5ODAKdm4gMS4wMDAwMDAgMC4wMDAwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMC4wMDAwMDAgMS4wMDAwMDAKdm4gLTEuMDAwMDAwIDAuMDAwMDAwIDAuMDAwMDAwCnZuIDAuMDAwMDAwIDAuMDAwMDAwIC0xLjAwMDAwMAp2biAwLjAwMDAwMCAtMS4wMDAwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMS4wMDAwMDAgMC4wMDAwMDAKdXNlbXRsIE1hdGVyaWFsLjAwMQpzIG9mZgpmIDIvMS8xIDQvMS8xIDMvMS8xIDEvMS8xCmYgNC8xLzIgOC8xLzIgNy8xLzIgMy8xLzIKZiA4LzEvMyA2LzEvMyA1LzEvMyA3LzEvMwpmIDYvMS80IDIvMS80IDEvMS80IDUvMS80CmYgMS8xLzUgMy8xLzUgNy8xLzUgNS8xLzUKZiA2LzEvNiA4LzEvNiA0LzEvNiAyLzEvNgpvIFRob3VnaHQxCnYgMC4yMDY5NzMgMy4wMDgyNzIgMS45NTIwOTkKdiAwLjIwNjk3MyAzLjQyMjIxOCAxLjk1MjA5OQp2IDAuMjA2OTczIDMuMDA4MjcyIDIuMzY2MDQ2CnYgMC4yMDY5NzMgMy40MjIyMTggMi4zNjYwNDYKdiAtMC4yMDY5NzMgMy4wMDgyNzIgMS45NTIwOTkKdiAtMC4yMDY5NzMgMy40MjIyMTggMS45NTIwOTkKdiAtMC4yMDY5NzMgMy4wMDgyNzIgMi4zNjYwNDYKdiAtMC4yMDY5NzMgMy40MjIyMTggMi4zNjYwNDYKdnQgMC41NTQxMzcgMC41NzYyODQKdm4gMS4wMDAwMDAgMC4wMDAwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMC4wMDAwMDAgMS4wMDAwMDAKdm4gLTEuMDAwMDAwIDAuMDAwMDAwIDAuMDAwMDAwCnZuIDAuMDAwMDAwIDAuMDAwMDAwIC0xLjAwMDAwMAp2biAwLjAwMDAwMCAtMS4wMDAwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMS4wMDAwMDAgMC4wMDAwMDAKdXNlbXRsIE1hdGVyaWFsLjAwMQpzIG9mZgpmIDEwLzIvNyAxMi8yLzcgMTEvMi83IDkvMi83CmYgMTIvMi84IDE2LzIvOCAxNS8yLzggMTEvMi84CmYgMTYvMi85IDE0LzIvOSAxMy8yLzkgMTUvMi85CmYgMTQvMi8xMCAxMC8yLzEwIDkvMi8xMCAxMy8yLzEwCmYgOS8yLzExIDExLzIvMTEgMTUvMi8xMSAxMy8yLzExCmYgMTQvMi8xMiAxNi8yLzEyIDEyLzIvMTIgMTAvMi8xMgpvIExpZAp2IDAuOTE3NDQzIDIuMDA4OTc5IC0xLjAwMDAwMAp2IDAuOTE3NDQzIDIuMTg0NjAzIC0xLjAwMDAwMAp2IDAuOTE3NDQzIDIuMDA4OTc5IDEuMDAwMDAwCnYgMC45MTc0NDMgMi4xODQ2MDMgMS4wMDAwMDAKdiAtMC45OTcwNDQgMi4wMDg5NzkgLTEuMDAwMDAwCnYgLTAuOTk3MDQ0IDIuMTg0NjAzIC0xLjAwMDAwMAp2IC0wLjk5NzA0NCAyLjAwODk3OSAxLjAwMDAwMAp2IC0wLjk5NzA0NCAyLjE4NDYwMyAxLjAwMDAwMAp2dCAwLjg0NDUxMCAwLjgyOTc0NQp2dCAwLjgxNzQ0MSAwLjc5NTI5NAp2dCAwLjgwMDIxNSAwLjgwMjY3Ngp2biAxLjAwMDAwMCAwLjAwMDAwMCAwLjAwMDAwMAp2biAwLjAwMDAwMCAwLjAwMDAwMCAxLjAwMDAwMAp2biAtMS4wMDAwMDAgMC4wMDAwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMC4wMDAwMDAgLTEuMDAwMDAwCnZuIDAuMDAwMDAwIC0xLjAwMDAwMCAwLjAwMDAwMAp2biAwLjAwMDAwMCAxLjAwMDAwMCAwLjAwMDAwMAp1c2VtdGwgTWF0ZXJpYWwuMDAxCnMgb2ZmCmYgMTgvMy8xMyAyMC8zLzEzIDE5LzMvMTMgMTcvMy8xMwpmIDIwLzQvMTQgMjQvNC8xNCAyMy80LzE0IDE5LzQvMTQKZiAyNC80LzE1IDIyLzQvMTUgMjEvNC8xNSAyMy80LzE1CmYgMjIvNC8xNiAxOC80LzE2IDE3LzQvMTYgMjEvNC8xNgpmIDE3LzUvMTcgMTkvNS8xNyAyMy81LzE3IDIxLzUvMTcKZiAyMi8zLzE4IDI0LzMvMTggMjAvMy8xOCAxOC8zLzE4Cm8gSGluZ2UKdiAwLjkyODk0MSAyLjIwODIxMSAxLjAyNjk2OQp2IDAuOTI4OTQxIDIuMjA4MjEyIC0xLjAyNjEzMAp2IDAuODE1MDMzIDIuMTI1NDUyIDEuMDI2OTY5CnYgMC44MTUwMzMgMi4xMjU0NTMgLTEuMDI2MTMwCnYgMC44NTg1NDIgMS45OTE1NDUgMS4wMjY5NjkKdiAwLjg1ODU0MiAxLjk5MTU0NSAtMS4wMjYxMzAKdiAwLjk5OTM0MCAxLjk5MTU0NSAxLjAyNjk2OQp2IDAuOTk5MzQwIDEuOTkxNTQ1IC0xLjAyNjEzMAp2IDEuMDQyODQ5IDIuMTI1NDUyIDEuMDI2OTY5CnYgMS4wNDI4NDkgMi4xMjU0NTMgLTEuMDI2MTMwCnZ0IDAuNTQ2NzU1IDAuNDI2MTc3CnZ0IDAuNDg1MjM1IDAuNDE2MzMzCnZuIC0wLjU4NzgwMCAwLjgwOTAwMCAwLjAwMDAwMAp2biAtMC45NTExMDAgLTAuMzA5MDAwIC0wLjAwMDAwMAp2biAwLjAwMDAwMCAtMS4wMDAwMDAgLTAuMDAwMDAwCnZuIDAuMDAwMDAwIDAuMDAwMDAwIC0xLjAwMDAwMAp2biAwLjU4NzgwMCAwLjgwOTAwMCAwLjAwMDAwMAp2biAwLjk1MTEwMCAtMC4zMDkwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMC4wMDAwMDAgMS4wMDAwMDAKdXNlbXRsIE1hdGVyaWFsLjAwMQpzIG9mZgpmIDI1LzYvMTkgMjYvNi8xOSAyOC82LzE5IDI3LzYvMTkKZiAyNy82LzIwIDI4LzYvMjAgMzAvNi8yMCAyOS82LzIwCmYgMjkvNy8yMSAzMC83LzIxIDMyLzcvMjEgMzEvNy8yMQpmIDI4LzcvMjIgMjYvNy8yMiAzNC83LzIyIDMyLzcvMjIgMzAvNy8yMgpmIDMzLzYvMjMgMzQvNi8yMyAyNi82LzIzIDI1LzYvMjMKZiAzMS82LzI0IDMyLzYvMjQgMzQvNi8yNCAzMy82LzI0CmYgMjUvNy8yNSAyNy83LzI1IDI5LzcvMjUgMzEvNy8yNSAzMy83LzI1Cm8gSmFjawp2IDAuNzcxMjg0IDIuNDQyMzcyIC0wLjc3MTI4NAp2IDAuNzcxMjg0IDMuOTg0OTQwIC0wLjc3MTI4NAp2IDAuNzcxMjg0IDIuNDQyMzcyIDAuNzcxMjg0CnYgMC43NzEyODQgMy45ODQ5NDAgMC43NzEyODQKdiAtMC43NzEyODQgMi40NDIzNzIgLTAuNzcxMjg0CnYgLTAuNzcxMjg0IDMuOTg0OTQwIC0wLjc3MTI4NAp2IC0wLjc3MTI4NCAyLjQ0MjM3MiAwLjc3MTI4NAp2IC0wLjc3MTI4NCAzLjk4NDk0MCAwLjc3MTI4NAp2dCAwLjAwMDAwMCAwLjY2NjY2Nwp2dCAwLjAwMDAwMCAwLjMzMzMzMwp2dCAwLjMzMzMzMyAwLjMzMzMzMwp2dCAwLjMzMzMzMyAwLjY2NjY2Nwp2dCAwLjAwMDAwMCAwLjAwMDAwMAp2dCAwLjMzMzMzMyAwLjAwMDAwMAp2dCAwLjY2NjY2NyAwLjY2NjY2Nwp2dCAwLjY2NjY2NyAwLjMzMzMzMwp2dCAwLjY2NjY2NyAwLjAwMDAwMAp2dCAwLjIwMzU3OCAwLjE4MTIyNgp2dCAxLjAwMDAwMCAwLjAwMDAwMAp2dCAxLjAwMDAwMCAwLjMzMzMzMwp2biAxLjAwMDAwMCAwLjAwMDAwMCAwLjAwMDAwMAp2biAwLjAwMDAwMCAwLjAwMDAwMCAxLjAwMDAwMAp2biAtMS4wMDAwMDAgMC4wMDAwMDAgMC4wMDAwMDAKdm4gMC4wMDAwMDAgMC4wMDAwMDAgLTEuMDAwMDAwCnZuIDAuMDAwMDAwIC0xLjAwMDAwMCAwLjAwMDAwMAp2biAwLjAwMDAwMCAxLjAwMDAwMCAwLjAwMDAwMAp1c2VtdGwgTWF0ZXJpYWwuMDAxCnMgb2ZmCmYgMzYvOC8yNiAzOC85LzI2IDM3LzEwLzI2IDM1LzExLzI2CmYgMzgvOS8yNyA0Mi8xMi8yNyA0MS8xMy8yNyAzNy8xMC8yNwpmIDQyLzE0LzI4IDQwLzExLzI4IDM5LzEwLzI4IDQxLzE1LzI4CmYgNDAvMTMvMjkgMzYvMTYvMjkgMzUvMTUvMjkgMzkvMTAvMjkKZiAzNS8xNy8zMCAzNy8xNy8zMCA0MS8xNy8zMCAzOS8xNy8zMApmIDQwLzE2LzMxIDQyLzE4LzMxIDM4LzE5LzMxIDM2LzE1LzMxCm8gQm94CnYgLTEuMDAwMDAwIDAuMDA2MDAxIDEuMDAwMDAwCnYgLTEuMDAwMDAwIDAuMDA2MDAxIC0xLjAwMDAwMAp2IDEuMDAwMDAwIDAuMDA2MDAxIC0xLjAwMDAwMAp2IDEuMDAwMDAwIDAuMDA2MDAxIDEuMDAwMDAwCnYgLTEuMDAwMDAwIDIuMDA2MDAxIDAuOTk5OTk5CnYgLTAuOTk5OTk5IDIuMDA2MDAxIC0xLjAwMDAwMQp2IDEuMDAwMDAwIDIuMDA2MDAxIC0xLjAwMDAwMAp2IDEuMDAwMDAwIDIuMDA2MDAxIDEuMDAwMDAwCnYgLTAuNzg4NzI4IDIuMDA2MDAxIDAuNzg4NzI3CnYgLTAuNzg4NzI3IDIuMDA2MDAxIC0wLjc4ODcyOAp2IDAuNzg4NzI4IDIuMDA2MDAxIDAuNzg4NzI4CnYgMC43ODg3MjggMi4wMDYwMDEgLTAuNzg4NzI4CnYgLTAuNzg4NzI4IDAuMTcyNDAzIDAuNzg4NzI3CnYgLTAuNzg4NzI3IDAuMTcyNDAzIC0wLjc4ODcyOAp2IDAuNzg4NzI4IDAuMTcyNDAzIDAuNzg4NzI4CnYgMC43ODg3MjggMC4xNzI0MDMgLTAuNzg4NzI4CnZ0IDAuODI0ODIzIDAuNzg3OTEyCnZ0IDAuODIwMjcwIDAuODEyODg4CnZ0IDAuODQ5MDYzIDAuODEyODg4CnZ0IDAuODQ5MDYzIDAuODQxNjgwCnZ0IDAuODIwMjcwIDAuODQxNjgwCnZuIDAuMDAwMDAwIC0xLjAwMDAwMCAwLjAwMDAwMAp2biAtMS4wMDAwMDAgMC4wMDAwMDAgLTAuMDAwMDAwCnZuIDAuMDAwMDAwIC0wLjAwMDAwMCAtMS4wMDAwMDAKdm4gMS4wMDAwMDAgLTAuMDAwMDAwIDAuMDAwMDAwCnZuIC0wLjAwMDAwMCAwLjAwMDAwMCAxLjAwMDAwMAp2biAwLjAwMDAwMCAxLjAwMDAwMCAwLjAwMDAwMAp1c2VtdGwgTWF0ZXJpYWwuMDAxCnMgb2ZmCmYgNDMvMjAvMzIgNDQvMjAvMzIgNDUvMjAvMzIgNDYvMjAvMzIKZiA1My8yMS8zMyA1NC8yMi8zMyA1OC8yMy8zMyA1Ny8yNC8zMwpmIDQzLzIxLzMzIDQ3LzIyLzMzIDQ4LzIzLzMzIDQ0LzI0LzMzCmYgNDQvMjEvMzQgNDgvMjIvMzQgNDkvMjMvMzQgNDUvMjQvMzQKZiA0NS8yMS8zNSA0OS8yMi8zNSA1MC8yMy8zNSA0Ni8yNC8zNQpmIDQ3LzIxLzM2IDQzLzIyLzM2IDQ2LzIzLzM2IDUwLzI0LzM2CmYgNTEvMjEvMzcgNTIvMjIvMzcgNDgvMjMvMzcgNDcvMjQvMzcKZiA1My8yMS8zNyA1MS8yMi8zNyA0Ny8yMy8zNyA1MC8yNC8zNwpmIDUyLzIxLzM3IDU0LzIyLzM3IDQ5LzIzLzM3IDQ4LzI0LzM3CmYgNTQvMjEvMzcgNTMvMjIvMzcgNTAvMjMvMzcgNDkvMjQvMzcKZiA1NS8yMS8zNyA1Ny8yMi8zNyA1OC8yMy8zNyA1Ni8yNC8zNwpmIDU0LzIxLzM2IDUyLzIyLzM2IDU2LzIzLzM2IDU4LzI0LzM2CmYgNTEvMjEvMzQgNTMvMjIvMzQgNTcvMjMvMzQgNTUvMjQvMzQKZiA1Mi8yMS8zNSA1MS8yMi8zNSA1NS8yMy8zNSA1Ni8yNC8zNQo=";
var modelData = "data:" + window.atob(base64Data);
BABYLON.SceneLoader.ImportMesh("", "", modelData, scene, function (meshes) {
for (var i = ; i < meshes.length; i++) {
meshes.showBoundingBox = true; }
});

I also get that error but it doesn't prevent the model from showing up:

b2cce39268.png

I tried using the asset manager too:

var loader = new BABYLON.AssetsManager(scene);
var jack = loader.addMeshTask("jack", "", "", modelData);

Am I using the correct format for my modelData string? ie.    "data:blablablablabla" ? or am I missing some sort of obj indicator similar to what's used for images: "data:image/png;base64," ?

Also, I decode my string manually, should I be inputting the raw base64 data?

EDIT:

Just tried this and I'm getting the same result of course, although no errors this time.

BABYLON.SceneLoader.Append("", modelData, scene);
    for (var i = 0; i < scene.meshes.length; i++) {
        scene.meshes[i].showBoundingBox = true;
    }

Thanks :D

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...