Funny thing!

Next
 From:  FelixPQ (FELIX)
4775.1 
Michael,

while working on this file I joined, I made a copy of the 2 solid on the right to preserve my originals and then union the copies, result on the left. Before I save these 3 solids for you to see, the object on the left was looking nicer or smoother then on the right but it had some artifacts. If you switch to the back view, you'll see the results seems perfect, the mesh angle is set at 5 and I tried it at 1 to see if it was only a display artifact.

The outer solid on the right is made using a sweep with 2 profiles and 2 rails and should look much better then this I think. This image here is what I was seeing before the save, as you can see there is something wrong inside the red circle, this is in front view, the back seems ok, nothing compared to the saved result. I made sure the profiles where symmetric both ways.

I made one of these before using unsymmetric profiles and had no problem, second image, but then I decided to make something like the red object and realized a symmetric profile would work much better to join 2 object like in test1.

Maybe this is a bug or something, I have no idea. If you need the curves and rails as well, I'll gladly send them to you.

Thanks,
Felix











  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4775.2 In reply to 4775.1 
Hi Felix, I'm having a bit of difficulty following along.

Is the problem that the one on the right looks rougher?

That is a display mesh artifact - your actual surface there is curved, just the display mesh is sparse there.

Display meshes usually have a side effect of actually getting subdivided pretty far below the actual angle setting - that's because before they are even divided by angle they are broken down into bezier patches which means that if your surface has a lot of control points in it it starts out with a denser display mesh.

Your surface there happens to have a pretty sparse control point structure, so it basically only gets polygons purely by the angle parameter, and if you build a polyline with steps of 10 degrees between each segment you should see it will look like what you've got there.

Just in general you should not worry so much about display mesh artifacts - when you go to generate an export mesh, the export mesher does a much more thorough job of testing and refining the mesh.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  FelixPQ (FELIX)
4775.3 In reply to 4775.2 
Michael,

this is a screen shot (scroll2b.png) of the object on the left I have here after saving the 3 solid of my original file, it's the file I sent to you, "test1.3dm". The screen shot (test1.png) in my original post is from my original file and the same object showed only a little artifact (red circle), as you can see they are quite different and they are the same object, the only difference is that I saved them in 2 different files. I don't understand why the same object saved in 2 different files look so different. I haven't reopened my original file to see if the same distorsion will also appear though.




The other thing I don't understand is why there is such an appearing different degree of smoothness between the objects after a boolean operation (test1.png, left object was boolean union).

Though I can understand what we see on the screen is only a visual representation of the "mathematical" Nurbs objects or of the data and for the purpose of real time display, I guess, is not always optimal say compared with a render of the exported mesh. It's always a problem for me because when some object looks bad I always think I did something wrong and I immediatly assume the data itself could be wrong as well and I have to spend a lot of time each time to know which it is. For now, the only way to know for sure it's only a display artifact, we have to export and render I guess. It would be nice to be able to check this inside MOI.

Since this time, I only need half of this model I can use the "good" half and go from there but it's still driving me crazy.

Thanks,
Felix
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4775.4 In reply to 4775.3 
Hi Felix - so that really weird looking one is not just a display artifact - that's a bad object that has some problem in its trim curves.

It looks like your base object in this case is a self-intersecting object which folds back over top of itself in some areas, like here:



Objects that have pieces of themselves that fold back over top of themselves will not be able to be handled properly by the booleans - so it's really the input into the booleans in this case that is causing the problem.

The boolean is generating some kind of messed up edge structure when it attempts to figure out how to process the surface/surface intersection calculations in that area - basically when a surface collapses down and then sticks back through itself it no longer has a single consistent outside surface normal, the surface normal is chaotic and one little step away from one area it has a completely opposite normal - this plays havoc with intersection calculations.


> The other thing I don't understand is why there is such an appearing
> different degree of smoothness between the objects after a boolean operation
> (test1.png, left object was boolean union).

The mesh only works with the visible area of surfaces, so when you do a boolean the booleaned result will get meshed differently since with new trim curves on it the active area of the surface is different.

If the active area of the surface happens to just exactly divide down to pieces which are right at the angle tolerance then it will give a rougher appearance.

That particular part is just a display artifact and is something you should just ignore.

Since the display mesher is constantly generating new meshes every time you do any kind of editing, it's very important for it to work very quickly so that you don't spend extra time waiting every time you do a boolean or a fillet or any kind of edit. The tradeoff for not having extra interruptions on every editing operation is that in some particular cases it can give a somewhat rough display.


> For now, the only way to know for sure it's only a display artifact, we have
> to export and render I guess. It would be nice to be able to check this
> inside MOI.

You can just go through the steps of doing an export but then just look at the export mesh which MoI displays when it shows the Meshing options dialog, but then just cancel out and not actually write the file.

See this previous message for how to set up a shortcut key so that you don't have to enter in a filename and can just push 1 key to generate an export mesh and see it on screen:
http://moi3d.com/forum/index.php?webtag=MOI&msg=4453.6
also:
http://moi3d.com/forum/index.php?webtag=MOI&msg=4358.2

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4775.5 In reply to 4775.1 
Basically if something just looks slightly angular, then that's very likely a regular display artifact and usually something to just ignore.

If it looks more like things are kind of scribbling outside boundaries, then that's a pretty different thing than just slight angularity and usually scribbles means something is actually wrong with the model most likely in its trim curve structure.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  FelixPQ (FELIX)
4775.6 In reply to 4775.3 
Michael,

I check everything again and my original file as 2 solid where I thought there was only one, this is one of the reason why the file I send looks bad, it's missing a part.

But thing get even more complicated, I opened a second instance of Moi and opened my original file and here is what I have:

Moi Instance 1, saved original file




Moi Instance 2, original file



As you can see more clearly in the top view, 2 instances, same file but different objects. I double check by resaving the file in the first instance with the split view below, closing the second instance without saving, started a new instance and reopened the original file. Still get the same as below. I have no clue to understand what's happening here.

Thanks,
Felix
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4775.7 In reply to 4775.6 
Hi Felix - most likely the piece that looks weird was actually damaged in the original file as well, when you save a file MoI actually has to translate its internal object structures into the OpenNURBS structures which is what actually goes into the 3DM file.

Normally that doesn't really involve making any changes to the data, but it can in the case of objects with damaged or invalid trim curves on them - the 3DM file container will attempt to correct things but if the trim curve structure is really messed up it can potentially look a little different after you save the file and reload it.

Again, this appears to be caused by the base object in your boolean being made up of a self-intersecting surface that folds back over top of itself.

Having any additional object will not fix this - the surface that you see here is not going to work to use in a boolean:



Doing a boolean on that has created an object that is damaged and has a messed up trim curve structure, it will behave weird in several different ways - having it look like things are leaking out of it, and it can be possible for it to look a little different after saving and reloading.

Again, the main problem is that you can't really do booleans with objects that are made up of surfaces that fold back through themselves - surfaces that fold back through themselves will confuse the surface intersector and you'll get weird objects from that.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  FelixPQ (FELIX)
4775.8 In reply to 4775.4 
Michael,

as usual, your tips are very useful. To get a pseuso render real quit like that is a great idea, thanks.

I suppose I can shrink (scale down) my second profile such that it doesn't fold on itself like it does now but this will also affect other aspect of the model that I'd prefer not modify if possible. I did this to create the red model kind of thing in the last image I posted. For this first attempt I used an open profile curve to generate the sweep, I was just fooling around and then decide it would be nice to use 2 of these objects and join them with a nice flowing shape to connect them. I realised I needed a symmetric profile curve such that it would be possible to use these profile as well for the connecting part.

Personnaly, I have 2 problems with this models, the first is obviously the self intercecting part and the second is that a real object like this wouldn't have empty space like it's clearly visible in your image (felix_self_intersection3.jpg). I guess my question would be, is how can we design such object without self intersecting part and with no voids? Any suggestion will be helpful, I have no doubt about that.

Thanks,
Felix
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  FelixPQ (FELIX)
4775.9 In reply to 4775.7 
Michael,

thanks for the explanation about internal data and saved data. I guess we must avoid self intersecting part at all cost if we don't want to get into trouble.

Thanks,
Felix
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  Michael Gibson
4775.10 In reply to 4775.9 
Hi Felix, you can actually make a self-intersecting object if you only want to make a render mesh for it, but yeah they need to be avoided if you want to do things that will involve surface/surface intersection calculations with the object such as booleans.

This is certainly a tricky shape to try and make without self-intersection though.

I think you'll have to stop the main sweep something around here:



And then make the rest of it with just the outside half portion of the profile, something like this:




Or maybe you could try only doing a half profile (the outer half) along the entire sweep length and then an inner profile that stops before it folds in on itself, and then do a blend between them to connect them up.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All