New - Zone Entities


A zone entity is a 3-dimensional area that allows you to create a custom lighting environment. You can define the zone boundaries using a shapes and then customize the zone’s light properties such as its intensity, direction and color. Properties of zones have been exposed to javascript.

Find the tutorial here:

Get ready to enter the Danger Zone:

Why is a zone not a zone when it comes to audio?

A cinematographer’s dream…virtual or otherwise.


This is a major desired feature for me! Fantastic!!! I was thinking just last night of creating a work-list request for something like this.

Another thing zones might be good to extend to is different local gravity per zone.


Now it’s possible a little step before we have parcels with it’s own sound. :slight_smile:


Zones seems like a great way to override rules in part of the space.

But is it possible (or will it be) to change not only lighting environment, but some other aspects?

If we could change gravity inside a zone, than some thing like this
can be implemented easily

Or by setting gravity of a Zone to pull to it’s center, we could have planets.

It also can be used to manage permissions of rez, fly, etc.

One more thought is it control scale inside a Zone.
Imagine having a working city, or planet group You can explore on top of the table.


What you guys got here is pretty neat. Wonder if it could be extended for HDR lighting setups?

I agree with what @dofer mentioned. Additionally, this could be extended on that the zones should also have custom parameters that could be accessable via script just like the lighting system.


I was playing around with this last night and it was pretty nifty. Some comments though:

As of the moment the zone is of a Single “hard” Adjustable Directional Key light and a Simple (only position adjustable) Stage (or back) light.
Could we get the zone to support the Three Point Light Setup instead? or basic Imaged based lighting (Similar to Skylight in UE4 based on a texture (when texture is loading, have a grey zone instead), which ever first, it could also helpen to lessen amount of lights overall :). I know HyFy isnt PBR, but better lighting will still could help with looks.

This way the lighting could be made to look at lot more pleasant instead of harsh

Also, currently the transition from zone to no zone and from zone to zone is a bit jarring (especially if you add two zones within each other), can something be done about that, such as fading the lights out/in instead of just cutting them off completely?


Agree with @Menithal completely on every point. Except, did I hear him say there is an intentional effort to limit the number of lights in HF?

I would like the ability to place many, many lights. There are no images at all without Light. Like air and water, illumination must not be denied!

As far as transitioning between zones, this would be much easier to do if one had more than 2 or 3 lights to work with ; - )

Or, one could do procedural lighting!


Nah, but OpenGL Forward Pipeline limits lights to 8 by at the same time: However if using OpenGL deferred pipeline then much more is supported at the cost of performance. With deferred you have other issues like Transparency handling though. You can read more in the answer of

Not sure if Hifi is using deferred or some newer method, as we are after all going for New stuff.

They are also quite taxing which is why work arounds are deviced, so the less point lights the better, and one way to fix this is to make proper environmental lights within a zone. Making stuff look good with less actual light points but with better lighting overall should be the goal imo.

Not many things actually emit light anyway :slight_smile: Most light is actually just reflected and refracted off surfaces.

And, Id like to avoid the following


So, which pipeline is HiFi using, @Menithal?


Checked the Github code, seems word Deferred as it popup a few time.
Id still like a push for better environment lighting vs putting up multiple point lights.

They tend to be expensive to performance, and considering this is designed for various peripherals, Oculus Rift being one of them, it should be a focus to give us better environmental lighting options with zones, rather than multiple point lights at the cost of performance.

@SterlingWright Procedural light sounds a bit odd and wouldnt help as it still would generated point lights in the very end :stuck_out_tongue: so performance would still an issue with them.


Procedural environmental lighting : - )

I will take the 8 lights if I can get them. Doesn’t mean I will use them all at once!


This is actually quite funny!


I believe 8 represents the most lights that can be used all-at-once. You can have more, but only the 8-most-relevant get their effects rendered.


Also. I am curious why zones are distinct from visual entities, rather than an optional property of visual entities? It might be useful to have a visible, non-physical entity that is also a zone (thinking of lakes and swimming pool water). With the present setup, this would entail two entities, one for the visual and one for the zone-definition, and hence duplication of bounds-collision detection.


All the Yes!!

Can/will the Zones be extended to allow for other attributes in future? i.e. Access Permissions, etc? (Leaf out of the ‘Parcels’ concept in the Metaverse)


Nice addition to HF. By having the option to move these entities by vector, it opens up new possibilities with developing different kinds of shoot them ups. Fragment grenades, miniature black holes or moving a cloud of poisonous gas through hallways and rooms, the possibilities are limitless. I am already starting to concentrate my efforts on this platform and it blows opensim out the door. I like the fact of having the alpha program to provide useful feedback and a development team that actually listens. High Fidelity has now raised the bar on the standards of how a true virtual reality world should be built from the ground up. Back to the Zone Entities, great attribute to HF and great documentation along with it. Bravo.


Can local text chat be put in as a Zone function?