Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

How do I achieve this effect?

Discussion in 'General Graphics' started by InsaneGoblin, Jun 6, 2017.

  1. InsaneGoblin

    InsaneGoblin

    Joined:
    Jun 2, 2013
    Posts:
    239
    I would like to have my objects to look like this. Looks like plastic, and I know those are super soft (and expensive) shadows, but that shader/texture is too nice.

    Any suggestions?

    upload_2017-6-6_19-7-45.png
     
  2. tcz8

    tcz8

    Joined:
    Aug 20, 2015
    Posts:
    504
    how about making a high res model extracting the normals and applying it to a low res model? Depending I your project you may try baking those shadows in a texture or manually editing the normals.
     
  3. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    If the goal is to mimic the image, forget about normal mapping. Just import the high res model.
    I think the shader isn't really anything special. What makes that image look good is the lighting and shadows.
     
  4. InsaneGoblin

    InsaneGoblin

    Joined:
    Jun 2, 2013
    Posts:
    239
    I'm afraid the scene is terribly complex (TLDR: low poly environment with cities, 5m faces in total, procedurally generated). Can't bake everything
     
  5. tcz8

    tcz8

    Joined:
    Aug 20, 2015
    Posts:
    504
    check this out for the lighting and shadows https://www.assetstore.unity3d.com/en/#!/content/64763

    Sadly it takes a lot of resources on higher settings. There is also another asset that gave a similar result with shadows but worked in screen space, but i dont remember the name.
     
  6. InsaneGoblin

    InsaneGoblin

    Joined:
    Jun 2, 2013
    Posts:
    239
  7. Ironmax

    Ironmax

    Joined:
    May 12, 2015
    Posts:
    890
  8. InsaneGoblin

    InsaneGoblin

    Joined:
    Jun 2, 2013
    Posts:
    239
    Most objects move, and the 3d scene can be rotated. Can't R2T AFAIK
     
  9. tcz8

    tcz8

    Joined:
    Aug 20, 2015
    Posts:
    504
    I think you will have to compromise and use clever tricks to acheive the look. Like high poly models from which you extract a normal, detail map, whatever map, etc and apply to a lower res model. A good example are those ridges on the roof, they shouldnt be in the model, use the maps and texture to output them. That's how big studios crank more details In a scene. In your case it's relatively low poly but all the curves are extremely smooth so your poly count isn't negligible, but the lightning is whats going to need the most work.
     
  10. tcz8

    tcz8

    Joined:
    Aug 20, 2015
    Posts:
    504
    Maybe an ssao asset could be part of the solution or some other screen space shadow system.
     
  11. InsaneGoblin

    InsaneGoblin

    Joined:
    Jun 2, 2013
    Posts:
    239
    I'm afraid SSAO is not a great solution: I use an orthographic camera to achieve a decent isometric look, meaning I can't use deferred lighting
     
  12. bgolus

    bgolus

    Joined:
    Dec 7, 2012
    Posts:
    12,329
    The look you're seeing is a combination of careful lighting on the box, a wide ambient occlusion, and very soft shadows. The last two are going to be very difficult to duplicate nicely, basically impossible with the built in features of Unity or official Unity assets.

    SSAO works with the forward rendering path as well, the difference is in deferred you have the option to apply the AO to only the ambient light, where as with forward it applies on top of all lighting since image effects can't just inject themselves into the middle of existing shaders.

    The super soft shadows you might be able to get something acceptable with something like this asset:
    https://www.assetstore.unity3d.com/en/#!/content/79454

    It would also be possible with custom shaders and "image effects" like code to calculate the SSAO to a separate render texture before the main forward pass and read that AO texture in the shader. However SSAO won't produce exactly the same as the above, for that you'd need an analytical or voxel based solution.

    SEGI, which is linked in an above post, is a voxel based solution that could produce something like what you're looking for, but that asset is deferred only. Another similar asset that is not yet released is HXGI which is supposed to work in forward rendering, though might not with an isometric camera...

    An analytical solution would require you to write it all yourself, as I can't think of any asset that does analytical AO. This was used extensively for the game Inside, which you can read a little about here on page 70-74.
    http://www.gdcvault.com/play/1023002/Low-Complexity-High-Fidelity-INSIDE

    And some articles for doing sphere and box AO:
    http://iquilezles.org/www/articles/sphereao/sphereao.htm
    http://iquilezles.org/www/articles/boxocclusion/boxocclusion.htm

    TLDR; It's hard
     
    theANMATOR2b likes this.
  13. InsaneGoblin

    InsaneGoblin

    Joined:
    Jun 2, 2013
    Posts:
    239
    Many, many thanks for your detailed response