Search Unity

Sunshine! - Official Thread

Discussion in 'Assets and Asset Store' started by PolyVector, Aug 1, 2013.

  1. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Looks good. I use Deferred/HDR/DX11 and am unhappy with Unity's shadows. Would this asset be a good solution for solving shadows at far off distances? We have an open world game.
     
  2. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,685
    For me the new version has the same installation problems as before. The SpeedTree shader won't compile, and it interferes with other compilations. So if I disinclude it from the import (uncheck the box for it), I don't have to reimport a ton of shaders, but the same three shaders other than SpeedTree (TreeCreatorLeavesFast, TreeCreatorLeavesFastOptimized, SunshineVertFragExample) will not compile.

    Shader error in 'Sunshine/Examples/VertFrag Example': 'vert': function return value missing semantics at line 26 (on d3d9)
    Shader error in 'Hidden/Nature/Tree Creator Leaves Fast Optimized': 'VertexLeaf': function return value missing semantics at line 63 (on d3d9)
    Shader error in 'Sunshine/Nature/Tree Creator Leaves Fast': 'VertexLeaf': function return value missing semantics at line 63 (on d3d9)

    (FWIW, if I switch to DX 11 and try to reimport the 3 shaders, the errors are still there.)
     
  3. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    Unity's shadows have greatly improved since Sunshine was first introduced, they're finally using PCF now, and 5x5 at that. I would say that the quality of shadows is for the most part the same, with the exception that Sunshine has a bit more control, and nifty Overcast shadows. Sunshine's main feature, and the reason it exists, is the volumetric lighting. If that's not something you're interested in, I don't think you'll get much out of Sunshine.

    Thanks for catching this, I always seem to miss these DX11 semantic issues since I'm on a Mac, I'll fix these shaders for the next release.

    Basically all that needs to be done to correct it is to specify a semantic for "SUNSHINE_INPUT_PARAMS" like this:
    Code (csharp):
    1.   //Specify a Semantic for DX11:
    2. SUNSHINE_INPUT_PARAMS : TEXCOORD0; //Make sure this is a free semantic
     
  4. Skunkie

    Skunkie

    Joined:
    Jul 2, 2012
    Posts:
    75
    Sunshine 1.7.8 Available in the Unity Asset Store
    • Fixed "missing semantic" errors in some DX11 shaders
     
  5. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,685
    Works great now. :)

    (Except for the SpeedTree shader, which still refuses to compile and must not be imported.)
     
  6. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    This has been a problem since we first added the SpeedTree shader, the shader compiler has a lot of trouble with it, despite the code being valid (it often compiles for me on the 2nd attempt). I haven't found an all purpose solution, but you can edit the "multi_compile" line to only include the sunshine filter you plan on using, like 4x4... This seems to help.
     
    hopeful likes this.
  7. FirstBaron

    FirstBaron

    Joined:
    May 2, 2015
    Posts:
    4
    Cool asset!
     
  8. TimGS

    TimGS

    Joined:
    Apr 24, 2014
    Posts:
    70
    You should mention in docs that you must Force OpenGL ES 2.0 on mobile platform to make sunshine work.
    I have 5.0.1p2 and setting this player setting to Automatic make sunshine stop to work in mobile builds.
     
  9. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    Thanks for pointing this out, I'll look into it.
     
  10. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    Does anyone have any performance data from iPad...ideally iPad 2? This looks promising but I have very little milliseconds to spare on iPad 2...
     
  11. fisherman_b

    fisherman_b

    Joined:
    Dec 18, 2014
    Posts:
    36
    Hi there,

    I am investigating/evaluating solutions to have real-time shadows on iOS that are smoother than the default ones.

    Target hardware is iPad Air or better. The application I am working on allows the user to create (many) objects at runtime, so baking is unfortunately not an option - shadows need to be dynamic. But the real-time shadows are so ugly... I am no shader guru and no programmer freak, so I need the help of existing assets.

    I found Sunshine and Shadow Softener. Sunshine seems to fit better for mobile platforms.

    In addition to the iOS platform, some of my requirements are

    runs in 64-bit IL2CPP iOS build
    must be integrated with the AmplifyTexture 2 shaders
    Terrain must receive softened shadows as well
    LOD system is used

    Can somebody please give a statement if Sunshine can handle this?
    Did I understand correctly that I would have to force my application to run in OpenGLES 2.0 mode to be able to use Sunshine?

    Thanks in advance.
     
    Last edited: May 12, 2015
  12. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    Integrating either of our assets with 3rd party shaders/packs will certainly require shader programming knowledge, so they may not be a good fit here. I would recommend sticking with the built-in shadows in this case to avoid the inevitable frustration, they are actually impressively optimized in Unity 5.
     
  13. fisherman_b

    fisherman_b

    Joined:
    Dec 18, 2014
    Posts:
    36
    Hi, thanks for your reply.
    Unfortunately the built-in shadows on iOS are a no-go for the application. Rather would we stop development than accepting this level of visual "quality".
    I am sure that either the great Amplify guys or a freelancer will help with the integration, so I am not too concerned about that part. I am just trying to find out about asset capabilities, so for me there is a huge difference between "does not work on mobile with this asset" or "needs manual tweeking and knowledge of XYZ". We are just trying to save some time and efforts, otherwise hiring a shader guru would have been the first choice ;) And of course I cannot buy each asset to find out.

    Is OpenGLES 2.0 a requirement for Sunshine to work on mobile?
     
  14. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    GLES2 or above is required. GLES3 can be treated as "Desktop" if you're only targeting newer mobile devices. Sunshine is designed primarily for the Scatter effect, and overcast shadows, so if those aren't important to you, and you really just want to improve the look of built-in shadows, I would go with Shadow Softener since it can use a larger kernel, do Point/Spot lights, and it costs less.
     
  15. fisherman_b

    fisherman_b

    Joined:
    Dec 18, 2014
    Posts:
    36
    Ok, thanks - the wording I read somewhere earlier in this thread was not clear to me (sounded like "you MUST select OpenGLES 2.0 in the build options" which would mean a regression.) I will start to read more about Shadow Softener then. The difference in this price range is not relevant, but the other points you mentioned definitely make sense.
     
  16. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    I know nothing about shaders. The Asset Store blurb makes the point "Some shader knowlege required". Could you please clarify what this means. i.e. What shader knowledge is required to use this asset? Thx.
     
  17. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    Very often users want Sunshine's "Custom Shadows" feature to work with shader packs they've downloaded, and this requires editing shaders to integrate with Sunshine. I would read through the documentation prior to purchasing to make sure you understand the basics: http://unitysunshine.com/sunshine/Documentation.pdf
     
    Zaddo67 likes this.
  18. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    Nobody, huh?

    So here's another question: If I got this for a mobile game, I'm sure I'd need to disable shadows for older devices. But would that be a problem--since the terrain and all meshes would have the Sunshine shaders? Is there any performance impact of using Sunshine shaders with shadows disabled (compared to standard Unity mobile shaders)?
     
  19. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    Sunshine uses a permutation for each filter type, so when disabled it will use a permutation that doesn't do any shadow calculations and shouldn't impact performance.

    (sorry I don't have any performance stats)
     
  20. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    What resolution is each of the quality-level presets for Light Resolution?
     
  21. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    FWIW: I've tested this on iPad Air, with quality set to Medium, and Shadow Filter set to either Hard or PCF2x2, and mask set to PC and NPCs only. Performance is dramatically better than Unity's built-in shadows (which kill FPS completely). There's still a performance cost (hard to say exactly how much, since there's a lot of fluctuation, but maybe averages out to 5ms, very roughly). That's probably too high for this particular game, which has a large terrain environment, and so I don't have much FPS to spare. But it's still impressive, and might be feasible on the latest devices. Definitely good to have in my toolkit!
     
  22. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    The resolution is based on the built-in size computation Unity describes in the manual. I wanted the behavior to be as close as possible to built in, but you can always set a specific resolution using the "Custom Resolution" option if needed.

    There's probably room for some performance gains if the RenderTexture format were changed to avoid the encode/decode steps, but the current design is the most compatible. Shadows are always going to be expensive, hopefully it will be a better fit for your next project. :)
     
  23. shoomoohin

    shoomoohin

    Joined:
    Feb 19, 2013
    Posts:
    2
    Hey ... just installed Sunshine! on Unity 5 ... pulling the prefab into my scene gives "Postprocess ScatterShader missing/invalid" (on the instantiated prefab) ... the shader itself appears to show that it has a syntax error on the first line, but there's nothing obviously wrong ... am I missing something super obvious??
     
  24. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,685
    @shoomoohin - Assuming you followed all the installation instructions, you might check to see if your shaders all compiled. Personally, I could never get the SpeedTree shader for Sunshine to compile, and that would bollix my whole Sunshine install for some reason. Anyway, the fix is easy: just uncheck the SpeedTree shader when importing and things should work just fine. (Unless, of course, you need Sunshine on SpeedTrees.)
     
  25. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    @hopeful is correct, the SpeedTree shader does tend to bork the import process (even though the code is perfectly fine, and compiles when Unity feels like it). His suggestion should work, or alternatively you could try just manually reimporting any particular shaders that didn't compile.
     
  26. shoomoohin

    shoomoohin

    Joined:
    Feb 19, 2013
    Posts:
    2
    How bizarre. Yeah, skipped the SpeedTree shaders in the import, still borked ... reimported and now everything seems happy ... thanks :)
     
  27. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    So I finally tried my game with Sunshine on iPad 2. Or rather, I tried to try it....but it seems to crash the device, apparently with a memory error. In my title scene, xcode reports memory usage normally of 105mb on iPad 2. (It's less on newer iPads, which is mysterious but completely replicable and consistent.) But after installing the Sunshine Forward Rendering shaders, xcode reports 125mb in that scene. And then normally, when the main game scene loads, memory usage hits 230mb (which I know is too much...working on that.) But with Sunshine shaders, xcode shows it climbing to 240...250...and then the game crashes.

    iPad Air 1 shows the same issue -- about 25-30mb greater memory usage with Sunshine shaders, but that device has a lot more memory so it doesn't crash. (I thought it might be due to SM2 vs SM3, but apparently not.) (Before discovering that Sunshine shaders were the problem, I tried builds with Automatic/GLES 3/GLES 2 settings, and Mono and IL2CP.) Any ideas? This pretty much rules out using Sunshine for me (even disabled on certain devices).

    Edit: This happens whether or not the Sunshine prefab is in the scene.
     
    Last edited: May 29, 2015
  28. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    The two main sources of memory usage in Sunshine are the Lightmap, and the shader variants. I haven't found a convenient way to control the shadow filtering without including them as variants, but now with Unity 5's shader_feature directive there might be some hope. A workaround would be to edit the shaders you're using and remove the unused filters from the multi_compile line, for example:
    Code (csharp):
    1. #pragma multi_compile SUNSHINE_FILTER_PCF_3x3
    This will cut down on shader memory.

    You could also decrease lightmap resolution, but of course that could impact the look of the game.
     
  29. tripknotix

    tripknotix

    Joined:
    Apr 21, 2011
    Posts:
    744
    my current plan is to have 2 different scenes, one with sunshine, one without, and i will check if they are using opengl es3 (using the auto select es2/es3 build option), that prevents crashing.

    Can i use Deffered mobile version of sunshine, if im using opengl es3?
    And are there any special instructions to do so. The reason is because if im using the other scene, i will not be using sunshine forward shaders on my objects, i want those devices that crash, to just simply not see sunshine at all.

    Thanks
     
  30. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    I'm pretty sure that Sunshine+Deferred should run on ES3, you may need to set Sunshine to "Desktop" mode, but I can't see why it wouldn't work.
     
  31. dreasgrech

    dreasgrech

    Joined:
    Feb 9, 2013
    Posts:
    205
    I'm having trouble with Sunshine + DepthMask shader.

    When seeing Sunshine's "Custom Shadow Mapping" shadows through a box which has the DepthMask shader, the shadows look very jaggy and low quality.

    Do you know what might the problem?
     
  32. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    I can't get the DepthMask shader to do anything in my test scene in Forward or Deferred rendering, although it may simply be that it behaves differently on Macs. It just looks like it's supposed to be writing to the depth buffer, so I'm not really sure why it would affect the shadows.
     
  33. KWaldt

    KWaldt

    Joined:
    Nov 1, 2013
    Posts:
    127
    Hello there!

    I am using Sunshine since I while now, and I love the mood it gives off!
    However, I ran into a problem--Unity 5 added the feature "Shadows Only" in the Mesh Renderer, which allows for invisible objects to cast shadows. (I am using this for a stained glass window.)
    However, Sunshine doesn't appear to support this--are you aware of this, or is it a bug?

    Would love to see it fixed!
    - KW
     
  34. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    Unfortunately, Unity doesn't have a practical way of hooking into shadow settings during rendering, so a workaround has to be used. What I suggest is creating a Layer named "Shadows Only", then allowing Sunshine to treat it as a Light Occluder, but not allowing your Camera to render it. This will have the same effect, although it's admittedly not as convenient.

    Hope this helps,
    Oren
     
  35. KWaldt

    KWaldt

    Joined:
    Nov 1, 2013
    Posts:
    127
    This works beautifully, thank you for the help and the fast support!

    - KW
     
  36. JFo

    JFo

    Joined:
    Dec 9, 2007
    Posts:
    217
    Hi!

    Is the Unity 5 required to get the later than 1.6.7 versions from asset store?

    When downloading using 4.6.7p1, it seems Asset Store only gives version 1.6.7...
    Is Unity 4 still supported?

    We have problem with Sunshine 1.6.7 and Android Nexus 5, that gives following error in logs:

    Code (csharp):
    1. 07-16 15:20:50.617: E/Unity(17075): -------- Hidden/Sunshine/Occluder
    2. 07-16 15:20:50.617: E/Unity(17075):
    3. 07-16 15:20:50.617: E/Unity(17075): (Filename:  Line: 141)
    4. 07-16 15:20:50.617: E/Unity(17075): -------- failed compiling fragment shader:
    5. 07-16 15:20:50.617: E/Unity(17075):
    6. 07-16 15:20:50.617: E/Unity(17075): (Filename:  Line: 142)
    7. 07-16 15:20:50.617: D/Unity(17075): #extension GL_EXT_shader_framebuffer_fetch : enable
    8. 07-16 15:20:50.617: D/Unity(17075): precision highp float;
    9. 07-16 15:20:50.617: D/Unity(17075): uniform highp vec4 _ProjectionParams;
    10. 07-16 15:20:50.617: D/Unity(17075): uniform sampler2D _MainTex;
    11. 07-16 15:20:50.617: D/Unity(17075): uniform lowp float _Cutoff;
    12. 07-16 15:20:50.617: D/Unity(17075): varying highp vec2 xlv_TEXCOORD0;
    13. 07-16 15:20:50.617: D/Unity(17075): varying highp vec2 xlv_TEXCOORD1;
    14. 07-16 15:20:50.617: D/Unity(17075): void main ()
    15. 07-16 15:20:50.617: D/Unity(17075): {
    16. 07-16 15:20:50.617: D/Unity(17075):   lowp vec4 tmpvar_1;
    17. 07-16 15:20:50.617: D/Unity(17075):   mediump vec4 tmpvar_2;
    18. 07-16 15:20:50.617: D/Unity(17075):   tmpvar_2 = gl_LastFragData[0];
    19. 07-16 15:20:50.617: D/Unity(17075):   tmpvar_1 = tmpvar_2;
    20. 07-16 15:20:50.617: D/Unity(17075):   lowp float x_3;
    21. 07-16 15:20:50.617: D/Unity(17075):   x_3 = ((texture2D (_MainTex, xlv_TEXCOORD0).w * tmpvar_1.w) - _Cutoff);
    22. 07-16 15:20:50.617: D/Unity(17075):   if ((x_3 < 0.0)) {
    23. 07-16 15:20:50.617: D/Unity(17075):     discard;
    24. 07-16 15:20:50.617: D/Unity(17075):   };
    25. 07-16 15:20:50.617: D/Unity(17075):   lowp vec4 tmpvar_4;
    26. 07-16 15:20:50.617: D/Unity(17075):   highp vec4 tmpvar_5;
    27. 07-16 15:20:50.617: D/Unity(17075):   tmpvar_5 = fract((vec4(1.0, 255.0, 65025.0, 1.65814e+07) * min (
    28. 07-16 15:20:50.617: D/Unity(17075):     ((-(xlv_TEXCOORD1.x) + max (0.0, xlv_TEXCOORD1.y)) * _ProjectionParams.w)
    29. 07-16 15:20:50.617: D/Unity(17075):   , 0.995)));
    30. 07-16 15:20:50.617: D/Unity(17075):   highp vec4 tmpvar_6;
    31. 07-16 15:20:50.617: D/Unity(17075):   tmpvar_6 = (tmpvar_5 - (tmpvar_5.yzww * 0.00392157));
    32. 07-16 15:20:50.617: D/Unity(17075):   tmpvar_4 = tmpvar_6;
    33. 07-16 15:20:50.617: D/Unity(17075):   gl_FragData[0] = tmpvar_4;
    34. 07-16 15:20:50.617: D/Unity(17075): }
    35. 07-16 15:20:50.618: E/Unity(17075): -------- GLSL error: Fragment shader compilation failed.
    36. 07-16 15:20:50.618: E/Unity(17075): WARNING: 0:6: extension 'GL_EXT_shader_framebuffer_fetch' is not supported
    37. 07-16 15:20:50.618: E/Unity(17075): ERROR: 0:17: 'gl_LastFragData' : undeclared identifier
    38. 07-16 15:20:50.618: E/Unity(17075): ERROR: 0:17: 'gl_LastFragData' :  left of '[' is not of type array, matrix, or vector
    39. 07-16 15:20:50.618: E/Unity(17075): ERROR: 0:17: 'assign' :  cannot convert from 'float' to '4-component vector of float'
    40. 07-16 15:20:50.618: E/Unity(17075): ERROR: 3 compilation errors.  No code generated.
    41. 07-16 15:20:50.618: E/Unity(17075):
    42. 07-16 15:20:50.618: E/Unity(17075): (Filename:  Line: 145)
    Any way to correct this or can we ignore it?

    BR,
    Juha
     
  37. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    Hello Juha,
    I'm sorry to say 1.6.7 was the last version that supports Unity 4, we have it up for legacy projects. The differences between Unity versions were simply too great for me to maintain compatibility with both, so all development is currently in Unity 5.

    It might be possible to get the new Occluder shader running in Unity 4 with some changes, but I'm not sure how much work that would entail.

    Cheers,
    Oren
     
  38. JFo

    JFo

    Joined:
    Dec 9, 2007
    Posts:
    217
    Hi!
    Thanks for the answer. It is understandable to focus only to 5.

    Do you know if this Occluder shader is really needed as we are using only the shadows and in the device we actually see the sunshine shadows? So at least it seems to work even we get that error?!

    Anyway, I'll try the newer shader..

    BR,
    Juha
     
  39. KWaldt

    KWaldt

    Joined:
    Nov 1, 2013
    Posts:
    127
    Hello again!

    I'm sorry to annoy you again, but I ran into trouble with the volumetric lighting and transparent materials.
    As you can see, it cuts off in a weird way, which does not happen in a cutout material, so it's probably a z sorting problem.
    (I'm using the Advanced Hair Shader from the asset store in this example (which mixes cutout and transparency in order to avoid sorting errors), but it also happens with the default transparency shader.)
    Is there any way to solve this, or to at least make it less obvious?

    Best regards,
    Kristina Waldt
     

    Attached Files:

  40. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    The Occluder shader is used for both shadows and scatter, it's basically what builds the lightmap. If everything appears to work in your game, most likely the error is in a shader pass/platform that you aren't using. You might just be able to ignore it.

    This is always a problem when mixing postprocessing that requires the depth buffer and transparencies. Basically you have the choice to apply scatter behind all transparencies, or in front of. To change this, you can make the following edit to SunshinePostprocess.cs
    Code (csharp):
    1. //Add the "ImageEffectOpaque" attribute to make scatter appear behind transparent objects:
    2. [ImageEffectOpaque]
    3. void OnRenderImage (RenderTexture source, RenderTexture destination)
    4. {
    Hope this helps
     
  41. KWaldt

    KWaldt

    Joined:
    Nov 1, 2013
    Posts:
    127
    Thank you, that looks great now!
    I really appreciate your support~

    - KW
     
  42. DivergenceOnline

    DivergenceOnline

    Joined:
    Apr 19, 2015
    Posts:
    244
    Sent you a message.
     
  43. ksam2

    ksam2

    Joined:
    Apr 28, 2012
    Posts:
    1,080
    I have a good PC but this asset drops 30 frames, totally useless if It's going to be like this! who would like to loss 30 frame rate because of this asset?
     
  44. Plutoman

    Plutoman

    Joined:
    May 24, 2013
    Posts:
    257
    Have you ever used shadows before? Probably one of the most intensive things to do graphically, at all.

    @PolyVector sending you a PM!
     
  45. ksam2

    ksam2

    Joined:
    Apr 28, 2012
    Posts:
    1,080
    I'm using unity default shadow but after using Sunshine I loss 30 frames and I'm sure something isn't true about that!!!
     
  46. A-V-Medvedskiy

    A-V-Medvedskiy

    Joined:
    Apr 11, 2014
    Posts:
    8
  47. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    I haven't used HORIZON[ON] before, but it sounds like it should work. Since it's meant for the background, it's probably outside the range of shadow-mapping anyway, so it's probably a safe bet.
     
  48. DivergenceOnline

    DivergenceOnline

    Joined:
    Apr 19, 2015
    Posts:
    244
    Your documentation says that Sunshine requires basic terrain shaders, so does that mean it won't work out-of-the-box with RTP?
     
  49. PolyVector

    PolyVector

    Joined:
    Dec 24, 2011
    Posts:
    765
    In deferred rendering, or in cases where you aren't using the custom shadow system (ie. Scatter only) then it should work fine. If you want custom shadows in the forward renderer, then shaders (such as RTP) require modification.
     
  50. DivergenceOnline

    DivergenceOnline

    Joined:
    Apr 19, 2015
    Posts:
    244
    We only use Deferred, but it's exactly that kind of nebulous terminology that can mean the difference between a $100 gamble that pays off, and one that didn't pan out at all.

    "Custom Shadows".
    Custom Shadow Mapping - Replaces the Built-in shadows with Sunshine's.
    This basically means that you're considering Sunshine's included shadows system to be "custom", however the shadows are 50% of the reason i think people would spring for such a pricey asset. It definitely is for me. Without that, it's volumetric light and that's all. Still very cool, but only works on directional (outdoors) lights and several other caveats you mentioned.

    RTP is also one of the biggest, best, most popular assets ever made for Unity. If your goal is to pander to people attempting to make AAA games with Unity, the likelyhood those specific people are going to already be using RTP is very high I would guess.

    Why don't I just lay out the intended situation instead and you can let me know if it's kosher or not.

    Deferred, DX9, Sunshine Lighting, Sunshine Shadows, Sunshine Cloud Shadows, RTP.

    Thanks for your time.