Search Unity

How can we boost specularity using the Standard Shader?

Discussion in 'Shaders' started by PixelRouterVR, Oct 8, 2015.

  1. PixelRouterVR

    PixelRouterVR

    Joined:
    Jan 6, 2014
    Posts:
    20
    I know the Standard shader is "physically based" and that means it is "energy conserving", but there are some cool effects I've been getting using Marmoset Skyshop shaders that I'd love to be able to achieve in Unity 5 without Skyshop.

    In particular, in Skyshop, you can boost specularity well beyond 1.0, and this gives an effect somewhat like we see in the Unity 5 standard shader when we boost Emissive beyond 1.0 and the color picker shows us we are now in "HDR" land.

    It may not be physically correct, but it looks awesome, especially in conjunction with a Linear/HDR workflow and Bloom.

    The closest thing I see in Unity 5 is the "Reflection Intensity" slider in the global Lighting panel. This is also clamped to 1.0, but it looks like it would give a similar effect if we could boost beyond 1.0. However, it's global, and I want to be able to do this on a per material basis.

    Here's a short video showing the effect I'm getting with SkyShop and that I want to replicate with the Standard Shader.

     
  2. chrismarch

    chrismarch

    Joined:
    Jul 24, 2013
    Posts:
    472
    For the case in your video, try making Reflection Probe whose bounds envelop the object you'd like to have increased specularity. Set the Reflection Probe Type to Custom and point the cubemap to an EXR (HDR) file that you will create with bright colors. Set the Culling Mask to the layer of the objects you'd like to affect.

    If you want non-pbr effects from an unmodified pbr shader, a technique like this, where you hide a bright object or light whose affect on the scene is compatible with pbr is a way to go.