Shadows missing

Hiya,

Same problems with no shadows showing on ground as this general forum - but for Rhino 6 for Mac.

Model Name:iMac

| Model Identifier:iMac18,3
| Processor Name:Intel Core i5
| Processor Speed:3.4 GHz
| Number of Processors:1
| Total Number of Cores:4
| L2 Cache (per Core):256 KB
| L3 Cache:6 MB
| Memory:16 GB

So I can’t try any of the fixes of before as in V6 all the GPU hardware support toggles are gone it seems from yr prev ans (btw: assuming then they are always set to on??).

Anyway; so I only have use GPU for tessellation left as an option in V6 for Mac and doesn’t do anything one way or the other. Can you shed some light please?

Btw advanced Rhino user (previously PC since 2008 - made switch to Mac - what a mistake! Lol) so don’t need to go through all the ‘are the shadows on’ ‘are there self illuminated materials’ etc. checks. Suffice to say: everything that should be on, is on, and still no joy.

I am expecting that there appears to be an in-built cut off for the shadows and if the model is too big and the system rig can’t handle it it just shuts em off. But would appreciate knowing one way or other as would save a bit of wondering. Ta!

Image for ref:

It looks like lack of display resources to me.
I’ll see if I can get some details from a developer.

I think the underlying problem here is the Rhino display was not originally designed to accommodate the needs of huge architectural models.

We’ll see what they say.

Hi @nick_arthurell,

Actually, there is no “cut off” imposed at all… This is going take a bit of explaining, so please bear with me…I apologize in advance for a lengthy response.

There is a physical limitation that exists in the technique being used in Rhino for shadows…which is “Shadow Mapping”. A “shadow map” is basically the depth buffer of the scene rendered from the point of view of a given light source… The resolution of that map is what determines the fidelity of the shadows…

For example: Suppose an object in the scene only takes up 2-3 pixels in the shadow map…There simply will not be enough information there to provide fine, detailed shadows for that object. Basically, the smaller the portion an object takes up in the shadow map, the worse its shadows will look.

In large scenes, Rhino has to place the light source far enough away in order to get the entire scene into the field of view, which compounds the problem I just mentioned…zooming further out, will cause objects to occupy even fewer pixels in the shadow map. If you select your entire scene and run ZS (zoom selected)…and look at how small your objects appear…that’s how much information Rhino has to work with for casting shadows for those given objects. The end result is that 2-3 pixels in the shadow map yields very sparse and spread out shadows… So in the end, there are shadows in your scene, you just can’t see them because the results are such that they do not impact the final scene very much, if at all. So it might seem like there’s a “cut off”, but there really isn’t.

The “Video memory” slider you show in the screenshot is actually just increasing the size of the shadow map, giving a better chance that objects will occupy more pixels in the map…but the size is limited by hardware texture size requirements…so you can only grow that so much.

This is usually only a problem with directional lights, since they are supposed to be “infinite”, and therefore, one light is supposed to illuminate everything, everywhere. Place a spot light somewhere down on your scene, and you should see shadows…because the spot light shadow map only needs to worry about the objects contained inside its cone of light, and thus a large shadow map will contain all kinds of info for objects in that cone, and therefore produce very fine, detailed shadows.

There are a couple things Rhino tries to supply to help mitigate some of this…

  1. Camera based clipping bubble (shown in your screenshot). This tries to limit the “zoom out” of the scene based only on what you currently see in the view…However, it also means that objects outside the field of view (or bubble) will not cast shadows down into the scene (i.e. a tall building off-screen casting a long shadow down into the scene due to a low placed light source). This might not be working on the Mac, but I haven’t heard anything (or checked).

  2. There are object properties “Casts shadows” and “Receives shadows”. If you configure an object to not cast shadows, then that object will not be included in the “zoom out” calculations. This can be useful when using a large planar object for the ground, but only have objects occupying a small portion of that plane… At first, Rhino will use that planar object in its calculations, which causes the other objects to lose their shadows (for reasons I mentioned above)…But, if you select the planar object and UNCHECK “Casts shadows” in the Object Properties, Rhino will no longer use it in its calculations, and the other objects will instantly show their shadows. Centralizing groups of objects and turning on/off “Casts shadows” accordingly might help, but if there are still many objects, spread out across large areas, and you want them all to cast shadows, you’re still going to be left with the same problem.

  3. The video memory slider I mentioned earlier. By making the internal map larger in size, will produce more information to work with…but that can only go so far, and probably even more limited on the Mac…for other reasons I won’t go into here.

Unfortunately, I don’t think any of those is an option for you, since it looks like there is something everywhere on your “ground”, and you’re trying to get a 10,000 foot level view of your scene…which would still require a pretty big “shadow bubble”.

There are other shadowing techniques that exist to solve things like this (Dual paraboloid, Cascaded Shadow Maps, etc)… But those also have their own set of problems… Probably the best solution for your case, would be projected shadows for a single light source, which is similar to what a Sketchup does. Rhino supports infinite light sources, all casting their own shadows, so there aren’t very many shortcuts that can be had…but if we were to allow limiting shadows to a single light source as an option, then there are all kinds of tricks and shortcuts we can use…which is something that is on the list of things to do, it just hasn’t happened yet.

Lastly, if your scene was partitioned into smaller sections, and then only one section was set to “cast shadows” at a time and the others not… That might help… this is how “cascaded shadow mapping” works, only it tries to do the partitioning automatically, but this might not be a feasible option for what you’re doing.

Long winded response (sorry), but basically, there really isn’t any thing I can suggest (no silver bullet) here other than what I’ve said above to solve your current situation, or this problem in general. It is a limitation in Rhino’s shadowing mechanism that we hope to have a better solution for in the future. Probably not what you wanted to hear, but it’s the reality of the situation.

Thanks,
-Jeff

P.S.

If you send me your scene, I can try to see if there is anything I can come up with that might yield better results.

1 Like

Dear John & Jeff,

Many thanks indeed for the combined answers from you both!

Very good to have a bit of under the bonnet info; and don’t worry about the depth, it is all very interesting to learn, I know no-one really likes to say “it can’t do that”, and I’ve seen, and on occasion followed a thread or two, where the labyrinthine twists and turns people will oft take rather than, seeming to, address that quite simple answer, or exhaust all other possible avenues of increasingly tangental nature before coming to that, one might perhaps say ought to have been first conclusion/answer, can be fairly exasperating, even vicariously.

That all being said though, glad that is not the case here even if the answer is the same! I do appreciate the effort you’ve gone to in finding some potential workarounds given the working parameters; it certainly gives useful inherent ‘working limits’ knowledge of the program.

In my experience of my profession (architecture - correct inference there!) it seems we’re almost immediately butting up against the envelopes of the various programs as soon as they are released! I think we like to push the limits of possibility inherently, yet are (as a rule but not without exception) generally not able to (through technical expertise or more often resource/time constraints) innovate and re-make bespoke programs or bootstraps thereof to suit our needs, like say in a big film production SFX house etc would where it is their bread and butter. And so we are reliant on the good, dedicated people like yourselves and others (Autodesk, Bentley et al.) to help us out and push this part of the practice. So; a rather long winded way of saying thank you very much and keep up the good work - look forward to future releases and improvements to your great program suite!

Many thanks,
Nick

Further:
In case any followers of this thread (who’re still here and not unconscious with boredom!) my chosen solution will be to just use my at work set up, where I’ve a pretty decent PC rig, so I’ll just either stick the model into 3Dsmax and run mental ray or Vray on it with Geo-located Sun rose etc or just run the Vray Plug-in straight from Rhino (again with realworld sun position lat long etc). For quick live track (i.e. if want to just see quickly the basic sharp line shadows and eyeball it as you move the date/time) I/you can open it in Microstation and use their render preview to get a good live track of shadows or even use Revit for the same, so not an issue really. Could even use Unreal or Enscape for tests - pipeline on those pretty quick, especially Enscape - one click really, just need to fiddle the display settings a tad to give you axo/iso views.

Simples.

Task was ultimately just to get some quick test shadows to live-track (moving sun position whist eye-balling the results) to see what sun paths and pockets of shadow and light are produced in order to markup on screen quickly positions for some intervention opportunities for landscaping and cafe spill out spaces etc etc., but I could do all that from the simple quick renders of the programs as mentioned, was just being lazy and wanted to see it quick in the program I happened to be in - Rhino - and then seeing it was playing up was just wondering if it was possible with Rhino realtime, (which to do it justice it usually is of course - just the size here is prohibitive), so if anyone else in a similar bind - just use render plug-ins (if on PC) or swap to another program for real-time quick testing.

Good luck out there :slight_smile:
N

Yes, something like this would be perfect for this kind of situations. This is the only reason I export Rhino files to SketchUp, to get crisp cast shadows.

Thanks for this trick, it does actually improve the precision of the shadow in some situations.

1 Like