Search Unity

Official New Post-processing Stack (Pre-Release)

Discussion in 'Image Effects' started by Chman, Oct 10, 2016.

  1. brettj

    brettj

    Joined:
    Feb 9, 2015
    Posts:
    43
    The missing Dither is really apparent in the banding when using the Vignette.

     
    FPires likes this.
  2. Chman

    Chman

    Unity Technologies

    Joined:
    Feb 6, 2010
    Posts:
    721
    So we looked into this issue and were able to reproduce it. Are you, by any chance, using a very low near-clip value on your camera ? If so, push it to 0.1 and that should fix it. Using values lower than 0.1 for the near clipping plane is highly discouraged as it will destroy mid-to-long range depth buffer precision.
     
    Last edited: Nov 15, 2016
  3. reddotgames

    reddotgames

    Joined:
    Apr 5, 2011
    Posts:
    707
    Bingo - it was it! Thank you for helping us out
     
  4. pvloon

    pvloon

    Joined:
    Oct 5, 2011
    Posts:
    591
    Hi There,

    I was wondering about VR motion vectors. I know they're not supported, but is supporting that on a "maybe someday" timeline or on a "we're working on it" timeline? Thanks :)
     
  5. NumT

    NumT

    Joined:
    Feb 13, 2014
    Posts:
    22
    Any idea why I'm not seeing these in the scene view?

    Edit: it's ok all sorted - had a main camera without the profile
     
  6. djweinbaum

    djweinbaum

    Joined:
    Nov 3, 2013
    Posts:
    533
    @Chman This is absolutely wonderful! Its the perfect workflow with the asset preset. I can't go back to the old way of having tons of components. Fantastic work, folks!

    Question: Do you have any plans to make forward shaders write to the Normals so that Ambient Occlusion isn't broken with veggies? As a temporary workaround, @jimmikaelkael did a thing with his HBAO where he reconstructs the normals from the depth buffer which makes everything work. Currently it appears your "Force Forward Compatibility" doesn't work with cutout forward shaders (which I believe is where people are having the most problems).
     
  7. Steamc0re

    Steamc0re

    Joined:
    Nov 24, 2014
    Posts:
    144
    How would I go about creating and adding a post processing behaviour and a profile in script? so far this is what I have:
    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using UnityEngine.PostProcessing;
    4.  
    5. public class visionDistorter : MonoBehaviour {
    6.  
    7.     public PostProcessingProfile profile;
    8.  
    9.     // Use this for initialization
    10.     void Start () {
    11.  
    12.         profile = new PostProcessingProfile();
    13.         profile.vignette.enabled = true;
    14.         PostProcessingBehaviour post = Camera.main.gameObject.AddComponent<PostProcessingBehaviour>();
    15.         post.profile = profile;
    16.  
    17.     }
    18.    
    19.     // Update is called once per frame
    20.     void Update () {
    21.    
    22.     }
    23. }
    24.  
     
  8. Chman

    Chman

    Unity Technologies

    Joined:
    Feb 6, 2010
    Posts:
    721
    It's definitely on the roadmap. I can't say when it'll be available.
    "Force Forward Compatibility" is only needed when the selected rendering path is "Deferred" and you also use opaque forward objects (else these objects will have the infamous "see through AO" problem).

    As for computing normals from depth, I'm not too fond of the idea. It's less correct (you don't have enough information in screen space to deduce a normal from depth, so it's an approximation) and it'll make the AO effect slower in general.
     
  9. Chman

    Chman

    Unity Technologies

    Joined:
    Feb 6, 2010
    Posts:
    721
    PostProcessingProfile is a ScriptableObject so you need to instantiate it like this instead of using new :
    Code (CSharp):
    1. profile = ScriptableObject.CreateInstance<PostProcessingProfile>();
     
    Steamc0re likes this.
  10. bgolus

    bgolus

    Joined:
    Dec 7, 2012
    Posts:
    12,342
    @Chman The current deferred path currently injects forward opaque objects into the gbuffers by rendering their shadowcaster pass blacking out the albedo and showing up in depth, but not in the normal or specular gbuffers. This seems like something that could be fixed by having the multi_compile_shadowcaster have a specific keyword for gbuffer injection that expands the output to multiple targets, or have a unique "ForwardDeferred" lightmode tag. The only way to handle this right now is using command buffers, or don't use any shaders that aren't deferred.
     
  11. Gray_Master

    Gray_Master

    Joined:
    Jun 20, 2010
    Posts:
    152
    Hm. Very Good job. But (on my look) this package need as minimum next two effects: Gobal fog (with Height parameter) and Wiggle effect analog (named wave). Last exist there https://www.assetstore.unity3d.com/en/#!/content/39882. Both effects may be used for underwater effect create.
    PS. This is on my first look )
     
  12. gokselgoktas

    gokselgoktas

    Unity Technologies

    Joined:
    Jun 6, 2013
    Posts:
    12
    A really nice fog effect is currently being worked on.
    So, it's on our roadmap and currently, actively in the making.
     
    KRGraphics, elbows and Pawige like this.
  13. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Nice, why not tease us with a little screenshot to tide us over while we wait? :)
     
    KRGraphics, Adam-Bailey and AcidArrow like this.
  14. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,788
    is it derived from the fog in cinematic effect? because that one is pretty good
     
  15. Archviz3d

    Archviz3d

    Joined:
    Apr 4, 2016
    Posts:
    92
    Fantastic!!!! Will this be supported in webgl?
     
    Last edited: Nov 24, 2016
  16. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    Just wanted to say great job to all the Unity team that have been working on this... I've just replaced about 6 different separate image effects with this new uber-stack - it's so much more elegant and better performing, and looks fantastic! Thankyou.

    My only piece of feedback so far is that the old depth of field effect had a "Focus on Transform" variable which you could assign to continually adjust the required focal distance from camera to a named object. Is there a plan to reintroduce this, or are we expected to manually recalculate and adjust the focal distance each frame to a target object?
     
    Martin_H likes this.
  17. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    I tend to struggle with DOF as well, as I don't come from a photographic background.
     
  18. brettj

    brettj

    Joined:
    Feb 9, 2015
    Posts:
    43
    This might be what you're looking for: https://github.com/keijiro/PostProcessingUtilities
     
    hopeful likes this.
  19. Gray_Master

    Gray_Master

    Joined:
    Jun 20, 2010
    Posts:
    152
    I don't known, but in this time large part this stack work on openGL/ES. Then answer - may be )
     
  20. tanoshimi

    tanoshimi

    Joined:
    May 21, 2013
    Posts:
    297
    Thanks for the link - yes the FocusPuller script there is exactly the same functionality as we have already implemented (although it's always reassuring to know when your code matches Keijiro-sama's :) - just wondered if it was going to become built-in or not.

    The "neatness" of the single component uber-stack gets reduced somewhat if you then have to add on other custom scripts to reintroduxe functionality from the old individual effects!
     
    Martin_H and StaffanEk like this.
  21. Chman

    Chman

    Unity Technologies

    Joined:
    Feb 6, 2010
    Posts:
    721
    Last time I checked, some effects from the stack worked correctly, others not so much. It was a while ago though (5.3/5.4). We haven't done much testing on WebGL yet, so let us know how it's working for you if you end up using it :)
    We're working on a more flexible solution, but in the meantime you can use the Focus Puller script posted earlier.

    The reason why there isn't any object field in the DoF setting panel right now is because the whole thing is an asset, and you can't reference scene objects in an asset as they don't live in the scene.
     
    tanoshimi likes this.
  22. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,394
    Hi. I just upgraded my project to 5.5 RC1 and added beta 4 of the stack. Sometime if I enable color grading the result from the camera turns completely black. Any ideas why this could happen.

    Lennart
     
  23. StaffanEk

    StaffanEk

    Joined:
    Jul 13, 2012
    Posts:
    380
    Have you filed a bug report?
     
  24. LennartJohansen

    LennartJohansen

    Joined:
    Dec 1, 2014
    Posts:
    2,394
    I will if I find a way to reproduce it in a small project.
     
  25. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    976
    Amazing stuff. Really easy to use - the asset driven workflow is brilliant. Very noticeable improvements in performance when compared to the cinematic effects package.

    Good Job!
     
  26. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Glad everyone's on the performance bandwagon these days. Performance is everything.
     
    SunnySunshine likes this.
  27. Morfeuskiev

    Morfeuskiev

    Joined:
    Oct 10, 2013
    Posts:
    122
    New post-effects is much better and faster than the cinematic effects.
    Unity_2016-11-25_08-29-12.jpg
     
  28. monark

    monark

    Joined:
    May 2, 2008
    Posts:
    1,598
    When I turn on Ambient occlusion all I can see is the effect the original colours from the render are not being multiplied in, so I just see a white screen and a little bit of grey shadowing.
    Is there some additional trick to setting that one up to work?
    I'm using U5.4.3f1 with a forward rerendering camera, WebGL platform.
    Debug mode is set to "none"
    Some other effects do work fine.
     
  29. Chman

    Chman

    Unity Technologies

    Joined:
    Feb 6, 2010
    Posts:
    721
    You probably have MSAA enabled. See the known issue list. This is fixed in Unity 5.6.
     
  30. monark

    monark

    Joined:
    May 2, 2008
    Posts:
    1,598
    Is that fix likely to be back ported any time soon?
     
  31. monark

    monark

    Joined:
    May 2, 2008
    Posts:
    1,598
    Even with MSAA turned off it does the same.
     
  32. Safemilk

    Safemilk

    Joined:
    Dec 14, 2013
    Posts:
    42
    This might be silly, and someone might have asked for this as well already, but it would be really excellent if you could "plug in" other post processes into the slots. For instance, if you wanted to, you could swap out the bloom for Sonic Ether's bloom. The PP chain is excellent and seems to run great, so it would be cool to offer that feature for people who wanted a specific look but still wanted to go through this method. Currently you can just disable one and add your own to the camera, but I think it would be a really cool way to make it more robust. Just spit balling.
     
  33. blizzzz

    blizzzz

    Joined:
    Jun 22, 2016
    Posts:
    15
    Looks like SSAO on lowest setting with sampling enabled takes about 1.3 MS. Thoughts on any optimizations coming? Or am I missing something? A few of the rendering engineers from my previous team @ ATVI have been working on realtime AO solutions. GTAO (ground truth ambient occlusion) is around .5 MS and this is probably accurate as our old solution and HemiAO were closer to .8 MS. I'm now working in VR and we can't spend 1.3 MS on AO. Here's the link. http://c0de517e.blogspot.com/2016/08/activision-siggraph-2016.html
     
  34. Chman

    Chman

    Unity Technologies

    Joined:
    Feb 6, 2010
    Posts:
    721
    No, it's too big of a refactor behind the scene to be ported to 5.5 unfortunately.
    That's unexpected. Would you happen to have a small repro-case for us to look at ?
    It's not as easy at it sounds. Doing so would mean going back to all effects being done in separate passes (slower) and would not allow us to do some specific optimizations. We have plans to make it more extensible but don't expect to be able to just switch the bloom effect for another one easily.
    Keep in mind that SSAO is highly view dependent (and settings like radius will have a definite impact as well). You can't compare & benchmark implementations unless you do it with the exact same view setup and platform. Furthermore, regarding the GTAO "cost" in your link we have no idea what it's about exactly (nor do we know what it's running on). If it's the AO pass only, or if it includes blurring & compositing. I could say the same about our AO, I can time it at 0.35ms here but that wouldn't mean much in itself. We plan to improve it at some point though.

    FWIW, to answer your question, we've been investigating GTAO lately :)
     
  35. monark

    monark

    Joined:
    May 2, 2008
    Posts:
    1,598
    Well this is generally the problem I've been having with image effects in WebGL 5.3, that's what lead me to this thread.
    Whenever I setup a test file it all works fine. Just tested this AO in a small file and, sure it works. Then I transfer it into my real project and it either doesn't work in the Editor, as in this case, or it works in the Editor but fails once I've compiled it.
    I've sent off test projects and full projects to support and they suggested I try this new post process setup. Unfortunately that has not worked either.
     
    StaffanEk likes this.
  36. blizzzz

    blizzzz

    Joined:
    Jun 22, 2016
    Posts:
    15
    @Chman I profiled the exact same position and content using Unity's profiling tools. Not sure how accurate they are in this case and if the recommended approach would be to use external profiling utilities. We budgeted about .8ms for ssao on COD and that would be for a 1920 x 1080 framebuffer running on xbox1. I'm guessing the ssao was downsampled heavily. We did have simple things to help with optimization... Near and Far clip would be a great start. This also helped with artifacting / issues on objects close to the camera or in the far distance. My unity scene is not that complex and here are the numbers taken using exact same content in view frustrum including same camera position. Rendering to HMD, downsampling enabled, 1.91MS = low / 3.362MS = high

    ssao_high.JPG ssao_low.JPG
     
    StaffanEk likes this.
  37. Chman

    Chman

    Unity Technologies

    Joined:
    Feb 6, 2010
    Posts:
    721
    I never saw or got any bug report about that. Would you happen to have the Fogbugz ids at hand so I can check them out myself ? All I can say right now is that we only did minimal testing on WebGL, as written in the "known issues" list it's not yet officially supported so things may break. WebGL can be a difficult to work with sometimes because of how limited it can be (I have hopes that WebGL 2 will be better in this regard).
    What did you profile exactly ? Our AO implementation against which one ? What settings ? As I was saying, AO performances are view dependent, it doesn't have to do with scene complexity but the actual AO cover & reach in clip space.

    Quick copy/paste from a reply I put in another thread about that :

    With low radiuses, SSAO will only have to sample pixels that are very close (in clip space) to the original one, which is good for performances as they can be cached efficiently. With high radiuses, the generated samples will be further away from the original pixel and won't benefit from caching (think of it as a random memory access pattern, which doesn't perform very well on GPUs), thus slowing down the effect.

    Objects near the front plane will use larger radiuses than those far away (because perspective). So computing the AO pass for an object very close to the camera will be slower than for an object miles away that only occupies a few pixels on screen. It's all about cache efficiency.

    That's what I meant by profiling several AO implementation having to be done with an identical setup (scene, view point, AO settings, hardware).

    Our current SSAO implementation isn't the fastest available, for sure. It's quite precise and has a pretty good quality though. We went for quality over speed on this one. Still, it's "not final" and we do indeed want to make it faster, especially on consoles. And a near/far plane setting is on the roadmap. We're a (very) small team at Unity :)

    Also, regarding the meaning of "Low" and "High" quality... I'm not too happy with this naming scheme as they don't mean much without context. On PS4 I tend to put it on Low with Downsampling enabled because it looks good enough (and in a busy scene with high frequency textures/geometries it's hard to tell the difference between Low/Downsampling and High/Downsampling honestly). We should probably rename these to show the sample count instead.

    Oh and VR is quite taxing as well, especially when it comes to post-processing (unfortunately for us). I'm curious, what's your hardware target / HMD ?
     
  38. blizzzz

    blizzzz

    Joined:
    Jun 22, 2016
    Posts:
    15
    @Chman

    Thanks for the additional details. I'll try using smaller radius.

    Sorry...I wasn't very clear on this. I just used the Unity profiling tools to compare AO enabled vs AO disabled along with low and high settings to see MS timings. It's not apples to apples against other AO solutions. I just know from experience that our AO on COD was in the 0.5 - 0.8 MS range. We were running at 60 fps at 1920 x 1080 but did have an adaptive target resolution based on fps on XBone. Our scenes were much more complex and draw distances were many times greater vs my current Unity scene.

    I tried unchecking the downsample option but that just made things much worse in render time. Agreed that sample count would be more intuitive.

    Few more details on AO types that we have experimented with:
    https://research.activision.com/t5/...for-Accurate-Indirect-Occlusion/ba-p/10002180

    In this current case my HMD = Oculus Rift. Our current hardware target is high end PC. I'm currently running a Nvidia GeForce GTX 980.

    Thx again for the info
     
    StaffanEk likes this.
  39. ksam2

    ksam2

    Joined:
    Apr 28, 2012
    Posts:
    1,079
    Temporal anti-aliasing doesn't work correctly. I can't make it to work
     
  40. gokselgoktas

    gokselgoktas

    Unity Technologies

    Joined:
    Jun 6, 2013
    Posts:
    12
    Hi, would it be possible for you to explain what's the problem in detail? What have you tried so far? What steps you took, and how did they not work?

    Thanks :)
     
    ksam2 likes this.
  41. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,467
    +1... I and I was looking at the Uncharted 4 Fog... it looks purty...
     
  42. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,327
    Love it.

    PostProcessingBehaviourEditor could handle multi-selection.

    Code (CSharp):
    1. using System;
    2. using System.Linq.Expressions;
    3. using UnityEngine.PostProcessing;
    4.  
    5. namespace UnityEditor.PostProcessing
    6. {
    7.     [CustomEditor(typeof(PostProcessingBehaviour))]
    8.     [CanEditMultipleObjects]
    9.     public class PostProcessingBehaviourEditor : Editor
    10.     {
    11.         SerializedProperty m_Profile;
    12.  
    13.         public void OnEnable()
    14.         {
    15.             m_Profile = FindSetting((PostProcessingBehaviour x) => x.profile);
    16.         }
    17.  
    18.         public override void OnInspectorGUI()
    19.         {
    20.             serializedObject.Update();
    21.  
    22.             EditorGUILayout.PropertyField(m_Profile);
    23.  
    24.             serializedObject.ApplyModifiedProperties();
    25.         }
    26.  
    27.         SerializedProperty FindSetting<T, TValue>(Expression<Func<T, TValue>> expr)
    28.         {
    29.             return serializedObject.FindProperty(ReflectionUtils.GetFieldPath(expr));
    30.         }
    31.     }
    32. }
    33.  
     
  43. Gametyme

    Gametyme

    Joined:
    May 7, 2014
    Posts:
    618
    Has this been tested on Mobile? I noticed the bloom doesn't pop on iOS. Haven't tested on android. Also there is some errors when in iOS in the editor.
     
    Last edited: Dec 2, 2016
  44. Gametyme

    Gametyme

    Joined:
    May 7, 2014
    Posts:
    618
    Heres the error.

    Tiled GPU perf. warning: RenderTexture color surface (1580x888) was not cleared/discarded, doing <run with profiler for info>
     
  45. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,741
    That's not an error, that's a warning. I also believe it's not intended for mobile use in general.
     
  46. Gametyme

    Gametyme

    Joined:
    May 7, 2014
    Posts:
    618
    Prism works great on mobile. Cant see why this wouldn't.
     
    GoGoGadget likes this.
  47. Johannski

    Johannski

    Joined:
    Jan 25, 2014
    Posts:
    826
    I did a first test on android and iOS

    For android, I'm testing on a OnePlus One, it had quite some perofrmance problems with Depth of Field. If you only want to use Color Grading and vignette that works rather well.

    As for iOS I was quite impressed. For testing I used a iPhone SE, iPhone 6S and iPad Pro. They are had a very stable framerate with Colorgrading, vignette and Depth of Field turned on. I guess aniti aliasing isn't the best idea to use, but I didn't hit the roof on iOS yet ;)
     
  48. bac9-flcl

    bac9-flcl

    Joined:
    Dec 5, 2012
    Posts:
    829
    Can someone share a few links on proper use of the color grading block? I worked a bit with color correction in the past, but using much more intuitive and primitive tools like level adjustment per channel etc. I know what I want to achieve and I understand the data on your (exceptionally well implemented) histogram/waveform monitors, but I'm hopelessly lost with the color grading controls, many of which are completely unfamiliar to me.

    To start with something basic, here are two simple screenshots - one with color grading off, another with default settings in the Neutral tonemapper mode:




    Few questions come to mind, one after another:
    • Why is all white clipped off?
    • What are Black In, White In, Black Out, White Out settings controlling, exactly? "In/out" suggests they are handles of some sort of a curve between two points, but I'm drawing a blank trying to visualize how that relates to black and white.
    • For instance, the Black In setting does something to the direction of the tonemapping curve, influencing it's entry between horizontal and vertical directions (when I mention a tonemapping curve, I refer to the the block with the caption Neutral Tonemapper visualizing something on gray background, on top of the Tonemapping section of Color Grading rollout). I'm not sure what -0.1 to 0.1 range of that field represents and not sure which value represents a direction pointed straight at the top right corner, though. Maybe there is no definite value at all - zero doesn't seem to map to linear-looking curve, and the degree of influence on the curve seems to vary depending on other field values. In general, I'm having a hard time understanding the principle behind the black/white tonemapping application - how exactly is distortion away from a linear curve (bottom-left-to-top-right straight line) being applied to a pixel?
    • Continuing on to White In setting, you see a wildly different range (from 1 to 20), which makes things even less clear. Influence on that setting seems to vary heavily depending on Black In, producing completely different results at different Black In extremes.
    • Black Out and White Out settings feature, yet again, different ranges - from -0.09 to 0.1 and from 1 to 19. Again, not sure what those numbers refer to.
    • Looking at behavior of the curve while you tweak those four settings, you see that the first (*In) pair seems to affect only the bottom left end of a curve. The second pair (*Out) seems to affect both ends, though - for example, low Black Out values seem to make the bottom left corner of the curve more horizontal (like flat-eased keyframes in animation curves), but also seems to affect the width of tonemapping curve, making it shorter and shorter (?). That is, until you reach Black Out value of approximately -0.0633, from which point on the width of the curve starts growing again (??). White Out, in contrast, doesn't seem to affect the shape of the curve at all until you reach top 5% of values, where it starts to contract it a tiny bit (???).
    • The name of White Clip setting is somewhat self-explanatory, though I still feel like I don't understand the purpose of clipping part of the color space - is that a thing made for targeting low-end displays using less than 255 level as a white point, or it has some other purpose? Sidestepping the purpose, it's range of values is, again, pretty confusing (it goes from 1 to 10). It's unclear how it works - on the tonemapping curve, the line seems to align to the top left corner once you move White Clip value down from default 10 to around 8.38, but on the luminance histogram you never see the values approaching white until you push the White Clip much further down, to around 5.75, - which also creates a strange peak of bright values below white, as if luminance is hesistant to approach white and prefers to pile extremely high in the 230-250 range before actually entering the 255 point. It's definitely not the kind of white clipping you can do with traditional so-called Levels adjustment (input min/max, output min/max), no idea how it works here.
    The rest of the stuff like temperature, tint, hue/saturation/contrast and channel settings seem to be easy to understand, but I haven't tried them much - I'd prefer to fully understand how the Tonemapping block works first.

    So far my experience with tonemapping felt like tweaking nondescript factors on a shader with an exotic custom lighting model, trying to achieve PBR-like look without even knowing what half a dozen of factors you're adjusting are doing. I'm sure that you folks did not invent any new terminology or exotic interpretations of color correction terms, with stuff like White In probably being an industry standard term with well agreed interpretation. But I don't know it and I can't seem to find a good reference telling me how that kind of a value set is supposed to be used. It's quite hard to get good results and to be sure you've achieved a result through the right means, even with blind tweaking, due to opaque interdependence between all values.

    Can someone help me out? Maybe there is some reference page explaining all the terms I missed somewhere. Maybe there is a good step by step guide showing how to achieve certain things or explaining why certain values were tweaked. Maybe someone can clear up what all the wildly different value ranges are representing. Anything would help.

    P.S.: Sorry for being dense. :)
     
    Last edited: Dec 4, 2016
    Stardog, StaffanEk and tanoshimi like this.
  49. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    NullReferenceException: Object reference not set to an instance of an object
    UnityEngine.PostProcessing.PostProcessingBehaviour.OnPreCull () (at Assets/PostProcessing/Runtime/PostProcessingBehaviour.cs:104)

    Pops up on first run in 5.5f3, but goes away when I run again. Not present in earlier builds. I guess related to serialisation?
     
  50. Voronoi

    Voronoi

    Joined:
    Jul 2, 2012
    Posts:
    587
    I hope that the new fog effect uses something similar to this fade to skybox effect - https://github.com/keijiro/KinoFog

    It worked 99% for what I want fog to do as an artist. That is, when I changed the lighting/skybox color for time of day effects, the fog always matched up perfectly. The built in fog is unusable for this and Global fog wasn't much better. Unfortunately, for my VR project using the new processing stack it appeared to break KinoFog :(
     
    Lex4art and StaffanEk like this.