CompuServe Thread

Boolean operations…

17 messages in this thread
#173016From: Thierry SchembriJun 1, 1995 9:13 AM
HI, Are there bugs on the 3DS's boolean operations ? Because Creating an Object, I 've used boolean to make grooves. But this operations create black triangles (my object is grey !). these triangles are not removable ( the only way is to create the boolean again moving a little bit the source. but it's not always runnig well). If boolean are bugged : Are there an IPAS to make all booleans possible ? Regards, BAILLE Philippe / FRANCE
#174002From: Brian Rudolph [Adesk]Jun 6, 1995 7:16 PM
Theirry, The black triangles you are seeing might be faces with their normals flipped. Try rendering 2 sided and see if the triangles render. <<Are there an IPAS to make all booleans possible >> I'm not aware of any IPAS routines that enhance Boolean functions. If you need more Boolean editing that 3D Studio provides, your best bet is to move to a modeling package (like AutoCAD with AME or R13 and ACIS) which has a much stronger set of Boolean functions. Many people model in ACAD and then bring over the models to 3DS. -Brian
#174074From: Don LandisJun 7, 1995 12:35 AM
>>The black triangles you are seeing might be faces with their normals flipped. Try rendering 2 sided and see if the triangles render. I, too, have been having a lot of problems with boolean and flipped normals. What I don't understand is why object unify doesn't seem to correct this. Because of this "bug" I tend to avoid using boolean operations altogether. I spend too much time doctoring up stuff created by the software in error. Also, I think it is a poor policy to suggest that the solution to a bug like this is to use ACAD. If boolean is in 3DS then lets just fix it so it works. As a user, I don't want to be concerned that when I perform a function like boolean that if the geometry gets beyond a certain complexity that I have to resort to another software package when 3DS purports to have this feature built in.
#174080From: TSUN MOKJun 7, 1995 12:59 AM
The command "object unify" will not work if the only some of the faces in an object are in wrong normal direction. The solution is too use "face flip" to flip each face individually, When you perform a series of boolean operation on one object, such as a series of holes, grooves or whatever, the sequence of picking the object for boolean operation is tricky. It is always better to do those from the inside first and work outwards. If you still have problem at the final object, then you need fix the meshes by "edges\turn". Most of the time, you do not need to rely on other software.
#174171From: Don LandisJun 7, 1995 12:29 PM
Using boolean for simple boring of holes is about all that 3DS boolean is good for. With really complex geometry it just does not work as described. I'm talking text or whole words etched out of a flat plate object. This is too complex to decide which element to start from. What should be a simple operation according to the description in the manual becomes rather complicated due to it not working right. I have used object unify for this purpose with other models. I don't know why it didn't seem to function on the boolean result object. To flip the normals one face at a time is obsurd since I had a couple thousand faces that were fliped. Fortunately, the whole concept of 3D animation is deception. So, I just created a bump map and texture map for the letters. On the TV monitor it looked just as good. The project is done now and will be delivered on schecule.
#174179From: Craig NeubauerJun 7, 1995 12:57 PM
FWIW, I've had great luck using optimize to unify normals after a boolean operation. Sometimes I have to do it a couple of times, but I can always get it to work. Besides, in optimize you can turn on Show Normals to see exactly what's going on. Craig
#174221From: MARTIN G FOSTERJun 7, 1995 4:49 PM
Don, FWIW, I almost never use booleans. With time spent on planning I can model most things without using them at all. That means creative use of shaping and lofting (deform fit) and quite a bit of edge/vertex/face manipulation.
#174539From: Edwin BraunJun 9, 1995 10:09 AM
Hello, just to help a little bit out. Take a look at the SCALPEL IPAS and the pictures. SCALPEL does not replace booleans. But it's functioning with every size and kind of 3D Mesh. Scalpel allows you to cut every 3D Object and it will help you very much in producing complex objects. In SCALPEL you can use more than one "scalpel" to cut so you are able to cut things out. Look at the picture FEDER.JPG. This shows the effekt. Again, if you like to bool it seems to be a real boolean result in 3DS (it worked or it does not work)! Some of our customers use SCALPEL in their modeling process and they like the idea to count on SCALPEL when they need to cut things away! It's easy, it's fast, and it's low price, too! It sells in USA (around US$ 100) . .. Call Digimation for more info! greetings from germany the SCALPEL team
#174594From: Don LandisJun 9, 1995 4:18 PM
Thanks for the tip. I got through this one using a bump map but in the future if I need anything more than simple boolean operations I will consider using different software as most have recommended.
#174090From: Yost GroupJun 7, 1995 1:16 AM
Don, there's a big difference between the way ACAD (and almost every other program that does booleans) uses a CSG system to determine the boolean result, and the way 3DS uses an arbitrary face-topology system. Using deterministic CSG-based primitives, it's possible to always get deterministic results. But using arbitrary manifold topologies, it's impossible to be mathematically precise. We really try our best, however. – G
#174206From: John EllisJun 7, 1995 2:53 PM
Don, Booleans as has been noted can get complex. And like you I've had problems with it but if its important enough I can usually get it to work. The dilemma is that to be able to do a good boolean you need a lot of faces. If you have a lot of faces conversely there is the potential to have many of them reversed. Craig's point about Optimize is a good one, but it also requires some planning which can't always account for all the problems you are likely to encounter. One thing which is really helpful is to assign a material to each object which is going to be booleaned. Then once the boolean is accomplished you can dismantle it based on faces assigned by material. This is useful for breaking it down into a more manageable size for clean-up. Not a solution per se but hopefully a few useful tips. 🙂 John
#174342From: Brian Rudolph [Adesk]Jun 8, 1995 11:02 AM
<<I, too, have been having a lot of problems with boolean and flipped normals. What I don't understand is why object unify doesn't seem to correct this. Because of this "bug" I tend to avoid using boolean operations altogether.>> Object Unify does not always fix the problem, not becuase of a bug, but simply because of the position of the face in question. The algorithim will look at a certain face, and based on its position and relation to the bounding box and center point, will determine whether it is facing inward or outwards. <<Also, I think it is a poor policy to suggest that the solution to a bug like this is to use ACAD. If boolean is in 3DS then lets just fix it so it works>> The boolean functionality between ACAD and 3DS are very different. The 3DS modeler was not designed as a full function Boolean editor. It is a question of using the right tool for the right job. If you need to create complex booleaned objects, you need to use a full function boolean editor. -Brian
#177695From: Andrew McClaryJun 28, 1995 7:48 PM
Brian, "The boolean functionality between ACAD and 3DS are very different. The 3DS modeler was not designed as a full function Boolean editor. It is a question of using the right tool for the right job. If you need to create complex booleaned objects, you need to use a full function boolean editor." I am so sick of hearng that cop out. You software dev guys need to get a clue. Us guys in the pit would sell our right arm for a program that all of the features actually worked. Why is it that Autodesk has there sh$%% together for booleans for Autocad and not for 3DS? Don't your dev teams share code? Maybe its time they did? It is not so much the problem of buying another peice of software as it is to train people to use another program. I've got so many different programs allready. Almost all of them overlap in features, but not one of them has all of the features working!!! Wheww! Sorry I had a bad day trying to get tech support with software techs. 🙂 Andrew Graphic Alchemy Interactive, Inc.
#177788From: Brian Rudolph [Adesk]Jun 29, 1995 10:34 AM
Andrew, I am sorry you are frustrated. I have forwarded your message to the appropriate product manager. -Brian
#178527From: Forcade & AssociatesJul 5, 1995 12:18 PM
Andrew, There is a major difference between how programs like AutoCAD do booleans and how 3DS does booleans. This effects the chances of successfully generating the new surface. AutoCAD will only do boolean operations on objects created from solid primatives and simple extrusions. 3DS will do booleans on any objects (or at least attempt to). When doing booleans with solids, AutoCAD has an exact knowledge of the form of the original pieces and can easily predict the boolean result. Solids have know forms, volumes, and definate insides and outsided. They always have fully closed surfaces. AutoCAD cannot do booleans on arbitrary surfaces. When it comes time to put a mesh surface on booleaned solids, AutoCAD will seperatly generate meshes for each surface. The vertices for each surface may not line up and may not be connected. You will have to manually move and weld vertices. 3DS must analyze and attempt to find the surfaces of completely unkown forms and must figure out where the inside and the outside of the surfaces are. Sometimes it doesn't get it right. Several things can complicate the issue. Objects in 3DS don't have to be closed. They can be deliberately open or there can simply be inadvertant gaps in the mesh. This can confuse the routine that determines where the insides and outsides of a form are. Objects with multiple elements can also have this effect, expecially if the elements overlap. Any overlapping faces in the mesh will also confuse the boolean operation. Long thin faces are probably a problem because of rounding errors. Unify/Normals has similar problems with complex or damaged mesh surfaces. It will handle faces with mixed up faces. That is what it is designed for, but if there is a gap in the mesh or overlapping faces or multiple elements, then Unify/Normals will also get confused. 3DS's boolean function, when it fails, may create gaps or overlapping faces. If you do a subsequent boolean, it will compound the problem and Unify/Normals will not help. When you do a complex boolean in 3DS it is often best to do it in stages, one element at a time, checking the mesh carefully between steps for errors. Save a new version of the file between each step. This lets you go back to any given step and start over. You want to do this because you may not catch an error until some later step. I do hope that Yost Group will develop a smarter boolean function for R5 that has less tendancy to trash a mesh when it fails. I doubt that there will be a revolutionary improvement because of the difficulty of doing booleans on arbitrary mesh surfaces, but who knows. This is not meant as a flame at you, but just to let you know that there is not way that AutoCAD and 3DS can just "share code" for booleans. Terry Gilbert Forcade & Associates
#179767From: Andrew McClaryJul 12, 1995 9:36 PM
"This is not meant as a flame at you, but just to let you know that there is not way that AutoCAD and 3DS can just "share code" for booleans." Terry, Thank you for your response it was somewhat informative. I am not a big Autocad user (I haven't touched it much since 3DS came out), but was impressed when someone showed me how easily Autocad handled 3D booleans. I still do not agree with you though. Why couldn't 3DS do its modeling using the same method as Autocad so booleans could be done. And like Autocad, these solids could then be converted to meshes. All I know is that when I need to do a boolean, they only work correctly about 25% of the time and I hate having to use and learn and teach my employees to learn 4 or 5 different modeling packages because not one of them will do all they claim. Maybe Autodesk should not in their specifications "It can do some booleans. (If you stand on your head, say the magic word and cross your fingers. 🙂 I do alot of programming so I am aware that there are underlying issues. But sometimes you have to let go of a lot of hard worked code and try something new that someone else may have done better than you. Sorry 🙂 It just ticked me off that Autodesks attitude was "Hey just buy Autocad!" Andrew
#174564From: Forcade & AssociatesJun 9, 1995 1:00 PM
Don, I can sympathize with your effects to do complex booleans in 3DS. It can be frustrating. I sometimes have to resort to using AutoCAD for some things (where possible). Maybe some background on the differences between AutoCAD and 3DS booleans will help you to decide when to use which program. There is a major difference between how programs like AutoCAD do booleans and how 3DS does booleans. This effects the chances of successfully generating the new surface. AutoCAD will only do boolean operations on objects created from solid primatives and simple extrusions. 3DS will do booleans on any objects (or at least attempt to). When doing booleans with solids, AutoCAD has an exact knowledge of the form of the original pieces and can easily predict the boolean result. Solids have know forms, volumes, and definate insides and outsided. They always have fully closed surfaces. AutoCAD cannot do booleans on arbitrary surfaces. When it comes time to put a mesh surface on booleaned solids, AutoCAD will seperatly generate meshes for each surface. The vertices for each surface may not line up and may not be connected. You will have to manually move and weld vertices. 3DS must analyze and attempt to find the surfaces of completely unkown forms and must figure out where the inside and the outside of the surfaces are. Sometimes it doesn't get it right. Several things can complicate the issue. Objects in 3DS don't have to be closed. They can be deliberately open or there can simply be inadvertant gaps in the mesh. This can confuse the routine that determines where the insides and outsides of a form are. Objects with multiple elements can also have this effect, expecially if the elements overlap. Any overlapping faces in the mesh will also confuse the boolean operation. Long thin faces are probably a problem because of rounding errors. Unify/Normals has similar problems with complex or damaged mesh surfaces. It will handle faces with mixed up faces. That is what it is designed for, but if there is a gap in the mesh or overlapping faces or multiple elements, then Unify/Normals will also get confused. 3DS's boolean function, when it fails, may create gaps or overlapping faces. If you do a subsequent boolean, it will compound the problem and Unify/Normals will not help. When you do a complex boolean in 3DS it is often best to do it in stages, one element at a time, checking the mesh carefully between steps for errors. Save a new version of the file between each step. This lets you go back to any given step and start over. You want to do this because you may not catch an error until some later step. I do hope that Yost Group will develop a smarter boolean function for R5 that has less tendancy to trash a mesh when it fails. I doubt that there will be a revolutionary improvement because of the difficulty of doing booleans on arbitrary mesh surfaces, but who knows. Terry Gilbert Forcade & Associates