of     3   
chevron_rightchevron_rightchevron_right

ShiraWolven
#120901174Monday, December 23, 2013 12:43 AM GMT

Who hates the roblox sky? No, seriously. Have you taken a good look at what Roblox calls a sky? It's ugly. With that, let me introduce my Customizable Skybox idea. I read somewhere that the current roblox skybox uses only about 6-10% of available processing power, whereas other games dedicate a lot more to it, about 50%. This means that the sky is a blank slate, except we can't use it. We can't create anything to do with sky. And my suggestion is to make the sky useable. It works like this: The sky portions of lighting get removed entirely and placed into a separate service, "Sky". Time, geographical position, and default ambient (interior ambient) are still controlled in lighting. The sky service can change atmospheric lighting ambient for day and night outdoors, and the two colours get interpolated between during dawn and dusk, based off of another pair of colour/brightness values. In this sky service, we have by default three objects. A sun object, a moon object, and a stars object. These can be deleted, as they are children of the sky, and if we don't want them, we should be able to remove them. The sun object would automatically track a path through the sky, based on game time. We can customize it's size and colour(s), and it will interpolate from three sets of said colours. (Dawn, Day, and Dusk.) We can also make the sun invisible, while still having it cast light and shadow. The moon is similar, but has a Phase setting, with a number from 0 to 27 (new moon to almost completely dark waning crescent), with each one being one of the phases, calculated for whatever day it is. It would cast a lot less light than the sun, and the light would be controlled by the phase. Obviously new moon casts less light than full moon does. The stars are procedurally generated from a random seed once per server start, and are the same for each player (as there is only one seed for the stars.) They cast very little light and have a twinkle effect around the core. Their colour is also adjustable, and it affects night colour, tinting it closer to the star adjustment colour. The default arrangement and adjustment of these items will match the old skybox, somewhat like this. Game -Workspace --Whatever is built in your game -Players -Lighting === >>This is the old sky object, it would be replaced... --Sky === >>...by this. A customizable sky. -Sky --Sun --Moon --Stars === -StarterGui -StarterGear -SoundService -Debris New objects for the sky service are also going to be added, and will be implemented as GLSL shaders for cross-platform compatibility. They would be the following objects for starters, perhaps with more added later. Skybox - This is a legacy object to allow old games with a skybox to easily transfer to the new sky system. Fog - This would work similar to the old render fog, except it would occlude the sky as well. This is a global shader, and therefore not affected by wind. Like so: Fog -Fog visual range start(Studs, intvalue) -Fog visual range end(Studs, intvalue) -Fog Colour(Color3 value) Mist - Similar to above, except mist acts within a rectangular region. It joins with adjacent regions, and is built/selected on a 4x4 grid. While the camera is outside it, it occludes from the edge point in, and while the camera is inside it acts like fog until the edge of the area is reached, after which it partially occludes based on a percentage of the distance to the edge of the area. Can be affected by wind, unlike fog. Renders as uniform particles with very little trail. Like so: Mist -Mist Region Position(Vector3 value) -Mist Region Size(Vector3 value) -Mist Colour(Color3 value) -Mist visual range start(Studs, intvalue) -Mist visual range end(Studs, intvalue) Dust - Similar to mist, can be affected by wind, behaves the same way as mist does, but renders like dust with differently sized particles that move fast and leave a bit of a trail. Like so: Dust -Dust Region Position(Vector3 value) -Dust Region Size(Vector3 value) -Dust Particle Size(Tenth stud, intvalue) -Dust particle size variation(Tenth stud, intvalue) -Dust Colour(Color3 value) -Dust visual range start(Studs, intvalue) -Dust visual range end(Studs, intvalue) Cloud - Similar to mist, is similarly affected by wind, and renders as a "far-away" mode of mist. Mist that is far away renders the same as clouds. Is region-based, and can have it's cloud type toggled with two dropdowns. One for height range, one for actual base type. Based on these two sliders, the cloud shaders generate random clouds within 50 studs either way of the selected height. It can also be recoloured and resized. Cloud size is an average size for the cloud in the horizontal plane, and has a random factor to it. One last option is coverage, or how much of the sky is actually covered by the cloud shader. Like so: Cloud -Cloud Height Range(Dropdown, alto, cirro, nimbo) -Cloud Type Range(Dropdown, stratus, cirrus, cumulus) -Cloud Height(Studs, intvalue) -Cloud Height Variation(Studs, intvalue) -Cloud Colour(Color3 value) -Cloud Coverage(okta(0-8), intvalue) -Cloud Size(studs, intvalue) Wind - Can be set in layers and affects particles and unanchored parts based on exposed area's size and exposure angle. Anchored parts are not calculated, and nocollide parts are not calculated (unless they are part of a humanoid). Can have altitude, height range, and wind strength set. Is a global effect. Like so: Wind -Wind height bottom(Studs, intvalue) -Wind height top(Studs, intvalue) -Wind speed(Studs per second(same as walkspeed), intvalue) -Wind direction(Degrees, intvalue) Rain - Obviously. Makes a global particle fall from the sky, is affected by wind. Is a global effect, but drops from clouds. It makes clouds grey while it falls from them, and is affected by wind. Can be set to fall all over with no cloud, and is stopped by terrain and blocks. Like so: Rain -Rain amount(Percentage, intvalue) -Rain colour(Vector3 value)(I want bright neon green radioactive rain!) -Rain droplet size(Tenth stud, intvalue) -Rain falls from clouds(True/false, boolvalue) -Rain is falling(True/false, boolvalue) Snow - Think of rain, except it uses a slower and bigger particle. Like so: Snow -Snow amount(Percentage, intvalue) -Snow colour(Vector3 value)(I want bright neon green radioactive snow!) -Snow flakelet size(Tenth stud, intvalue) -Snow falls from clouds(True/false, boolvalue) -Snow is falling(True/false, boolvalue) This is all I have for now, but I'm sure the admins will add many more effects that I haven't thought of. And by implementing them as shader objects, they can be implemented relatively efficiently and easily. Please favourite and support, expand and improve, and if you don't like it, tell me how it can be made better! An example of these object in a game with a storm could be like this. Game -Workspace --Blah blah blah, level. -Players --Whoever is being amazed at the stack of weather effects. -Lighting -Sky --Cloud --Wind --Rain --Mist --Fog --Sun --Moon --Stars -StarterGui -StarterGear -SoundService -Debris ================ TL;DR Please don't TL;DR. It's a good sky suggestion, just skim it, see if you like it, and write support if you like it.
Espithel
#120901532Monday, December 23, 2013 12:46 AM GMT

*Looks at title* Oh, right, you do know you already can do that... .-.... *Notices how long the OP is* ... Next time, be more careful with your title. ...Well, I fully support. I don't see any problems. Will we be able to have multiple suns/moons?
ShiraWolven
#120902213Monday, December 23, 2013 12:53 AM GMT

Yep. Considering this is (partially) in response to me planning to create a TES roleplay when universes come out, and Nirn has two moons.
Dan_Aesthetic
#121126623Wednesday, December 25, 2013 5:05 AM GMT

tl;dr Indian of S&I
iwin3333
#121126991Wednesday, December 25, 2013 5:10 AM GMT

That's, uh... Incredibly detailed... Support!
[rfa#hidefromsearch]
#149333241Friday, November 07, 2014 6:53 PM GMT

[rfa#hidefromsearch]
ThatChristianGuy
#149334065Friday, November 07, 2014 7:18 PM GMT

Read the whole thing. No support whatsoever. --ThatChristianGuy
[rfa#hidefromsearch]
#149335030Friday, November 07, 2014 7:45 PM GMT

[rfa#hidefromsearch]
police157
#149335593Friday, November 07, 2014 7:59 PM GMT

I'm just saying this, but many people with say it's scriptable. I personally love this though, and I think that we shouldn't have to script everything. If Roblox can do us a favor and save some time, why not? Support :3
[rfa#hidefromsearch]
#149336130Friday, November 07, 2014 8:12 PM GMT

[rfa#hidefromsearch]
XenonLi
#149336620Friday, November 07, 2014 8:23 PM GMT

...waste of computation space as you said, 50%
Klink45
#149337111Friday, November 07, 2014 8:34 PM GMT

100% support, I've wanted to edit the sun and moon forever. u sicko!
DerProgrammierer
#149337122Friday, November 07, 2014 8:34 PM GMT

This leads me to say that you don't know what a skybox is. Pretty much everything you said is scriptable.
BogyMac
#157147460Wednesday, March 04, 2015 1:28 AM GMT

Awesome ideas. Support 100%!
OhLookItsHim
#157147996Wednesday, March 04, 2015 1:35 AM GMT

Long, I never read it all but yeah. Support
ShiraWolven
#157179677Wednesday, March 04, 2015 7:22 PM GMT

"This leads me to say that you don't know what a skybox is. Pretty much everything you said is scriptable." With difficulty and lag. Raycasting is also scriptable, with difficulty and lag. As for the things that AREN'T scriptable, that's all on the rendering side. Volumetric fog, making fog affect the skybox as well as parts, fog, new particles (that don't lag like crap), et cetera. Plus the organization of it all.
Valoric
#157179852Wednesday, March 04, 2015 7:27 PM GMT

support.
DerProgrammierer
#157180595Wednesday, March 04, 2015 7:47 PM GMT

Everything has been done before, with minimal lag, just because you don't know how to implement in an efficient way, doesn't mean others can't. Raycasting isn't something that's efficient in any case. You have to continually increment along a line by 1 to see if you hit a point in space.
ShiraWolven
#157180813Wednesday, March 04, 2015 7:52 PM GMT

You try implementing a volumetric fog system that doesn't rely on hackish methods. When raycasting was implemented C-side, its speed increased over the best lua implementation of it, by three orders of magnitude. The point isn't that none of this is scriptable, the point is that it's not efficiently scriptable (not to mention that glsl shaders can't be modified from ingame.)
DerProgrammierer
#157181230Wednesday, March 04, 2015 8:02 PM GMT

"When raycasting was implemented C-side, its speed increased over the best lua implementation of it, by three orders of magnitude." It wasn't because it was introduced on C++-side, languages don't have speed, don't imply it. Next, the performance was faster, because On the C++ side of the game. Lua doesn't have direct access to the graphics engine, making ray casting more difficult before it was implemented into Lua as the current raycasting functions. "You try implementing a volumetric fog system that doesn't rely on hackish methods." 95% of programming is relying on hackish methods. lol
[rfa#hidefromsearch]
#157181336Wednesday, March 04, 2015 8:05 PM GMT

[rfa#hidefromsearch]
ShiraWolven
#157181466Wednesday, March 04, 2015 8:08 PM GMT

Luaside and C-side are pretty clear in what I mean. Because of how it was implemented it was seriously a thousand times faster and more efficient But seriously, you try creating not-part-based volumetric fog through lua. That's entering into GLSL territory, which lua has no influence over. Which is the point of this suggestion, give us access to more sky effects relying on shaders to work properly and efficiently.
ShiraWolven
#157210325Thursday, March 05, 2015 3:23 AM GMT

We're at 11 supports, and this totally isn't a disguised bump.
Cakeruiner
#157238529Thursday, March 05, 2015 7:09 PM GMT

Support, we don't need blocky rubbish decal skybox's.
ShiraWolven
#157255905Thursday, March 05, 2015 11:23 PM GMT

12 supports now.

    of     3   
chevron_rightchevron_rightchevron_right