Search Unity

Planets 1.4.1 Meet new PBR shaders, multiple lights, environment. Amplify Shader Editor support!

Discussion in 'Assets and Asset Store' started by s7, Jan 8, 2015.

  1. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466




    ** New! UPDATE 1.4 **

    Its the biggest so far retouching all majority of its shaders. Meet all new PBR features Unity has to offer, multiple lights, and environment support. Easily customizeable with Amplify Shader Editor.

    >> Planets Update 1.4 in now available

    Planets in the Asset Store

    Whats new:
    • Custom vertex/fragment lighting system removed in favor of Unity’s lighting
    • Multiple lights support: Directional, Point. Added Reflection Probe support
    • All planet prefabs have been recreated from the ground up using new shader framework
    • PRB Surface (Specular) shaders built with Amplify Shader Editor v1.4.5
    • Out of the box shader compatibility across all platforms (SM 3.0+)
    • Linear Color prefabs (Gamma color prefabs not included)


    Screenshots:







    Key features:
    • 38 Ready to use prefabs
    • 9 templates: Sun, Moon, Terrestrial, Oceanic, Lava, Ice, Gas, Sandstorm and Thunderstorm
    • Up to 4096 texture resolution
    • Animated cloud and distortion flow maps
    • City lights maps

    Planets are naturally wrapped around PBR Specular work-flow available in Unity Editor, and will require Shader Model 3.0+ hardware to run. The update also makes Planets capable running on high-end mobile devices supporting SM 3.0. Sun corona billboards require Soft Particles enabled.

    >> Planets Update 1.4 in now available

    Planets in the Asset Store

    -----
    BE THE FIRST TO KNOW WHATS COMING
    Swing by our forum and help us build the community! We also highly encourage you to subscribe to our mailing list for the latest updates and the development progress straight from the farthest corners of the galaxy!

    REACH US OUT

    Found a bug?
    Please submit a case in the Bug Report thread, and we will squash the bug away!


    Want to share your thoughts?
    We sincerely appreciate your time to give us comments and ideas. There are always things that we could do better. Please share them in the Feedback and Suggestions thread.

    Have a question or need help?
    For a non-urgent matter, please submit in the Technical Support thread. You can also use our Contact Form to communicate to us directly. We'll give you a prompt a thorough response.
     
    Last edited: Feb 26, 2018
    Gozdek likes this.
  2. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    Just picked this up. Wow. I'm replacing all of the planets in my current game with these immediately. So good.

    Had a question. I currently have my game structured so that there are a small number of "background" scenes that each contain a skybox, a light source, and some other stuff that's background specific. The idea is that the sun in each background scene is always in the same position. Specific locations have things like space stations and planets.

    I had been using a planet shader with a light component that works similarly to F3DSun where it's a special light source just for planets. I've put in the F3DSun light source into a background scene as a test. The problem is that since the planets are in scenes loaded on top of that, they doesn't get seen by F3DSun. I can hit the Refresh button in the inspector while the game is running and then it'll kick in, but I haven't come up with a way to programmatically do that. I tried putting this in F3DSun:

    Code (csharp):
    1.  
    2.     void OnLevelWasLoaded()
    3.     {
    4.         Planets = FindObjectsOfType<F3DPlanet>();
    5.     }
    6.  
    ...since that's all the Refresh button in the editor seems to do, but that didn't work.

    Any ideas?

    Thanks!
     
  3. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Seems like you are loading additively so the sun is always kept in the scene. Any difference with http://docs.unity3d.com/ScriptReference/Application.LoadLevelAdditiveAsync.html when you might want to check right after that Debug.Log() call?

    Code (CSharp):
    1.  
    2. public class ExampleClass : MonoBehaviour {
    3.     IEnumerator Start() {
    4.         AsyncOperation async = Application.LoadLevelAdditiveAsync("MyAddLevel");
    5.         yield return async;
    6.         Debug.Log("Loading complete");
    7.  
    8.         Planets = FindObjectsOfType<F3DPlanet>();
    9.     }
    10. }
    Heres a few examples on how to check if the additive / async finished loading:
    http://answers.unity3d.com/questions/466134/how-to-check-to-see-if-loadleveladditive-finished.html
    http://answers.unity3d.com/questions/484560/what-is-the-best-way-to-detect-level-load-on-addit.html

    Looks like the check you are doing with OnLevelWasLoaded fires when the initial level is loaded, but produces no results since the objects still keep loading in the background additively. Anyway, it's just a guess so let me know if that sample makes any difference for you. Thanks
     
  4. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    Thanks for the reply! I'm actually doing a regular synchronous LoadLevelAdditive on the second scene, and it looked like my code was getting executed after everything loaded.

    But I went ahead and made my directional lights (with F3DSun children) into prefabs and I'll just drag those into each individual "foreground" scene. (in fact, I'm rethinking the whole background scene idea anyway) So everything's working fine with that, with the added benefit that I can now preview the lighting on planets and other objects.

    A comment and another question:

    1. On the moon shader, I seem to be getting little "sparkle" rendering artifacts just outside the planet surface.
    2. How important is it to keep the SphereColliders on planets? I'd like to remove those if possible.
     
  5. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    1. Open Assets/FORGE3D/Planets/Shaders/Atmosphere.shader and go to line 30. Replace Cull Off with Cull Back

    2. SphereColliders needed only if you have soft shadows enabled on the sun. So feel free to remove them if you dont use planetary soft shadowing in your game.

    Let me know if that helps. Thanks
     
  6. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    1. My atmosphere shader already has "Cull Back" on line 30.
    2. Awesome. I don't have soft shadows enabled, so I've removed those.
     
  7. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Thats interesting. For a moment I thought I forgot to switch the culling but seems like it's not the case. Removing atmosphere fixes the issue? And could you attach a screenshot of the game view showing the artifacts if possible please? Thanks
     
  8. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    Yes, removing the atmosphere removes the artifacts.

    I wasn't able to capture the artifacts in a screenshot. It seems like things have to be moving; my screenshots didn't catch the right frames.

    So I did a very short video. It's a bit hard to make out, but if you go full screen 1080p and look at just above the moon, you should be able to see them.

    Update: I guess it'd help if I included the link:
     
  9. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Thanks for the update. I have reproduced this on my end (http://screencloud.net/v/rLOu notice a few tiny white dots) and the flickering on the edges could be eliminated by lowering Scattering Offset to a negative on the particular atmosphere material. Just in case make sure ZWrite is set to Off in the atmosphere shader on one of the following lines next to Cull Back.
     
  10. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    Hmm, I think I've already got both of those things like that.

    1. The one I noticed the issue on (from the video) is Moon_06. Its atmosphere uses the AtmosphereMoon_06 material, which has ScatteringOffset set to -2.15 out of the box. Should I try an even lower number?

    2. Looks like I've already got "ZWrite Off" two lines below "Cull Back" in Atmosphere.shader.
     
  11. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Yes. Lower it until the dots dissapear. Something between -2.5 to -2.8 should be close enough to keep the glowing edge intact.

    What is the scale for the moon you are using? Does it produces the same artifacts in the demo scene? You can try changing the atmosphere material to a different one and see if it helps.

    The shader related stuff is just to make sure we got the same code since I changed a few lines on my end after the asset were published.
     
    Last edited: Jan 19, 2015
  12. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    I tried -2.65 and then -30 and it didn't seem to make any difference. What I might do is make a copy of Moon_06 that has the atmosphere removed, since it isn't needed in that case.

    The one from the video is scaled to 1200. I have the same moon in another scene scaled to 5000 (it takes up more than the full screen) and the artifacts are not noticeable on that one. It could be because on that one I have a busy and colorful skybox. I did not notice the artifacts on the web player demo scenes. I haven't run them in Unity; for reason Unity crashes when I try to open them.

    I did try swapping out the atmosphere with all of the moon ones and even a few planet ones, but they all had the same artifacts. I could be that the particular one I'm seeing the "sparkles" on is just more noticeable at that scale and against a solid dark area of the skybox. I could try running a build on another machine I suppose.

    I was able to snag a screenshot. It's not nearly as noticeable in a static image as it is in motion with a sparkly effect at random locations along the atmosphere edge.

     
  13. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    I've tried most of the options that could break it while trying to reproduce the issue but unfortunately with no luck so far.

    I would like to ask you to create a new project and add components from you main project to isolate and indentify the issue. Make sure to keep the minimal amount of assets required. For example, a moon, atmosphere, project settings and scene could be enough to start seeing the flickering on the edge. If its not, then keep adding assets until you see the artifact appear. Save and close Unity. Go to your project folder and remove everything except 'Assets' and 'ProjectSettings'. Compress what is left and upload to a private storage so you can provide me a download link via PM.

    Also make sure to specify your Unity version and hardware configutation.
    Thanks
     
  14. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    OK, PM sent. It wasn't hard to reproduce (on my machine anyway). I'll try running a build on some other machines to see if it looks any different.

    UPDATE: I tried a standalone build on four different Windows machines. The results were the same, except for one that was a little darker. I took screenshots so that I could view them all on the same monitor. I turns out that the big monitor I use as my main display is very bright, which exaggerates the artifacts quite a bit. On other displays, the dots were either hard to see or essentially invisible.

    ANOTHER UPDATE: I noticed that in Unity, the artifacts are quite a bit brighter than in the build. So a lot of it is a combination of being brighter in Unity and sitting close to a bright 27" monitor.
     
    Last edited: Jan 20, 2015
  15. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Thanks for the update. I have checked both demo and the project you sent and it didnt take long to identify the reason. In your project you are using Forward rendering path with Anti Aliasing set in Quality Settings which in fact produces the artifacts.

    Seems like its not the only case as there are more related reports on a similar problem:
    http://forum.unity3d.com/threads/fireflies-anti-aliasing.82887/page-2
    http://forum.unity3d.com/threads/white-pixels-from-aa-and-specular-shader.130498/

    The solution in your case is to disable AA and use camera based Image Effect Anti-Aliasing Script. This will also allow you to switch to Defferred Lighting and start using HDR.
     
  16. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    Huh, I thought I had tried it with AA off. Guess not!

    Early on I played with post AA, but it blurred out my detailed skyboxes and my text overlays. If I could figure out a way around that, yeah, I would love to turn on HDR. I'm not sure deferred lighting would buy me much though.
     
  17. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    I been playing around with the shader code to see if I can do something about it to make it work with the AA, but unfortunately no progress so far. Hopefully this will change with Unity 5 and I might give it a try with a current beta. Will let you know if things get changed.
     
  18. Steve-Tack

    Steve-Tack

    Joined:
    Mar 12, 2013
    Posts:
    1,240
    OK, thanks for taking a look! It's actually no big deal. The only place I saw the dots was a place where I wanted a moon with no atmosphere anyway. I've plugged 8-10 of the planets into my game so and they look GREAT. I especially love the ones with the animated atmosphere effects (I'm using one of the planets that has the animated effects in addition to storms). Amazing. The planets look so good at every lighting angle.
     
  19. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466


    Planets version 1.1 is now available!



    Whats new:
    The asset is now Unity 4.6 and 5.0 compatible.
    - New sun shader fixes soft particles issue while running in DirectX 11 mode.
    - Added 3 new sun prefabs and Sun_Example demo scene.
    - Various planet and atmosphere shader improvements to ensure Unity 5.0 compatibility.
     
  20. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Planets version 1.2 is now available!

    Whats new in 1.2:

    - This asset is now Unity Free ready!
    - Added gamma color space prefabs for planets and sun.
    - Added gamma color example scenes.
    - Added modified sun shader to be used with gamma color space.
    - The atmosphere offset should no longer break when scaling.



     
  21. Cascho01

    Cascho01

    Joined:
    Mar 19, 2010
    Posts:
    1,219
    The shadows on the planets look awesome.
    Could you give some info about your custom shadow solution?
    Could it be used as a replacement for Unity-Shadows?
     
  22. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Thanks!

    Yeah theres no secret to it. It is using a soft sphere shadowing approach. Unfortunately this solution is limited to planets only.

    You can read more on that topic here: http://en.wikibooks.org/wiki/Cg_Programming/Unity/Soft_Shadows_of_Spheres
     
  23. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    4,892
    Hi, I thought I'd post a reply to your reply to my review here.

    True - it's not really an issue, but rather a suggestion, so I edited that in the review.

    It would likely make sense to have a #define to easily opt out of the shadowing system, or a series of them to set the number of planets to be supported. I suspect that most games don't need 20 planets shadowing each other at once, and this would save a significant chunk of performance for most peoples use cases.

    Well, technically it helps the cache to have smaller textures. But the real issue is that it wastes memory for no reason.

    I disagree strongly with this assessment. You are rendering spheres, and a ton of the information you are currently computing in the pixel shader can be easily computed in the vertex shader with no loss of quality. For instance, here are the results of my planet generation system, which runs under openGLES 2.0, and scales all the way down to low end phones:



    You can see a breakdown of the basic technique used on the blog, though it's been improved quite a bit since then (I actually shutter a little bit looking at that old version, and the blog was unfortunately run through a PR filter which removed a ton of details). http://www.startrek.com/article/guest-blog-in-game-preview-of-star-trek-timelines

    Anyway, my point here is that I think you can make significant improvements to your asset's performance without sacrificing the features you want it to have, and make the system more configurable for the range of devices Unity supports. Even if my high-end desktop can draw the planets at reasonable framerate, the system is essentially wasting a ton of cycles as it's currently implemented, which can be used for everything else in the game. I'm perfectly fine with the goal of not supporting mobile, if that's what you want for your asset, that's perfectly valid; my rating was based on where I thought the performance should be for the result produced, and my hope was that I could shed some light on areas which could be improved.
     
    ilmario, Dreamer and ashenbee like this.
  24. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Hey Jason,

    I am glad that you are taking time to post an extended review. I trully appreciate your effort. The feedback you have provided will be used to help improve this asset over time.

    Thank you.
     
  25. Bradamante

    Bradamante

    Joined:
    Sep 27, 2012
    Posts:
    300
    The visuals are friggin awesome, but performance seems to be not there yet. I'd like to pick this up since I loved your Sci Fi Effects pack. However, I tried the demo on a late 2013 rMBP @ 2560x1440 Intel Iris Pro?). The performance of the demos was a slide show. I understand it's a high fidelity asset, but a lot of people these days have only integrated Intel GPUs (see Steam hardware survey). If Starcraft II can run on this rMBP, so should this asset. Sorry :(
     
  26. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Thank you for taking your time posting your review. The proper steps will be taken in regards of the performance improvement and further optimization of the product.

    I always maintain a strict quality on my assets, so it's quite possible that you may be able to run this on your configuration in a matter of the next update.

    I look forward to being able to serve you better in the future.
     
  27. Bradamante

    Bradamante

    Joined:
    Sep 27, 2012
    Posts:
    300
    Hm, actually I don't want to write more, since I don't want to use up more of your time. I don't want to sound too critical or harsh. Your assets friggin rock. Easily the best in their respecive category. And yes, I will write asset store reviews.

    I just tried the planets demo in a browser on my work machine. No Intel integrated graphics @ 2560x1440, but a GTX 760 @ 1920x1200. More FPS of course but not quite stable. Might be a browser thing. Might be a Mac thing. Just saying.

    So let's just say that I would really LIKE to purchase your planets pack, but I need to know a few things:

    - My game is using a orthogonal camera. I've seen assets that weren't made for that in mind. Especially when it comes to planet penumbras or glows. Will your asset work with a ortho cam?

    - I don't need the planet shadow feature. My game has a setup similar to Starcraft II or Sins of a Solar Empire where the planet is below the scene and the space ships are hovering above, with the camera looking down. So, the planet's shadow is never needed. Maybe that's a source for performance improvements?
     
  28. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    I have tested the planets example scene and what is important is to keep the orthographic camera at least 50-100 units away so the atmosphere sits in its place. I did test the scaling also, and it seems to work just fine.

    The sun corona boards seems to rely on soft particle feature which gets broken when switching to the orthographic camera. The workaround for this as I see will be to align the boards with the camera and modify the Edge Mask Falloff shader value, so that eliminates the intersecting edges. There might be another workaround but it will take a while to confirm.

    I will gladly provide you with the instructions on how to remove the shadow feature completely. This will definitely boost the render time and help with improving the performace.

    Please also note, that in most cases you wont be using all the available planets on a screen at the same time, like you have probably seen in the web demo. What I say is that it runs much better than you might expect.

    Thanks.
     
    Last edited: Mar 1, 2015
  29. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Awesome news about Unity 5 going free! Huge thanks to Unity Team for all the unlocked features!

    How do you feel about trying Planets with this free key?
    *KEY REDEEMED*​
     
    Last edited: Mar 6, 2015
  30. looki666

    looki666

    Joined:
    Sep 5, 2013
    Posts:
    79
    Awsome :)
     
  31. ashenbee

    ashenbee

    Joined:
    Jan 28, 2014
    Posts:
    11
    Looks great. Two quick questions:

    Can I alter the color / size of the stars? (i.e. represent red dwarfs and blue giants?)

    Can I use alternate textures and height maps (w/same dimensions as those in the package) . I'm creating planetary surfaces procedurally in a custom noise library.

    Thanks in advance.
     
  32. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Thank you!

    - Yes you can tweak the color and size of the stars. There are three color examples included with the package to get you started.

    - Yes you can use alternate textures, probably generated using some third party asset. Make sure to check how the samples work as many textures use data packed in RGBA channels.

    Would be great if you could generate a normal map precedurally or you might end up using a blank one.

    There are lots of customization options available such as the material values allow you to fine tune everything: colors, surface factors, clouds speed, shadows and so on.
     
  33. ashenbee

    ashenbee

    Joined:
    Jan 28, 2014
    Posts:
    11
    Very helpful, thanks.
     
  34. Ber92

    Ber92

    Joined:
    Apr 13, 2015
    Posts:
    26
    I am very tempted in the purchase of this package, but work on mobile devices?? The performance suffer?
     
  35. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    First of all the Planets pack positioned as desktop only. Works both PC/Mac. Not suited for mobiles.

    However theres a way to make it possible by using a plane with planet texture in the background. Or you might even go a step further and make an animated sprite sheet with the rotating planet. I assume this is what you looking for!

    You can use an orthographic camera to take a shot of the planet without the atmosphere on the blank background and use your favorite image editor to edit the screen grab. Then you can take the shot of the atmosphere alone and put it on top.
     
    Ber92 likes this.
  36. Ber92

    Ber92

    Joined:
    Apr 13, 2015
    Posts:
    26
    Hey man we've taken in full !! I need a rotating planet with the effects, though Sprite is no difference. All this is already included in the package?
    Decreasing the size of the images to 512x512 or 1024x1024, the image quality loses much?
     
    Last edited: Apr 14, 2015
  37. Ber92

    Ber92

    Joined:
    Apr 13, 2015
    Posts:
    26
    The Sprite are included in the package?
     
  38. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    No not really. This is something you have to do on your own as the package contains assets suited for 3D only.

    I cannot give you any recommendations on size as this is what you decide on your own for your targeted platform and the project in particular.
     
  39. xerotechnologiesnetllc

    xerotechnologiesnetllc

    Joined:
    Jul 1, 2014
    Posts:
    49
    Just bought this today 5 10 2015 and no matter what I do, the planets are BLARINGLY white whenever facing any light source...even when i remove the light sources entirely in a brand new scene.

    Thoughts?
     
  40. xerotechnologiesnetllc

    xerotechnologiesnetllc

    Joined:
    Jul 1, 2014
    Posts:
    49
    I think I have it sorted. I had to turn every single setting down and nearly every single color to almost black for most of the planets.

    Is this normal for Unity 5?
     
  41. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Works fine with both Unity 4.6 and 5.

    Have you tried the example scene? You have to use the custom sun light source. Unity light sources have no effect with the planets. Check the manual on how to setup your scene.

    Let me know if this helps. Thanks
     
  42. xerotechnologiesnetllc

    xerotechnologiesnetllc

    Joined:
    Jul 1, 2014
    Posts:
    49
    Yes, I built an entirely brand new project and loaded just this asset and then the tutorial scene - same white washout.

    I'll go back through the manual again and see what I missed.
     
  43. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Also have you switched the color space to linear or gamma depending on the example scene file name? There are two version of planet prefabs to support both. Make sure you use the right one according to your color space settings.
     
  44. xerotechnologiesnetllc

    xerotechnologiesnetllc

    Joined:
    Jul 1, 2014
    Posts:
    49
    Once I switched it to linear, all was good.

    If I may post a test shot I just built...

     
  45. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    I'm glad to know you have this sorted :) Let me know if you need any further help. Thanks!
     
  46. Beloudest

    Beloudest

    Joined:
    Mar 13, 2015
    Posts:
    226
    Before I buy these can any one answer this question please. Can i add my own RGB textures and also most importantly normal maps? Also does it use atmospheric scattering formulas at all? Thanks.
     
  47. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Hey Beloudest,

    Yes you can add your own textures both normals and masks and that will definitely give you full control over the look.

    To answer your question on atmospheric scattering: The atmosphere technique fakes the scattering by using masks and 1D texture map.
     
  48. Beloudest

    Beloudest

    Joined:
    Mar 13, 2015
    Posts:
    226
    Hey, how would one go about making the darkside darker. Currently the darkside of the planets look dark grey as opposed to black. I would like to be able to barely see the planet on the dark side of it? I can also see the detail be etched onto the planet as it turns, which is quite noticeable but I suppose it is turning quickly so its not major.
     
  49. s7

    s7

    Joined:
    Aug 7, 2014
    Posts:
    466
    Check scene's ambient light. It should help you set the shadowed side visibility and also match it with your skybox or any other sort of background you may have.
     
  50. Beloudest

    Beloudest

    Joined:
    Mar 13, 2015
    Posts:
    226
    Lol I just discovered this setting before I read your reply, was typing to say I found it. This line made it click. Thanks. :)

    Code (CSharp):
    1. pData.Ambient = UNITY_LIGHTMODEL_AMBIENT.rgb;
     
unityunity