Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

Marmoset Skyshop - Image-Based Lighting Tools [RELEASED]

Discussion in 'Assets and Asset Store' started by monkeyscience, May 31, 2013.

Thread Status:
Not open for further replies.
  1. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
    I know you love questions so gonna throw another one. In the demo for 107, the change between different skyboxes appear quite noticable. If I were to use this on a fps weapon (not that I am, just an example) is it possible to make it more subtle? Thanks again!
     
  2. Woodlauncher

    Woodlauncher

    Joined:
    Nov 23, 2012
    Posts:
    173
    Where is this elusive 1.07 demo that you speak of?
     
  3. riuthamus

    riuthamus

    Joined:
    Aug 31, 2012
    Posts:
    1
    1) Do you have any plans to make it where settings from Marmoset Toolbag could just be exported, and then imported into Skyshop?
    2) Are there plans to add in sharpen filters and other such shaders that are already in the marmoset toolbag program?
     
  4. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
  5. Woodlauncher

    Woodlauncher

    Joined:
    Nov 23, 2012
    Posts:
    173
  6. Morfeuskiev

    Morfeuskiev

    Joined:
    Oct 10, 2013
    Posts:
    122
    monkeyscience

    Hello. Your shader is perfectly. I many read about PBR shading on your site. But I did not understand how to properly configure shaders. Bake cubemaps with or without light source. About bake HDR maps without main HDRI maps.... I have many levels in our company game and result is different. Misconception about shaders this category leads to what they may look wrong, that produces the opposite effect of their use. Your demoscene, especially the latter with GDC 2014, looks is perfectly. Do you plan to release a training video - how do you setup this scene?

    When you plan to release next version?

    Thanks you.

    With Best Regards, Leonid
     
    Last edited: May 21, 2014
  7. CodeMonke234

    CodeMonke234

    Joined:
    Oct 13, 2010
    Posts:
    181
    monkeyscience - The release notes indicate improved render-to-cubemap support - but I can find no information on render-to-cubemap anywhere...

    Can you talk about what was improved - is there an example of render-to-cubemap with sky shop?

    Thanks!
     
  8. yuenkay

    yuenkay

    Joined:
    Nov 12, 2013
    Posts:
    5
    Hi Monkeyscience!

    We're loving Marmoset Skyshop so far. Most of us are developing on Windows machines, and all is well. However, one person using a Macbook Pro is having issues with Unity trees that use the Marmoset Tree Creator shader.

    In the screenshot here, you see the Unity Trees using the marmoset shaders show up as white.
    The OK looking trees are actually just mesh assets, but uses Marmoset Tree Creator shader and shows up fine (but of course no wind motion).

    I did a search on anyone else having similar issues and found someone in Feb that has an issue with white trees but that person isn't on a macbook.

    Any idea what this might be?
    Would love any help!

    $whitetrees.jpg
    $machineStats.png
     
  9. Morfeuskiev

    Morfeuskiev

    Joined:
    Oct 10, 2013
    Posts:
    122
    Hi, yuenkay.

    I am not creator of Skyshop, but i have this problems too. My windows notebook(nv 555m) has no problems, but computer(maybe older) my boss - windows too, have this problems too. In my opinion - this problems with specular channel in shader. When i disable Directional light(only one light source in scene) - this problem disappeared. How to solve this problem I have not found. But later i moved to the AFS v2 - and luckily I had forgotten about this issue. Hope this helps you in solving your problem.
     
  10. larsbertram1

    larsbertram1

    Joined:
    Oct 7, 2008
    Posts:
    6,862
    hi there,

    it is nor really fair to mention it here but in order to get you guys helped: lux’s (free) tree shaders or the advanced foliage shaders should get those problems fixed.
    lars
     
  11. Licarell

    Licarell

    Joined:
    Sep 5, 2012
    Posts:
    434
    My game is basically all indoors... My modeling program is 3dsmax, I'll be modeling and creating textures of my scenes/levels inside 3dsmax.

    Would it be better to bake the lighting into my textures max and then use them to create a box projection for ibl in unity for my dynamic content?

    What would be the best way to go?

    Kent
     
  12. nukeD

    nukeD

    Joined:
    Feb 12, 2009
    Posts:
    411
    Hey monkeyscience, i have 3 sky objects that need to be switched by user input (activate one and deactivate the others...). When that happens the cubemaps for the materials remain unchanged. Is that by design and i should switch the materials in a separate action? How would you go about doing that at runtime?

    Thanks a lot!
     
  13. davylew

    davylew

    Joined:
    Mar 14, 2014
    Posts:
    10
    thx skyshop team, Waiting for new version bring Shader Forge integration...
    Can u transplant toolbag wireframe rendering screen space reflection features to skyshop .?
     

    Attached Files:

    Last edited: May 22, 2014
  14. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705
    Q&A time!

    First of all, thanks everyone for your patience and periods of radio silence. The status of 1.07 is we are currently wrapping up beta testing the substantial list of new features. I am also scrambling to get together better videos for illustrating all the new cool things Skyshop can do.

    Yeah, you'll get controls for how long the blend between two global or two local skies is. In the demo it's real short, like 1/4 a second, longer blends help a lot..

    1) No immediate plans. Toolbag's a different beast for a different purpose.
    2) Unity comes with pretty decent post effects already, we haven't considered writing our own so far

    More training videos are on the way! Its part of the 1.07 hold-up >_<
     
  15. cadviz

    cadviz

    Joined:
    Jan 17, 2012
    Posts:
    28
    Hi...
    At previous posts on page 77, there was a dialogue about Local Reflections

    http://forum.unity3d.com/threads/184304-Marmoset-Skyshop-Image-Based-Lighting-amp-Tools-RELEASED/page77?p=1584841&viewfull=1#post1584841

    My Question is:
    Had the [ Real-time Reflections ] within Skyshop, been fixed !!?... If so; Please; Can someone post a practical procedure to achieve it...?
    And if not...then what is the best third-party solution (as an alternative )...?

    Regards Thanks in advance
     
  16. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705
    I think if you're referring to stuff like this:


    It is caused by lack of mipmapping in the specular reflection cube:


    Because the reflection mipmaps are used for gloss instead, the reflections can't be properly filtered by the hardware and on shiny things from far away you'll see texture aliasing.

    The best way to combat this aliasing is to make smaller specular cubemaps. 64 or 128 per face specular cubes will work for just about any reflective surface that isn't a polished chrome ball, and will naturally alias less.
     
  17. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705
    Oof, yeah some of the Grave devs ran into this as well. Intel cards and some ATI cards used to do this, but since the great tree shader rewrite of 2014, these are all fixed. 1.07 will cure all that ails!
     
  18. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705
    Yeah, you'll want to lightmap your scene first and then render cubemap probes from that. As for the best way to lightmap a scene, I'd recomment Beast inside Unity if you have access to it. It can be hard to get externally generated lightmaps to show up in Unity.
     
  19. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705
    You'll have to change the materials manually. When you assign a cube to the material it overrides what is bound globally. If you set the material binding to null, it should also default to the global sky.
     
  20. yuenkay

    yuenkay

    Joined:
    Nov 12, 2013
    Posts:
    5
    Sweet. thanks for your continual support monkeyscience, looking forward to 1.07 :)
     
  21. lod3

    lod3

    Joined:
    Mar 21, 2012
    Posts:
    663
    Is it possible to save the compiled shaders for use in another project? I have a lot of separate projects on my hard drive that I'd like to use with Skyshop, but would rather not re-compile the shaders for each project if possible. Thank you.
     
  22. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705
    Best I've been able to find is select a shader in the project view, click "Open Compiled Shader" in the inspector, and save that file somewhere.
     
  23. vivi90

    vivi90

    Joined:
    Jul 28, 2010
    Posts:
    78
    Skyshop Import only takes 1 Minute 15 secs in Unity 4.5 for me. Ho boy, I'm so happy.
    Now I can't wait for Skyshop 1.07.
     
  24. lod3

    lod3

    Joined:
    Mar 21, 2012
    Posts:
    663
    Hadn't noticed 4.5 was out. I should be good then.

     
  25. ilya_ca

    ilya_ca

    Joined:
    Nov 19, 2011
    Posts:
    274
    Hello,

    Does it make sense to use regular non-HDRI skyboxes (e.g. AllSky) on mobile platforms instead of high quality HDRI images to improve performance? How big is the difference in performance?

    Thanks.
     
  26. kaz2057

    kaz2057

    Joined:
    Jan 18, 2011
    Posts:
    326
    Quote for new release :)
     
  27. tripknotix

    tripknotix

    Joined:
    Apr 21, 2011
    Posts:
    744
    Having an issue with skyshop shaders After Upgrading to Unity 4.5

    takes a very very long time to load a scene with those shaders.

    I'm only using Marmoset/Mobile/Vertex Color / Specular (not bumped)
    It appears that DESKTOP shader is just a fallback for the MOBILE vertex color shader.

    Test Device: Kindle HD 8.9 with PowerVR SGX544 @ 384 MHz

    05-27 17:28:36.046: E/Unity(17496): -------- Marmoset/Specular IBL
    05-27 17:29:17.398: D/Unity(17496): #extension GL_EXT_shader_texture_lod : enable
    05-27 17:29:15.788: E/Unity(17496): -------- GLSL error: Compile failed.
    05-27 17:29:15.788: E/Unity(17496): ERROR: 0:95: 'textureCubeLodEXT' : no matching overloaded function found
    05-27 17:29:15.788: E/Unity(17496): ERROR: 0:95: 'assign' : cannot convert from 'float' to '4-component vector of float'
    05-27 17:29:15.788: E/Unity(17496): ERROR: 2 compilation errors. No code generated.
    05-27 17:29:15.788: E/Unity(17496): (Filename: ./Runtime/GfxDevice/opengles/GlslGpuProgramGLES.cpp Line: 145)

    Update: i just tried setting the fallback to Diffuse, I now get this error to

    05-27 17:37:41.882: E/Unity(17928): -------- Marmoset/Mobile/Vertex Color/Specular IBL
    05-27 17:37:41.882: E/Unity(17928): -------- failed compiling fragment shader:
    05-27 17:37:41.882: D/Unity(17928): #extension GL_EXT_shader_texture_lod : enable
    05-27 17:37:41.890: E/Unity(17928): -------- GLSL error: Compile failed.
    05-27 17:37:41.890: E/Unity(17928): ERROR: 0:102: 'textureCubeLodEXT' : no matching overloaded function found

    Update 2:
    I just saw this right after one of the errors (it errors over 10 times)

    05-27 17:37:42.819: D/Unity(17928): textureCubeLodEXT or textureCubeGradEXT usage detected.
    05-27 17:37:42.819: D/Unity(17928): GL_EXT_shader_texture_lod extension is buggy on PowerVR drivers.
    05-27 17:37:42.819: D/Unity(17928): replacing textureCubeLodEXT->textureCubeLod and textureCubeGradEXT->textureCubeGradARB as a workaround.

    (I think this may have been why in 4.0 and 4.1 my game used to crash on PowerVR devices, and in 4.2 they must have forced some temporary fix for it. but in 4.5 theyve obviously took away that fix, but instead of crashing, it tells you whats wrong and why it happens and takes a long time to load the scene. )

    Update 3:

    After doing some Testing, it is definitely only happening with ALL of the Specular Shaders. I tested many shaders, including the Mobile Vertex Color Diffuse IBL, they all did not have issues compiling, except for the Specular Variations.

    In a Side Note, this error also occurs with Unitys Pre-Packaged Particles / Additive (Soft) shader. I'll have to post about that for them.

    Update 4:

    Wow here is some odd behavior, if i do not include the Specular shaders, but still include the Unity Particles / Additive (soft) shader, there is no errors on the soft shader anymore.... but previously you would get errors right after skyshops specular errors. Very strange behavior.
     
    Last edited: May 29, 2014
  28. Becoming

    Becoming

    Joined:
    May 19, 2013
    Posts:
    781
    Is it currently possible to use the box projection cubemaps on rooms that are rotated? Seems like the rotation does not work correctly but i hope its just me not knowing how to do it properly... also, how is it possible to have a global sky for the skybox and some dynamic objects and local sky objects for rooms without turning off the skybox from the main sky? I'm having troubles to switch between the skys in the editor. it looks like there is only one active sky at the same time.
     
  29. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705
    Thanks for the detailed report!

    TextureCubeLOD is used for mipmap gloss but is not supported by all hardware. Most iOS hardware supports it but a couple of early Unity 4.0 releases did not expose it. That was later fixed and definitely working in 4.3. Android has never exposed it because very few Android devices support the extension in hardware.

    What should be happening is Unity tries a shader with TextureCubeLOD references in it, fails to compile it, and falls back to a version of the shader with calls to regular TextureCube (second sub-shader in the same file). It's conceivable you're still seeing those error messages on the device even if the fallback is working properly. It should *not* be taking 5 minutes to load however, that's new.

    I'll do some digging.

     
  30. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705
    Yes, you should be able to rotate skies and their projection box along with them. You may need to recapture your cubemap after you've rotated the sky or it will look wrong.
     
  31. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705
    The overhead for sampling HDR skyboxes is quite low, a couple of extra multiplies to decode RGBM and apply Skyshop's exposure controls. But if you really want to squeeze for performance, every instruction counts and the skybox does fill the screen with a lot of fragments.
     
  32. tripknotix

    tripknotix

    Joined:
    Apr 21, 2011
    Posts:
    744
    commenting out
    //#define MARMO_MIP_GLOSS
    worked.

    i removed the 1st subshader just to be safe. Thanks for helping me solve the issue.
     
  33. maart

    maart

    Joined:
    Aug 3, 2010
    Posts:
    82
    is there an eta for the new version of skyshop?
     
    Tiny-Man likes this.
  34. Autarkis

    Autarkis

    Joined:
    Oct 10, 2011
    Posts:
    318
    +1 to maart:
    I'm really waiting to get all the cool box projected shaders :)
     
  35. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
    another + for maart
     
  36. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,065
    Is there a list of the new features for the release ?
     
  37. ilya_ca

    ilya_ca

    Joined:
    Nov 19, 2011
    Posts:
    274
    Hi, there seems to be a bug with the Marmoset Simple First Pass and Marmoset Terrain Diffuse shaders on Mac (targeting iPhone, OpenGL ES 2.0 simulation) - it fallbacks to the Marmoset Diffuse and to Nature/Terrain/Diffuse shaders accordingly. Removing the callbacks causes the "no subshaders can run on this graphics card" error.
    I'm using this shader for a mesh terrain generated with Terrain 4 Mobile.

    The problem seems to come from the following line:
    Code (CSharp):
    1. OUT.Emission = OUT.Albedo.rgb * diffIBL * ExposureIBL.x;

    Removing the diffIBL component from the line above makes the shader runnable.

    I replaced diffIBL with texCUBE(_DiffCubeIBL, N).rgb for testing purposes:
    Code (CSharp):
    1. OUT.Emission = texCUBE(_DiffCubeIBL, N).rgb;

    However replacing OUT.Emission with OUT.Albedo fixed the issue:
    Code (CSharp):
    1. OUT.Albedo = diffIBL * ExposureIBL.x;

    Adding the "* OUT.Albedo" component again made the shader non-runnable:
    Code (CSharp):
    1. OUT.Albedo = diffIBL * ExposureIBL.x * OUT.Albedo;


    Turning off OpenGL ES 2.0 simulation also fixes the issue, but this is not an option, because iPhone 5 doesn't support OpenGL ES 3.0. Is there a way to get a more detailed output to why a shader isn't compiled properly for OpenGL ES 2.0?

    Thanks!
     
  38. ilya_ca

    ilya_ca

    Joined:
    Nov 19, 2011
    Posts:
    274
    After a little bit more testing it turned out that adding
    Code (CSharp):
    1.  exclude_path:prepass
    to the surface shader #pragma line fixed the issue:
    Code (CSharp):
    1.     #pragma surface MarmosetSimpleSurf Lambert exclude_path:prepass
    Any ideas why? :)
     
  39. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705


    Skyshop 1.07 is live!

    Get it from the Asset Store now!


    Because this is a big release we've compiled a lot of new help materials and videos to get you started. Be sure to check out:

    Skyshop 1.07 Reference - Includes a quick-reference, getting-started guide, and a technical overview of what's new in 1.07. It also covers what you'll need to keep in mind, coming from Skyshop 1.06.

    New Tutorial Video Series - We've put up a 4-part video series on using the new features; everything from local skies and box projection to Shader Forge integration and new processing features are covered.

    GDC14 Demo Video - If you have not seen it yet, footage of our GDC14 demo, showing off all you'll now have tools for!
     
    Botanika and AaronClark like this.
  40. StarHunter32

    StarHunter32

    Joined:
    Feb 10, 2013
    Posts:
    99
    Congratulations on the new version. Really amazing!

    I'd like to ask. I'm currently working on a project for iOS with the previous version. Would it be wise to upgrade over 1.06?
    Thank you.
     
  41. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,446
    This is awesome!! You just solved a problem I was gonna run into for doing complex effects :)
     
  42. sjm-tech

    sjm-tech

    Joined:
    Sep 23, 2010
    Posts:
    729
    Really awesome! i must find some time to make some test..thanks.
     
  43. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705
    I would back up your project and try it. There are a few major changes in there, you'll have to add Sky Managers to all your scenes, etc. But if you disable all the new fancy features like auto-apply you should not see much of a change in behavior.

    Some things got a lot easier, for instance binding specific skies to individual objects now works through a component. No more setting up custom cubemaps in materials or applying things through scripts.

    You will also see performance improvements in the shaders from spherical harmonics diffuse and other bug fixes as well.
     
  44. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705
    One other change worth mentioning:

    The scripting API in Sky.cs changed slightly so you might see some compile errors. Nothing too difficult to resolve, most of them will be due to the Sky.cs public variable names being capitalized now. This had to happen for get/set + backwards compatibility reasons.

    Also, Sky.activeSky is no longer. To reference the global sky use the SkyManager class, the Skyshop 107 Reference page will have details.
     
  45. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,446
    I saw this particular error... it broke my scripts really badly until I removed the old Marmoset and redid everything. Now all is right as rain. And this will make setting up cubemaps for all of my objects a sinch. Another thing I want to ask is, what will happen to addons like Lightmap Extended, when Enlighten and Livenda's Spectra GI comes about...

    I also LOVE that when you bake a cubemap a few times, it emulates GI a bit... great stuff there :)
     
  46. KRGraphics

    KRGraphics

    Joined:
    Jan 5, 2010
    Posts:
    4,446
    Is it me, or are all of the cubemaps from the Skyshop contents missing? I can't seem to find them...

    EDIT: Found them.
     
  47. Tiny-Man

    Tiny-Man

    Joined:
    Mar 22, 2014
    Posts:
    482
    Praise The Lord!
     
  48. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    I'm sure this is a naive question, but is there a reason why the GDC demo wasn't available in this update? It's inspiring and educational, and I can't think of a reason why it couldn't be made available both of those reasons.

    -Steven
     
  49. yuenkay

    yuenkay

    Joined:
    Nov 12, 2013
    Posts:
    5
    omg all the sky blending stuff, is exactly what i wanted and didnt' even expect it to be in this update. We thought we would have to write something ourselves, this is amazing. can't wait to really dig in. man, i almost feel bad this only costs $120, it's such a steal.
     
  50. monkeyscience

    monkeyscience

    Joined:
    Dec 13, 2011
    Posts:
    705
    We talked about that internally quite a bit. All of the art content in that demo is from outside sources, and much of it is bought from the asset store. We can't really bundle any of that art with our own product and distribute it on the same store. We'd be reselling!

    It's a shame though, you're right. I'll try to come up with a cooler, shareable scene sometime.
     
Thread Status:
Not open for further replies.