Future Is Bright: Phase 2 Released

#1

We’re excited to announce that Future Is Bright Phase 2, aka Technology.ShadowMap, is now enabled on desktop platforms (Windows and macOS using DX11, Metal, Vulkan) for all developers to use. Windows 10 Store and Xbox support coming next week. Huge thanks to the team who made this happen! It was a long road, but we have finally made it. Kudos to @zeuxcg, @Qiblox, @ConvexRumbler, @Homeomorph, @NeoBuilder101, @vrtblox you are fantastic!

What’s new?

We have added shadow map support to the lighting voxel engine! Now every single object in the scene can cast shadows. Currently, only the Sun and Moon can cast shadows; we can’t do shadows from the local lights (yet) due to some internal voxel lighting limitations, but we will do this for the Future Is Bright Phase 3.

How do I use it?

There are several new options available:

New lighting technology: ShadowMap
image1

Shadow Softness property which allows you to specify how blurry the shadows are
image3

And you can now control if a part casts shadows by using the new CastShadow property. This property also affects voxel shadows.
image4

How does this work?

Shadow mapping is a common way to do shadows for games. Our task is for each pixel on the screen to determine if this pixel is visible from the light perspective or not; in other words, we have to solve the visibility problem. To solve this visibility problem, we can render the scene from the light’s point of view into an offscreen texture (shadow map). For each pixel of this texture, we will store distance from the light to the nearest shadow caster.
Then for each pixel on the screen, we can compare the current distance to the light source with the distance that we saved in shadow-map. If current pixel distance is greater than stored distance than this pixel are in shadow otherwise pixel is lit.
Of course, this description is oversimplified, and there are tons of different details, tricks, and optimizations to make it fast. But I hope you get the point, for the shadow-maps we should render the scene at least twice; the first time to generate shadow-map itself and the second time to render a scene.
That is why from a performance perspective it is crucial to render as few objects as possible. Here are some performance tips:

  • We will never draw objects to the shadow map with CastShadow property disabled; this is an excellent way to save some performance. For example, if your game has lots of grass meshes, you probably want to disable shadow casting for them.
  • We will try not to re-render static objects. If your object is not moving this will save some performance
  • Unfortunately, when then sun direction changes we have to invalidate our cached shadow maps. The less frequently sun moves, the better for performance. Try to do not change the time of day frequently; you may want to consider moving sun in short bursts and waiting between these, like some games (Skyrim) do.

What’s next?

We’re already working hard on phase 2 for the mobile platforms iOS, and Vulkan powered Android devices. We’re working even harder on phase 2.5 which will introduce more realistic physically based specular highlights from the materials and image-based lighting.

We also hope to implement even more performance optimizations for lower end desktop systems to make shadows work better everywhere.

At this time we don’t plan to implement shadow map support for OpenGL or Direct3D 9 systems. If you use OpenGL in Studio intentionally, please switch to Automatic or Vulkan/Metal depending on the platform.

We’re super excited, and we are looking forward to seeing how your games will look like with this new awesome feature!

Known bugs

We have a couple of known issues that will be fixed soon; we’ll update this post when fixes go live:

  • Decals on parts with CastShadows=False still cast shadows
  • On mobile, ShadowMap reverts to Legacy instead of Voxel Fixed on 5/15/2019
234 Likes
Future Is Bright: Phase 2 - Studio beta
Future Is Bright: Deuxième Phase
Don't render decals/texture shadows if they are descendants of a basepart with CastShadow = false
Full update log for Random Buildings And Parts
Lançamento da Fase 2 do projeto Future is Bright
#2

This is amazing! More customization for shadow Map!

  • More customization property’s for shadow map
  • Windows 10 store Xbox support coming soon

Wow! never thought it can get any better!

I can’t wait until mobile support comes out!
This is revolutionizing ROBLOX next level

19 Likes
#3

WOW, this is getting crazy, no way this is Roblox. I must say this new lighting system makes Roblox look like a totally different game that doesn’t even look like Roblox! It just keeps getting better!

23 Likes
#4

This is a big step towards highly realistic roblox gameplay. Seeing this really makes me excited for whats to come! I really hope that we get to see some new post-processing options next to this. Kudos to the Roblox Engineers for pushing limits!

13 Likes
#6

This is a huge contribution to the realism and improvement of graphics in Roblox games. Good job!

10 Likes
#7

Can’t wait to see how games will utilize this!

8 Likes
#8

:clap: thank :clap: you :clap: for :clap: this :clap: blessing :clap:
we’re starting to look like unity folks, now all we have to do is wait for phase 3, foilage, and procedural skies, and you probably wouldn’t even be able to tell it was roblox anymore. :sunglasses:

21 Likes
#9

Exciting to see how games are gonna use this

3 Likes
#10

This looks great, can’t wait to see what developers can use this lighting technology with to create picturesque games!

3 Likes
#11

Finally this will give us a chance to get a better looking game. Might I also point out how there should be actual reflectance other than the sky box showing more and more.

8 Likes
#12

We’ve been messing around with ShadowMap lighting all week. Super excited for this!

some eyecandy:

41 Likes
#13

That map in the OP is absolutely fantastic and it didn’t look like a typical Roblox map when I only had a quick glance at it. I really need to start learning how to build, right now.

6 Likes
#14

That actually looks really beautiful with all the lighting. Good job dude

4 Likes
#15

I love the realism it applies to my builds despite it only being phase 2!

77 Likes
#17

The future it’s not bright, is shadowy, but is too realistic :joy:

7 Likes
#18

This is a very big step for Roblox transitioning into a wider known game engine and for it to solidify itself.

While during the studio beta there was minimal lag when shadowmap was enabled. However there is some noise when the shadow passes around 0.1 in smoothness. Not sure if that was just me.

However issues aside I’m very happy that phase 2 is finally released to be fully used in games. Continue the great work Roblox!

4 Likes
#19

This is always something I wanted to see on Roblox, and I’m glad that it’s finally here. In my opinion, lighting realism is one of the coolest and most elevating things Roblox can have. Great job to all the hard working people behind it :+1:.

I can’t wait for the final stage of Future Is Bright

4 Likes
#20

Super excited about the release! Now, games aimed at realism, including one I am working on, can seem even more realistic with the improved lighting and shadows! The team that made this happen did an excellent job! :clap:

2 Likes
#21

Looks really good from what I used when it was in testing or whatever it was just on studio side.

I can’t wait till other light sources can be used in the same way as the sun. Roblox keeps getting better :+1:

2 Likes
#22

Can’t wait till this is used in more games! The future is very bright.

2 Likes