[RELEASED] for UE4: Complete Sky and Weather System

I’ll get some numbers today or later week. We’re also introducing a couple of options to spread the cost of rendering over frames, that should get you down to the 1-2ms range on a 960-class card. But I’ll get you some proper numbers, and see if we can get the built-in profiler set up in such a way that you can use it yourself.

Yes, I believe is fixed in the next upload.

If you’re building from source, our mods to the WinPlatform.Automation.cs file add the following lines at line 39:

[FONT=courier new] /// BEGIN Additional code
[FONT=courier new] StageExecutable(“dll”, SC, CommandUtils.CombinePaths(SC.LocalRoot, “Engine/Binaries/ThirdParty/Simul”, SC.PlatformDir), “.”, true, null, null, true);
[FONT=courier new] SC.StageFiles(StagedFileType.NonUFS, CombinePaths(SC.LocalRoot, “Engine/Binaries/ThirdParty/Simul/shaderbin”), “.fxo", true, null, null, true);
[FONT=courier new] SC.StageFiles(StagedFileType.NonUFS, CombinePaths(SC.LocalRoot, “Engine/Plugins/TrueSkyPlugin/Resources/Media/textures”), "
.png”, true, null, null, true);
[FONT=courier new] /// END Additional code

So packages up the Simul binaries, the fxo (compiled shaders) and the textures. If you can’t modify the Unreal Automation program, or don’t know how, just make sure that those three things are put in the appropriate directories and you’re all set.

Ty ty. Could you by send me a PM once the numbers are out? I’ll be aiming for the 970 - 980+ graphics cards.

Hey ,

Is there by any a way to disable from rendering in other editors such as the material editor or the static mesh editor?

It’s something we should do - the trick is figuring out when the view is a real view, and when it’s an editor view. I’ve put it on our worklist!

EDIT: ok the forum deleted my entire previous post and put the images in one. Don’t know why.

Anyway: profiling numbers:

is on a GTX980, at 1920x1080.

https://simul.co/wp-content/uploads/images/12.jpg

No amortization, Downscale=2: 4.1ms - probably too much usage for most games.

https://simul.co/wp-content/uploads/images/14.jpg

No amortization, Downscale=4: 1.42ms

is the default setup before introducing the amortization code.

Amortization is a new where we keep the previous frame’s image and partially update the new one - it means less GPU work, at the cost of artifacts that become visible when the view or scene changes very quickly.

https://simul.co/wp-content/uploads/images/22.jpg

Amortization 2, Downscale=2: 1.95ms

https://simul.co/wp-content/uploads/images/24.jpg

Amortization 2, Downscale=4: 0.89ms

is probably the sweet spot: a big speedup from amortizing, but little visual difference from the default. At downscale 4 we can do the whole thing in under a millisecond.

For low-end hardware, or slowly changing weather (e.g. realistic speeds!) you can push it further

https://simul.co/wp-content/uploads/images/42.jpg

Amortization 4, Downscale=2: 1.19ms

https://simul.co/wp-content/uploads/images/44.jpg

Amortization 4, Downscale=4: 0.626ms

Beyond it’s diminishing returns, e.g.

https://simul.co/wp-content/uploads/images/48.jpg

Amortization 4, Downscale=8: 0.61ms

In image you can see the “grid” artifact, I was moving the view quickly to show it.

http://docs.simul.co/unrealengine/images/GetProfilingText.png

Finally, the numbers were output using GetProfilingText, piped to a HUD. I recommend using in your own projects, and also doing a sanity check: disable and compare performance with and without to get an accurate overall value.

Hey , I was able to play with the new release today. The root scene rotation for the sequence works wonders! Works exactly like I had the day to night cycle before installing . Also like you said, good to see the shadows working properly.

First thing I would like to address though is a quick modification to the Color/Rotation Macros. With the addition of relative north root scene rotation, the macros broke. First, the “get Sun Rotation” was disconnected as it seems the node requires connection to the main loop. Second, when the sequence actor is rotated, the direct light doesn’t follow the rotation change. What I did for now was set the direct light to 0 across all rotation values then parent it to the Sequence. Then I change the “actor rotation” to “actor relative rotation”. 's my blueprints.

Second is a cubemap. Don’t know if was discussed before (though didn’t happen until the latest update) but when the camera rotates (I’m guess with the way the clouds are rendered it could be directly caused to ) the cubemaps flicker. If the camera is still, the environment displays the correct cubemap. But when I rotate the camera it flickers with some bright out of place cubemap replacing all of the cubemaps.

I brought up the Cubemap display. is what I see. Is suppose to display something else?

Thanks so much.

I’ve added in a transform that should fix .

How are the cubemaps generated? Is it a SceneCaptureCube, or a light probe? I’ll try to reproduce if I can use the same UE actor type.

The cubemaps are generated with a simple Sphere Reflection Capture. We also use a post-process environmental cubemap, but I was able to duplicate the effect on an example scene with Sphere Reflection Captures.

are screenshots of a chromeball when the player is idle (the funny thing is the idle animation doesn’t trigger it to flicker with an alternate cubemap. Also when idle, it uses the cubemap but doesn’t reflect the time of day or change in lighting.) and the cubemap when the player moves the camera.
Its as if is accidentally creating a new cubemap instead of updating/modifying the current ones.

EDIT: I want to clarify that happens in-game (PIE) and not in the editor.

Somewhat related, but something I keep wanting to ask is… the TrueSkySequenceActor has a slot to plug in a CubeMapRenderTarget for the Sky to render into… the tooltip even suggests that could be plugged into a Skylight… except it can’t. There doesn’t seem to be a way to use render targets as textures directly, or a way to convert them to textures at runtime. Am I missing something?

I ran into the same the other day and was trying to figure it out. I have a render target assigned to the cube map RT property in the Sequence Actor settings but I cannot use as a dynamic texture to update the cube map for the SkyLight since it requires a simple Cube Map Texture and not RT. I’m actually evaluating plugin today and have run into a couple of issues. We have yet to upgrade to the latest version and should be doing that shortly. One prevalent is the sky flickers if the editor is set to render in Real-Time which is also unfortunate and I’m guessing there is an with RenderTargets in the background.

Once I get the credentials shortly to log in and get the latest version, I’ll see if is still present but other than those, plugin has a lot of promise for devs and the results look great!

I have the flicker as well. Often times I also have issues with objects shadows overlaying the sky at night offseted on the screen.

I wanted to point out that the 4.10 release doesn’t seem to be compatible with the 4.10 installation. Gave me a “failed to load” error and needs to be recompiled. isn’t urgent on my end since I have ported my project to 4.10 yet, but just wanted to point it out.

Same for me.

Hi, I am having an with time, can’t find any documentation on it.

How do I set up custom time speed in my level blueprint for the Sequencer?
and also, when following the documentation to set a specific startdate/time in blueprints, it goes hayire and the if shifts from day to night instantly and continously until the Editor crashes.

Please can you the staff at Simul or someone who has experienced help?

A 0-1 interval is 24 hours so you want to adjust the time value very slowly in blueprint. 0.24 is sunrise, 0.76 is sunset. So 1.5 is a day and a half into the simulation.

Has anyone been able to get in touch with ? The latest copy of works in 4.10 now without any work on my end. Still have an with the Flickering Cubemap, but now I guess with a couple of changes, the directional light no longer moves in the right direction. As others pointed out to me, the Directional Light moves in the opposite direction, as if clipped on the Z axis. I haven’t made a macros modification on my end but I just wanted to point it out on in hopes of getting an answer.

's a video demonstration of both issues I have stated.

https://vimeo.com/146338412

EDIT:

Not shown in the video is that clouds are showing through walls/objects.

Sorry for my absence guys, been hard at work fixing these. The 4.10 was a version mismatch - we were building off the preview version so it took a few days from the official 4.10 release to switch over. UE insists that a binary plugin be from the exact same build.

The directional light should now be fixed - that bug might have crept in when I added the “movable/rotatable actor” functionality for the actor.

Cubemaps are next - it’s weird that Skylight won’t accept a cube rendertarget. We need to figure a way to get the output into a dynamically updated cube/reflection that doesn’t behave oddly; it may be we’ll end up subclassing the reflection probe and building our own - hope it won’t come to that, but we’ll talk to Epic and try to find a middle way.

Glad to hear ! The directional light is one of the last things that I’ve been having issues with!

The other things are:

  • (Minor) I’ve been having the sky flicker CONSTANTLY for weeks, it made working in the editor a headache. Turns out it’s the presence of a scene capture 2D component in the scene. Thus, one has a workaround, just adding it in for posterity.
  • one is a bit more substantial… I STILL see “shadows” of huge objects (I got giant fish “swimming” through the clouds) on the sky. Previously it only happened during night time, but that’s no longer the case.
  • Last but not least, very often I can see the clouds through other solid objects.

It should work that way yes but for my the only thing that happens when using the float for time is a change in speed I have noticed if I use 0.0000001 then its regular speed, so I’m using around 0.00001- 0.0001 to test it, then I get a good anough speed to see the light movement

By the way, does anyone know how to merge and the nvidia gameworks branches successfully?