Currently, ViewportFrames just apply their lighting properties to the models parented to them, and do not allow the use of Light Instances (PointLight, SurfaceLight, SpotLight). This is a problem because developers don’t have fine control over lighting environments within ViewportFrames. This leads to an unconvincing and immersion breaking experience in some cases.
If this issue is addressed, I will be able to create immersive lighting environments within ViewportFrames, my use case being the “Bigger on the Inside” effect:
The TARDIS is a spaceship that’s bigger on the inside than the outside, a ViewportFrame makes this effect very convincing. However, global lighting isn’t sufficient to render a compelling image of the inside of the TARDIS. I use all three types of Light Instances to render a complex lighting environment that can’t be recreated with global lighting.
TARDIS Interior as it appears to a Player inside of it:
Sorry for the bump over 2 Years. I seen that this was never answered so I’ll give it a go! You probably forgot this post existed lol
With newer technology you’d think Roblox would allow shadow rendering within’ a viewport frame.
Basically Viewports at this time have no shadows, brightness, or good lighting technology. You can actually recreate what something would look like through a viewport if you set the lighting Technology to Compatibility, Ambient to 255,255,255, and turn the brightness to 0 with GlobalShadows off.
I know there is a way to actually render shadows within’ a viewport frame using SurfaceGui’s However it may get laggy.
Let me explain now
Roblox never released shadows or better lighting technology (like Future, or ShadowMap) to viewport frames due to lag issues. Here are some detailed reasons.
• It may lag older devices.
• You are basically rendering two games at once.
• You are x2’ing the rendering engine. Meaning You’re basically rendering two sessions. (Which can get laggy)
• Even if they did make the Graphical slider change stuff you can’t change Lighting Technology in real time.
• People would use it to make crashing games/Exploits.
While you may be right that will crash the client (and do it kind of wrong. You can just do a while true do loop without the instance.new). I’m talking about purposely crashing the VIDEO DRIVER. Which could be a massive issue for most users.
I already know your gonna say spamming parts will crash the video driver. No it won’t. Physics isn’t rendered by the GPU. It’s rendered by the CPU. The most it will do will either crash the game, or make your CPU run hot.
Roblox does not use the same technology for water that viewports use. Water uses a system called Screen Space Reflections or SSR. It never renders a new session however it renders an image. This is actually a type of Raytracing.
If you would like to learn more you can find more information here (Use the arrows on the top to look at more)
It would be great if, at minimum, lights could be rendered on Future lighting technology without shadows.
Just recently, I was trying to make it look like light was being emitted from a huge laser in the center of a small room, but the directional lighting viewportframes have right now just did not cut it, mainly because the walls would not get lit unless I either tilted them a very slight amount, which is tedious, or changed the sun lighting direction, which caused some of them to not be lit while the others were.
I am working on a mobile VR project (with those, like, google cardboard things or whatever) to make a VR experience on mobile, and it is working fine. One of the biggest issues is eyesight. I had to make the game render in two different viewport frames by making it get children of workspace and inserting it into the viewport. So it looks good on mobile headsets and you can actually, you know, see.
Spolier Alert: It looks like complete garbage with viewport frames and makes it hard to play because it ruins the immersion.