Jump to content

3DS Max - Meshes show as artifacts


reddozen
 Share

Recommended Posts

It seems like my normals are all messed up. They look correct in 3DS Max. Was easy to fix in Blender, but I can't figure out what is wrong in 3DS. I'm pretty sure it's the normals, but I can't be certain especially since they appear correctly in the 3DS Max editor.

 

The hidden rider... lol

He only appears when the base he stands on is out of the frame.... very strange.

Any suggestion?

 

 

Item in 3DS Max

3DsMax%202013.png

Link to comment
Share on other sites

For you Reddozen, the problem comes from the camera frustum. Your object is far too huge (more than 10000x10000x10000)

 

So you are going outsite the frustrum.

 

to solve this:

- scale your object down a lot 

- change camera.maxZ to a big value and set camera.minZ to something like 0.1

 

 

option 1 is far better (for avoiding precision issues)

Link to comment
Share on other sites

Ah, this is what I had already said by MP has Rodozen the first time. Exactly the same thing, but were told that I was wrong.

Therefore too large scale and maxZ of the camera to put 1000 rather than 15. edit the 2 options.

Link to comment
Share on other sites

The object is scaled down by 0.001 it should easily fit in the frame. Is it basing it's view limits on the original object and not it's modified scale?

You can see this in the scene loader link.

 

Dad,

This looks just like the link you posted. Random parts of the model just don't show up.

Prt_f01_prt_dongsang_inst++;objInstance = mapZone[0].createInstance("Prt_f01_prt_dongsang_inst_"+ Prt_f01_prt_dongsang_inst +"");objInstance.visible = true;objInstance.isVisible = true;objInstance.position = new BABYLON.Vector3(-101.492996, 2.988000, -19.001993);objInstance.scaling = new BABYLON.Vector3(0.001000, 0.001000, 0.001000);objInstance.rotation = new BABYLON.Vector3(0.000000, 4.712389, 0.000000);
Link to comment
Share on other sites

I'm not sure what you mean by too far. The camera starting location isn't right next to the model, and even moving into scope of the object (arrow keys), only the pedestal appears unless you look up to the point that the pedestal is out of frame, then the rider appears. I'll modify the scene to put the camera right in front of the model when I get home so you don't have to "walk" up to him.

Link to comment
Share on other sites

Scene in first post updated. camera moved to in front of the model.

 

You'll notice that the rider is not there unless you move the camera to look up. He will appear as soon as the pedestal is out of the frame.

 

The Z max in my scene is dynamic to maintain 30 FPS with a max of 100 and min of 5. I don't see how this could be a Zmin / zMax issue as the pedestal wouldn't be shown either. They are both parts of the same model, so there's really no reason why only half of it would show up.

Link to comment
Share on other sites

Use you octree on your scene?

 

I have noted that sometimes, with models that on several objects, sometimes disappears. Type a character's head, disappears suddenly and it is when I'm using the Octree optimization.

 

It may be the problem. It can give a search for deltakosh track

Link to comment
Share on other sites

No octrees for the same reason that I cannot call models outside of the BABYLON.SceneLoader.ImportMesh() function. The octree function scene.createOrUpdateSelectionOctree() can cause a race condition with models still loading async from import mesh, but that is a different issue from this one though...

Link to comment
Share on other sites

On my editor I was able to do what you say. You can put the models charged by importMesh in a table and use this table for brushcutter your models outside the importMesh function. It works for me.
 
 

var meshPerso = [];BABYLON.SceneLoader.ImportMesh("", "./","mesh.babylon", scene, function (newMeshes) {     newMeshes[0].rotationQuaternion = null;     meshPerso.push(newMeshes[0]); });

 

for octree, you can use if (scene.isReady) in the render loop and use octree in this condition.
 

scene.registerBeforeRender(function(){    if(sceneload == false && scene.isReady()) {         if(scene._activeMeshes.length > 10) scene.createOrUpdateSelectionOctree();         sceneload = true;    } }
Link to comment
Share on other sites

Sooo...

I played with scaling the parent object... nothing.

Cloning instead of instancing... nothing.

 

Updated to Babylon.1.13-beta.... fixed!?

 

For whatever reason, something in babylon.1.12-rc was causing this graphical issue... The model displays like it's supposed to now.

Link to comment
Share on other sites

:(

 

I spoke too soon... It's not fixed.

 

The scene loads correctly in Android kitkat on a Galexy Note2 with the default Samsung browser.

It does not load in FF30, FF31, Chrome, or IE11. The rider is not displayed unless the pedestal is out of the frame (looking up with the camera).

 

Notes, the 6321 active vertices. That tells me that Babylon sees the whole model in the scope of the frame. The pedestal is 318 verts, and the rider is 6003.

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...