CompuServe Thread

shadow hair-pull

15 messages in this thread
#185323From: Christopher MartinAug 16, 1995 1:02 AM
I have finally reached my break point! Help! Why is it that if you want a clean animation, with shadows, you have but basically one shadow choice – raytrace? Regardless of the endless permutations of settings for mapped shadows, they always flash somewhere in the animation. If you blast the intensity of the mapped shadow by using an additional omni light, you can reduce the flash effect, somewhat, but you still get a flash. Go to fields and the flashing is even worse! Yes I have read the books, yes I have tried changing the "ABSOLUTE" setting, yes I have played with this for nearly three years…HELP! Is it me? Is it 3DS? Any help here would be tremendously appreciated. Thanks
#185458From: MARTIN G FOSTERAug 16, 1995 2:07 PM
T. >> I have tried changing the "ABSOLUTE" setting, yes I have played with this for nearly three years…HELP! Is it me? Is it 3DS? << it's a common problem, but I think there are solutions. I have tried a much larger shadow map with some success. (1500 – 3000) Hope you have lots of RAM 🙂
#185542From: Christopher MartinAug 16, 1995 11:07 PM
Thanks for the reply. I will certainly try your suggestion. It still leaves us lost for a shadow methodology which provides some shadow without the time required to raytrace. In the mean time I will continue to use my Canadian cost conversion for projects with shadows: "double it and add 32" <g> Thanks Chris
#185764From: John K. JordanAug 18, 1995 12:58 AM
Pardon me for restating what may be common practice for you, but don't forget to turn off the "Cast Shadows" attribute for large objects like ground planes and terrains that don't need to cast shadows. JKJ
#185971From: Michele BousquetAug 19, 1995 8:58 AM
JKJ, 'Twas a delight to see you at SIGGRAPH. Are you really the Boolean King? I just got done teaching a class in Green Bay, Wisconsin with James Murphy. We did a section on booleans. I wonder if you have anything to add to these basic concepts that we covered: 1. If you boolean a hole into an object such as a flat plate, sometimes it seems to work fine (the mesh looks fine) but when you render, some of the faces around the hole seem tilted or pinched. Reassigning smoothing groups sometimes solves the problem but sometimes doesn't. 2. If you get "Cannot complete boolean operation, please adjust geometry" you can sometimes have some success by moving or scaling one of the objects slightly. You can also try remaking the objects so they have a more similar vertex density. I have found that trying to boolean a very dense object and a non-dense object will sometimes not work while the same boolean with objects of similar density works fine. Any comments? The first one is particularly frustrating. Sometimes the only way to make an object, say a mechanical part, is by booleaning a hole into it. I tell students to use lofting where possible but you can't always do this, then they're stuck with a pinched-looking part. Michele
#186241From: John K. JordanAug 21, 1995 9:39 AM
Hi Michele, Boolean King? I hardly think so! However, since I do a lot of the mechanical things you refer to, I've done a big pile of booleans and have had to figure things out. 1> zits around holes… Almost always when I see the pinched look or smoothing prolems it has been due to tiny faces or slivers the boolean has added. These are often invisible until zoomed way in. The problem is the attempt to smooth over an edge at a face or two where there should be no smoothing. AutoSmooth doesn't help – my guess (I have not done the math) is that when working on a very small scale, the trig calculations to determine the angle between faces suffers from a lack of precision. This also is a problem with very thin slivers of faces. To fix, I do one or more of three things: a) Zoom way in, look for tiny faces, and manually weld vertices to collapse the bad faces. b) Use the ol' select & weld strategy to collapse the tiny faces. I set the weld threshold to something smaller than the smallest edge I want to maintain, select all the vertices in the object, execute Modify/Vertex/Weld "Selected", then re-AutoSmooth. This can backfire, so hold first. c) Manually smooth, or rather unsmooth: select all the faces on the flat plane and remove the smoothing. 2>incomplete boolean, adjust… My humble obversations note that this is very often caused by topology – asking the algorithm to figure out which surface is out. Several causes and fixes: a) Bad geometry, with missing faces or internal faces – fix the geometry such that it has a single, unbroken surface, then unify normals. b) good geometry but inconsistent normals – unify normals. c) overlapping elements. This is probably the most common cause of "cannot complete boolean operation". If an object is made up of several elements, a boolean will often fail if it overlaps more than one element, *especially* if the elements themselves within one object are overlapping. In this case, a boolean, for example a subtraction, can usually be completed with 1) detach the elements into separate objects, 2) union these back into a single object, then 3) perform the boolean subtraction. Note that depending on the object, a "select & weld" step may be necessary after each union in step 2. Experiment with this technique using at least three overlapping spheres. A variation of this is the case of a subtraction thru the folds of convoluted object, even if the convoluted object has consistent topology. I've had cases where this confused the boolean algorithms and fixed it by making some intermediate objects and doing the boolean in stages. Well, after I typed this I found a copy of a previous message from the past which contained additional ramblings. I'm resending it to you (without reading it to correct any embarrassing goofs <g>) in case you are interested. Some of it looks like duplication, but I don't have time to sort it out just now. Well, have fun on your trip! JKJ (full of bool, once again) [old message to follow]
#186514From: Ralph F. FrantzAug 22, 1995 10:48 AM
>> JKJ (full of bool, once again) <g> Ya, there is no bool like your bool! <g> …as we all save you insight for reference. Ralph
#186593From: John K. JordanAug 22, 1995 2:03 PM
Perhaps more useful than a sex stone.? <g>
#186618From: David J. MarksAug 22, 1995 4:04 PM
>> sex stone << <laughing out loud> Gotta watch out for you and that McGlasson character…
#186243From: John K. JordanAug 21, 1995 9:41 AM
Michelle, it's me again. Here is the old boolean message. JKJ [reply to an old message:] Hey Jim! Booleans & face problems, eh? My favorite subject… (the booleans, not the faces) I forgot whether your original message was simply about face problems or about completing booleans. As for tesselation, it will often just make things worse. ——————————————————– Incomplete booleans… If the problem is completing the boolean – since the boolean code was improved in R3, I almost NEVER tesselate before doing a boolean (and I do a lot – I must have done 30 or 40 just today on a tank model I'm building). If a boolean doesn't complete, sometimes it helps to tesselate, but sometimes it makes it worse. In my experience, the biggest enemies of successful booleans are a) long slivery faces b) billions of tiny faces c) an incomplete surface (missing faces, not completely closed) d) inconsistent topology (intersecting surfaces, either within a single element or because of overlapping elements) e) inconsistent structure (internal faces, perhaps caused by a previous boolean misadventure) f) inconsistent face normals (not all pointing the same way) g) reversed face normals (not all pointing out) h) unwelded vertices, causing (c) If you have some long narrow faces (a) in the area of the boolean, tesselating will often just make the faces longer and narrower. Ack! If you have billions of tiny faces, (b), tesselating will multiply them. If all the normals are right and the surface topology and structure are correct (cdef&g) and the boolean still does not complete, then some manual editing with Edge/Divide will usually work. If you have several booleans to apply to a single object and the boolean will not complete, try applying them in a different order. (This worked for me today for some intersecting grooves I was cutting in the side of a gas can) If that won't work, try moving one of the objects a tiny bit. If you have elements that overlap in the area of a boolean subtraction (d), either combine them first with the boolean Union operation, then subtract, OR separate the elements into separate objects and subtract a copy of the subtraction object from each. If you have face normal problems, unify/flip normals should fix them, perhaps with the aid of Optimize, if you have it. If unify will not help, then the surface topology or the internal structure is almost certainly fouled up and must be repaired before continuing. Object imported from AME and other modelers sometimes have these problems, especialy a group of vertices which do not quite meet at the same point and are not welded. (BTW, the easiest booleans are between one very simple object, like a cube, and another object, simple or not.) A few unsolicited JKJ construction tips: – When performing multiple booleans, always check each result carefully for stray faces – fix them manually before attempting the next boolean or the final smoothing operation. Note: fixing generally requires deleting some faces and manually rebuilding some faces. Turn on AllLines to see better. – When building objects which will be booleaned, avoid long skinny faces like the plague. The worst offender is the long cylinder – create these with multiple segments to keep the faces shorter. – When creating a large box that you intend to subtract something small from, consider making the box with GRIDS.PXP. (weld the vertices before the boolean operation) This will prevent long skinny faces radiating from the corners of the box. Another method is to loft the box with several path/shape steps. – When drawing a shape to be lofted, examine it after lofting for long skinny faces. If present, go back to the shaper and use Modify/Segment/Refine to add some extra vertices for the lofter to costruct from. Add vertices in the path to avoid long straigbt sections. The ultimate but unatainable goal is an equilateral triangle for every face. (I usually leave shape and path steps at 0 and manually refine all curves and paths to give me more control over the lofter) – Occasionally you can use Modify/Edge/Turn to make an uncooperative face or two behave. ——————————————————– As for the face rendering problems… Misbehaving faces are often caused by a) unwelded vertices b) very tiny or long slivery faces c) a missing face or two d) other inconsistent topology or internal structure, including overlapping coplaner faces, intersecting faces, etc. e) improper smoothing Everything seems to boil down to (e), improper smoothing. The trick is in sleuthing out what is causing the problem. For example, a boolean between two objects that have some vertices very close together will almost always cause (b) which will most assuredly cause (e). If you zoom way in on a problem area, you will probably see some vertices close together. These can be welded manually (usually best done in a User view, and often after hiding obscuring or underlying faces) Another easier trick is to bump the weld threshold up some and weld all the vertices in the problem area. For example, in a model I was working on today, I measured the smallest edge I wanted to preserve at around 5.0 units, so I set my weld threshold to 1.0, selected all the vertices, then did a Vertex/Weld "selected". Some excerpts from some recent messages to someone else about face problems… – AME sometimes drops a face. Build a new one. – From AME, sometimes some vertices are not welded. Render flat, and look at where the streaks start (zoom in real close). If a group of vertices are separated where they should not be, you can manually weld them. Another way is to bump up your weld threshold some, select all the vertices, and weld "selected" – Look for an extra face that found its way into the mesh & delete it. I've seen this on meshes dxf'd from other modelers. – Zoom in real close on the edge of the problem area and look for any long, very skinny faces, and eliminate them by manually welding adjacent vertices. This happens a lot with booleans. (BTW, several things in 3DS are not friendly with long, skinny faces, including cameras and booleans. Sometimes I do a little Edge/Divide'n to fix this. Also, if you create something like a long cylinder, especially with intentions to use in with a boolean, make it with several segments to avoid long, skinny face problems.) After the faces are repaired, autosmooth, perhaps trying different angles as appropriate. Better yet, unsmooth and select sets of faces and manually apply smoothing groups (required more often than one might think) Although the autosmoother is doing what it is told, it sometimes doesn't agree with us as to what should constitute a flat surface or a proper angle between surfaces. Especially where vertices are very close together as on the edge of a boolean, it will sometimes smooth a sliver or two over what we think should be a sharp edge, resulting in streaks. After any face/vertex problems are fixed as mentioned earlier, if the streaks still appear, I usually select all the faces on a plane and clear all smoothing groups from just those faces or apply a single group to those faces. (If you apply a group, make sure you don't use one that is already in use on any faces adjoining the plane.) You can even detach the planar faces into a separate object and clear or apply a single group to the surface, but this is not necessary unless you want to autosmooth the rest of the original object separately. Also for face rendering problems, note that some of the ideas above about preventing long skinny faces while building objects all apply. ——————————————————– All this said (and as soon as I post it I'll probably think of something else to say), if you have a demon-possessed object with face or smoothing problems, or a boolean that won't, I'd be glad to look at it. (That's what I do for fun in my spare time. 🙂 Just email the zipped 3DS file, take two aspirin, and I call you in the morning. JKJ PS: sorry this is so long – I get carried away sometimes. You probably didn't want all this but maybe someone else will. <g> (Disclaimer: the above is based primarily on my experiences, which have no claim on completeness. Or as Shanti Goldstein put it, "No man is an isthmus") [end of old message]
#186271From: dave aguilarAug 21, 1995 12:51 PM
wow, JKJ… that's a wonderful post! bravo! -dave
#186315From: John K. JordanAug 21, 1995 4:34 PM
Aw, gee whiz, .., thanks! <g> Maybe if everyone commented with their boolean tips, they could be compiled into a reference source, perhaps to help with the next 3DS manual (if appropriate!)
#186010From: Christopher MartinAug 19, 1995 2:16 PM
Thanks for the tip. Was this in reference to flashing shadows when shadow mapping? or in reference to the rendering time required when raytracing or using a large shadow map? I just want something that yields a reliable shadowy mass for instances when you cannot afford to raytrace! Thanks, Chris
#186244From: John K. JordanAug 21, 1995 9:41 AM
>>flashing or rendering shadows… This was in reference to your flashing shadow problem. I don't know if it will fix your specific problem, but it is a 3DS shadow tip that has been repeted several times on this forum. JKJ
#186485From: Christopher MartinAug 22, 1995 8:41 AM
Thanks. I admit that generally it is my practice to turn off shadows casting attributes to the ground plane and such, but it is not alway foremost in my mind. I shall try to move it up in the stack and hope that nothing of importance pops off the top. <g> Chris