Light objects in blocks

Dear all,

I want to have light objects in block definitions; for instance, I need dozens of light masts carrying 6 spots each, so the most logic solution would be to define a spot (with a parabolic reflector, and in focus a point light object), and a light mast block that contains 6 spot blocks, and spread the light mast blocks over the scene as needed. However, it seems that light objects are ignored in blocks so the scene comes up totally black. Am I missing something or is this a fundamental problem with Rhino?

Adding each light manually in the final scene is no option, there will be ten thousands in the end.

thanks for all your replies and suggestions.
best greetings
Mischa

That does seem like an awful lot of lights, if that is literally the number you’ll need. I have no idea how that will work in terms of lighting in a rendering or something- seems like asking for trouble to me… however if you really need actual Rhino lights, I guess I’d insert the light mast once, add the lights and group these with the block, then distribute copies of this group- at least the non-light objects in the block will benefit from blocking.

-Pascal

Be careful, there could be a problem with your render engine. For example the old Flamingo was horrible slow if you used a lot of lights. For VfR I would recommend to use small area lights and enable “store in IM”.

Edit: if you have thousands of lights maybe lights doesn’t work in any render engine. In this case you need to use emitter materials.

I noticed that, at least with V-Ray, lights contained in blocks don’t work.
It reminds me to do a bug report in the V-Ray forum.

1 Like

Thanks a lot for your replies! I’m working on a scene with Apollo 11/Saturn V/LUT/Crawler on the Launch Pad and wanted to prepare a night scene as well. So maybe a light emitting material approach would be far better - I’m a total newbie with rendering, actually the 3D model is base of a scale model and for most of the time I only need an Outline/GI rendering for building instructions. My current render engine is AIR 13 from SitexGraphics, which supports light emitting materials, I have not found them in Rhino, however.

thanks a lot
Mischa

If I remember me right you need to create an AIR material based on “constant”.
(I used AIR in the past and now for illustration from time to time. For photoreal images with stable GI I feel me comfortable with Vray.)

Thanks Micha. I tried Constant/Emitter Air materials, but it seems not to work either within block definitions. It appears to be a general problem, that Rhino does not accept light within block definitions.

I guess I’d insert the light mast once, add the lights and group these with the block, then distribute copies of this group- at least the non-light objects in the block will benefit from blocking

Unfortunately, in my case the whole surrounding (Launch Pad, KSC and so on) sits within a block definition, and is combined to the final model together with the Saturn, LUT and Crawler. Since each of the components is already a very big model, this is the only way to put them together as Rhino becomes very slow.

thanks
Cyana

Doe’s the emitter work without to be a block?

I was wrong. Emittor material works within block definitions, the problem however is to control the beam of light, and the results are not really natural. While the emitter tends to be invisible, the surrounding is lighted for miles ggg

General glowing emitters should work like glowing materials in the real world and the surrounding lighted area depends on the set intensity. But I’m not sure about AIR. I use AIR for toon renderings only, because I had problems to get a photorealistic look within short render times. So I’m using Vray for this usage.

The answer is yes - this is a fundamental problem in Rhino. Lights are not really “objects” internally. They exist in their own table inside the document and so they can’t be placed inside blocks. I will be the first to admit that this was a mistake.

I will log a bug and we’ll see if something can be done about it in the future. However, it cannot be fixed in V5.

1 Like

That clear things, thanks

Thanks Andy for the clarification and the bug log.
To Micha - the results are weird - sky is white, hidden places that never are exposed to light show up while others, that should be visible stay dark. Also, I found out that emitters only work with indirect Illumination, not with occlusion. As the project still will continue for some years, I hope Rhino 6 will be out with a new lighting approach :wink:

best greetings and thanks
Mischa

That’s right, because AO is a fake-GI only, it calculate a white lighting everywhere and add shadows around objects depending from the distance between calculated surface point and objects around. It’s a geometry based fake only. So, emitters work with full GI only.

Since I don’t use AIR for images with GI I don’t know how to avoid the weird results.

Hey @andy , Just wanted to see if there was ever any progress with this issue?

At the moment the best workaround i’ve found is embedding a Vray scene file into a block, essentially acting as a render proxy. But this definately has it’s drawbacks (No viewport Lighting, Having to Re-Export when adjustments are made etc…)

A lot of the work I undertake revolves around lighting design so I think this would drastically improve the workflow for anyone regularly having to deal with large amounts of lighting fixtures.

Cheers

I was vastly confused because I couldn’t place lights inside blocks. It gets really tiring to individually copy lights at each block objects when a block needs light. It’s still not fixed in v7. Is there any concrete plan to fix this issue soon?

Hi - I’ve added your vote for this feature in item RH-48093.
-wim

Add me up :smiley: This really needs to be implemented. 3ds max just recently adopted this feature. Also, if this is implemented then I would assume that we can now create light objects with grasshopper?

Plus one :face_with_monocle:this feature is very useful in sketchup.Sometimes I even export the model to su for rendering because this problem.