Go Back   AC3D Forums > Resources > AC3D Tutorials and How-To's
Register FAQ Members List Calendar Today's Posts

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Old 7th November 2012, 05:34 AM   #1
coldby
Senior Member
Professional user
 
Join Date: Jun 2006
Posts: 102
Smile Booleans: think BIG!

Yesterday night I was drawing a 3D phillips screwdriver, so just for the fun of it - only in this forum I could admit such a weakness without looking too much of a moron.
Well, the quickest, cleanest way to do the job was to byte four right-angle chunks off a basic cylindroconical shape - that's to say, boolean subtract.

My past experiences with AC3D's booleans weren't really amazing, so I tried without much enthusiasm. And punctually the outcome was a disaster: plenty of missing surfaces, the sinister cyan glow of illegitimate ones, the weird red contour of distorted ones... not very encouraging indeed.
Then a tiny light bulb popped alight somewhere in my skull: my model was tiny, the 0.0125 units/inch suited for an actual-size DAZ prop. Now what if... no sooner thought than done, I clicked 8 times the 200% button and tried again.

This time the outcome was impeccable.

Curious, I began challenging the booleans with increasingly difficult provocations - all of them 256 times as large as usual - and each time the results were flawless.

As a physicist I don't believe in miracles (other than when my mother-in-law occasionally shuts up, but that's another story), so I started looking for an explanation in order not to have my sleep haunted by ghost booleans. And a plausible reason eventually surfaced:
the floating point arithmetic has its limits: we just cannot squeeze infinite real numbers into the finite range a computer can handle, no matter how we represent them. Or, to be more precise, we can do that, but not without losing some small change en route.
Now, if you're wealthy enough you can afford that much without even noticing the loss, but if you're a beggar small change may be all you have in your pocket. And my original tiny model was definitely a beggar.

I'll stick to this hypothesis until someone comes up with a better one. And in the meantime, every time I'll have to use a boolean, I'll enlarge my model some 256 times first, boole it, and then shrink it back to the original size. Apparently it works fine.

And should someone better skilled than I find a discrete procedure to do the same without so much fuss, I'll be happy to buy her a bottle of champagne (if she's a she) or him one of whisky (if he's a he) .

Last edited by coldby; 7th November 2012 at 07:10 AM.
coldby is offline   Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT -4. The time now is 01:45 PM.


AC3D Forum
(C) Inivis Limited 2020