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

Relief Terrain Pack (RTP) v3 on AssetStore

Discussion in 'Assets and Asset Store' started by tomaszek, Oct 22, 2013.

  1. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    I can submit it any moment, but maybe @Doctor06 first could give his feedback. If this is something else to fix I could include it right in RTP3.3n.

    Tom
     
  2. tcourbet

    tcourbet

    Joined:
    Oct 5, 2017
    Posts:
    46
    (I know that the Geom Blend Standard Shaders are currently not compiling in Unity 2018 but I have a question nonetheless.)
    I need to blend a material with an alpha cutout but none of the geom blend compliant shaders seem to support this out of the box. I've tried following the documentation to "make shader GeomBlend compliant" but I can't seem to figure it out...
    Check my terribly drawn picture for an example of what I need to do. Both the mesh with the cutout material and the regular mesh would need to blend with the terrain.

    How would I go about doing that? Am I missing something?
    Thanks!


     
  3. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    By default Standard shader (geom blend) works in fade transparency mode (because it is alpha transparent shader that is rendered over the underlying "terrain like object"). Also introducing cutout functionality to geom blend shader itself isn't that hard. But the question is how does it sould work like? Cutting holes in geom blend shader you'll make them revealing underlying object. At the bottom part where it's close to the ground you would see "ground". Otherwise it's black (I don't render terrain color on underlying object for areas that are fully covered by geom blend object) - you can see it when you disable geom blend mesh renderer (to see only underlying object). If such functionality (cutout at the bottom would satisfy you I cann add it somewhow to the standard geom blend shader). Otherwise I can imagine you could use it as kind of "2nd layer" geom blend (as separate mesh) with underlying object turned off.

    In any case using cutoff isn't necessary at all - we might simply rely on a shader that uses regular transparency. Any depth write operations really needed on your "root like" object? I can only imagine that using regular transparent shader might be not enough if you'd like to control transparency with vertex color as well (like it is geom blend shaders).

    Tom
     
  4. jashan

    jashan

    Joined:
    Mar 9, 2007
    Posts:
    3,307
    I'm running into this issue again:

    This is now on Unity 2017.4.10f1, I saw it on 3.3L, which I was using until about an hour ago but I have now updated to 3.3M and still see the same issue.

    To be more precise, when doing a StandaloneWin64 build of my game where the scene that does use Relief Terrain is not even included, the build fails with 2 errors. Those two errors, according to the console, are:

    Code (CSharp):
    1. Shader error in 'Relief Pack/Terrain2Geometry': invalid subscript 'instanceID' 'UnitySetupInstanceID': no matching 1 parameter function at line 488 (on d3d11)
    2.  
    3. Compiling Vertex program with LIGHTPROBE_SH INSTANCING_ON RTP_POM_SHADING_HI
    4. Platform defines: UNITY_ENABLE_REFLECTION_BUFFERS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING SHADER_API_DESKTOP UNITY_LIGHTMAP_RGBM_ENCODING
    5.  
    6. Shader error in 'Relief Pack/Terrain2Geometry': invalid subscript 'instanceID' 'UnitySetupInstanceID': no matching 1 parameter function at line 502 (on d3d11)
    7.  
    8. Compiling Vertex program with DIRECTIONAL DIRLIGHTMAP_COMBINED DYNAMICLIGHTMAP_ON INSTANCING_ON RTP_POM_SHADING_HI
    9. Platform defines: UNITY_ENABLE_REFLECTION_BUFFERS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING SHADER_API_DESKTOP UNITY_LIGHTMAP_RGBM_ENCODING
    There are a few strange things about this:

    When I double-click, Unity opens the file ReliefTerrain2Geometry.shader, at the correct line numbers (488 / 502) - but those sections are actually commented out:

    Code (CSharp):
    1. ENDCG                
    2. */ // AddBlend
    3.  
    4. // (used with tessellation)        <---- this is line 488
    5. /* TESS SHADOW PASS
    6.     Pass {
    7.  
    Code (CSharp):
    1.         #pragma domain ds_surf
    2.         #pragma multi_compile_fog  
    3.         #pragma target 5.0        <---- this is line 502
    4.         #pragma glsl
    5.         #pragma multi_compile_shadowcaster
    6.  
    When I select that file in the project browser, I also see those 2 errors. However, when I re-import only that shader-file, the errors are gone once the re-import has been completed. I have seen cases where doing a re-import would fix build shader compilations issues and I have already tried to solve it for this one - but unfortunately, as soon as I do the build, the error re-appears (until I do another re-import of that shader file).

    I don't have UnityCG.cginc in the project, RTP_Base.cginc is there, when I re-import that one, the error message also disappears.
     
  5. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    When doing a build Unity manages all possible shader variants that could be used, even if they are not used in RTP scene - they can be potentially used (keywords managed from scripting or Unity feature). Surface shaders compile with instancing, but actual shader variant (instanced) is not used until we try to use instancing. I'll check this. Lines reported are wrong (it's common case when using shader include files). I guess if you need it fixed quickly and you don't use RTP shader on mesh (Terrain2Geometry shader) you can simply remove it from the project. Apparently one of materials in your project that's being included (material with the problematic shader) has instancing turned on in material settings - Unity doesn't strip variant then.

    I'll try to fix it asap and include in new update (3.3n) together with other fixes. I'll most probably exclude instancing in shader itself (RTP terrain with instancing makes no sense).

    Tom
     
  6. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    From what I found it's kind of Unity surface shader compiler bug. Anyway RTP shaders for terrain are not supposed to realise instancing anyway, so we can disable it. Problem is that Unity documentation doesn't list #pragma keyword for surface shader to do it... Fortunately it is possible, but I found it on another doc page. It's named "noinstancing". So in every problematic RTP shader you can add "noinstancing" to the lines starting with "#pragma surface". I'll add this in the update which I'm about to submit now. I'm preparing package to work with backward compatibility up to U5.5.0 where noinstancing is not available. On such lower Unity versions compiler will give warning, but it shouldn't harm.

    ATB, Tom
     
  7. tcourbet

    tcourbet

    Joined:
    Oct 5, 2017
    Posts:
    46
    Hi, thanks for the answer!
    Actually you're right, I probably don't specifically need cutout, transparent might work too in my case. I'll try this out as soon as the geom blend standard shaders are compiling in 2018.
    About how it would work, I'm not sure if I understood everything you said 100% but I pictured it this way:
    (my cutout mesh is already a separate mesh)
    - alpha of the mesh is white: show ground blending
    - alpha of the mesh is black: no blending
     
  8. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    I've just submitted RTP3.3n
     
    docsavage likes this.
  9. jashan

    jashan

    Joined:
    Mar 9, 2007
    Posts:
    3,307
    Thank you, Tom - that is very much appreciated! I'm looking forward to the new version.
     
  10. botumys

    botumys

    Joined:
    Apr 16, 2009
    Posts:
    707
    My last scenery made with RTP for terrain shader :) :
     
  11. tcn5150

    tcn5150

    Joined:
    Dec 1, 2012
    Posts:
    26
    Hey Tom, was using the standalone Parallax-mapped triplanar shader just now and noticed that it seems to interpret UV's on a given object 180degrees rotated from how unity's standard shader (and Maya, etc.) does. For the test below, I applied the same map to the same object. The only difference was the shader used. (I used the texture as a global colormap in the rtp standalone material). Is this a known issue, or something I'm missing ? Thanks!

    Using RTP3.3m and Unity 2018.1.0f2
    -----
    standard_method.jpg rtp_method.jpg
     
  12. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    I wouldn't name it an issue. It's just different way of mapping. Unity standard shader uses texture uv's from mesh while global coloramp on triplanar standalone in RTP maps it w/o mesh uvs - mapping is realised by top planar world coordinates +x means +u +z means +v - look at axes description in scene view (XZ accordingly to UVs).

    Tom
     
  13. AndyNeoman

    AndyNeoman

    Joined:
    Sep 28, 2014
    Posts:
    938
    Is there any issues with RTP and the current unity version? (Unity 2018.2.7.f1) Everything looks fine in game (Editor) but builds have all white terrain. No errors showing.
     
  14. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    I'll make a build from example scene in U2018 and see.

    EDIT: Imported RTP3.3n into U2018.2.8f1 and made a build from my terrain example scene. It seems to work. What's configuration doesnt work for you @AndyNeoman ? Any textures missing in build (causing replacing them with defaultmwhite texture by Unity?)

    Tom
     
    Last edited: Sep 19, 2018
  15. AndyNeoman

    AndyNeoman

    Joined:
    Sep 28, 2014
    Posts:
    938
     
  16. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    W/o more info I have no clue about the issue. A screenshot and configuration you use in the project maybe. Making build in developement mode you can output some values into log file or better plug debugger then check all textures and values passed to RTP shader to compare if they stay intact with what's done in editor.

    Tom
     
  17. pneuro

    pneuro

    Joined:
    Aug 19, 2018
    Posts:
    15
    Hey, does uber shader has support for mobile platforms?
     
  18. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    Theoreticaly everything that supports GLES3 should be able to run it. Performance depends on features used (POM, weather effects might be a bit heavy for mid-end hardware). Tessellation requires GLES3.1+.

    Tom
     
  19. tcn5150

    tcn5150

    Joined:
    Dec 1, 2012
    Posts:
    26
    Thanks for the info Tom! I guess what I'm needing is to use the UV's from the mesh rather than using top planar world coords for the global maps. I'll need to dig into the shader code, it looks like..
     
  20. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    @tomaszek I just converted my terrain to RTP and I am trying to blend an object with the terrain. In demo scenes I had no issue with this, but now I'm getting some errors. My object has UBER shader on it and when I assigned the terrain as the object to be blended with, it threw the following errors:

    NullReferenceException: Object reference not set to an instance of an object
    GeometryVsTerrainBlend.MakeMeshCopy () (at Assets/ReliefPack/Scripts/ReliefTerrain/GeometryVsTerrainBlend.cs:1891)
    GeometryVsTerrainBlendEditor.OnInspectorGUI () (at Assets/ReliefPack/Editor/ReliefTerrain/GeometryVsTerrainBlendEditor.cs:112)
    UnityEditor.InspectorWindow.DrawEditor (UnityEditor.Editor[] editors, Int32 editorIndex, Boolean rebuildOptimizedGUIBlock, System.Boolean& showImportedObjectBarNext, UnityEngine.Rect& importedObjectBarRect) (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1253)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)


    ArgumentException: Getting control 0's position in a group with only 0 controls when doing Repaint
    Aborting
    UnityEngine.GUILayoutGroup.GetNext () (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/LayoutGroup.cs:115)
    UnityEngine.GUILayoutUtility.BeginLayoutGroup (UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options, System.Type layoutType) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUILayoutUtility.cs:299)
    UnityEditor.EditorGUILayout.BeginHorizontal (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Editor/Mono/EditorGUI.cs:7794)
    UnityEditor.EditorGUILayout.BeginHorizontal (UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Editor/Mono/EditorGUI.cs:7774)
    UnityEditor.EditorGUILayout.LabelField (UnityEngine.GUIContent label, UnityEngine.GUIContent label2, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at C:/buildslave/unity/build/Editor/Mono/EditorGUI.cs:6199)
    UnityEditor.EditorGUILayout.HelpBox (System.String message, MessageType type, Boolean wide) (at C:/buildslave/unity/build/Editor/Mono/EditorGUI.cs:7666)
    GeometryVsTerrainBlendEditor.OnInspectorGUI () (at Assets/ReliefPack/Editor/ReliefTerrain/GeometryVsTerrainBlendEditor.cs:139)
    UnityEditor.InspectorWindow.DrawEditor (UnityEditor.Editor[] editors, Int32 editorIndex, Boolean rebuildOptimizedGUIBlock, System.Boolean& showImportedObjectBarNext, UnityEngine.Rect& importedObjectBarRect) (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1253)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)

    I'm using Unity 2017.4.3f1 and the latest RTP and UBER. Any ideas?

    [EDIT]
    If I reset back to the original mesh, remove the Geometry Blend component, and do the process over again then I don't get the errors. However, the results are unsuccessful. There is no blending at all after hitting Autoblend from vertices distance. Also, trying to pain doesn't have any effect either.
     
    Last edited: Sep 29, 2018
  21. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    From what I can see in the mentioned code the error can be invoked in 2 cases. Blended object is null (look at the top of GeomBlend script inspector) that might be caused by blended object has missing collider (which is necessary here). Does you terrain have active terrain collider present?

    Tom
     
  22. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    I'll check these when I get a chance and let you know. Thanks for the tips.
     
  23. Unity-IBR

    Unity-IBR

    Joined:
    Feb 28, 2015
    Posts:
    23
    Hi @tomaszek,

    yesterday I had a terrain with a texture visible in the distance and I had your shader up close.:):):)
    I have painted the terrain in some parts to change the layer layout obtained with the coverage / compose tab. I have no idea what happened but now I no longer see the global texture of the terrain, both from near and far I see only your shader :eek:
    The parameters that I set are visible in the attached image.
    I hope you can help me understand what happened.

    PS, if I set the parameter Far Blend (Global Color Settings Tab) to the maximum, I get the texture but I lose your shader closely :(
     

    Attached Files:

    • 01.jpg
      01.jpg
      File size:
      779.2 KB
      Views:
      829
    • 02.jpg
      02.jpg
      File size:
      1.4 MB
      Views:
      768
    • 03.jpg
      03.jpg
      File size:
      528.2 KB
      Views:
      778
  24. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    No coverage settings part - is it terrain with RTP component? As your terrain reacts when dealing with parameters (global colormap blending) I believe it must be something with your setup. mid/far blending set to 0 means that only near distance (50m away + 30 fade distance) is blended with global colormap. Far distance starts at 100m (perlin noise tab) and fades in starting at 100 up to 100+200=300m. Still at such big scales with no globl colormap (far blend=0) you'll probably still see high MIP levels of detail maps (even though you've got tiling set to 80m). Without knowing real sizes of the terrain you do it's hard to advise here. I imagine it's big terrain chunk with city at the shore - so it's like 30-100km terrain?

    Tom
     
    Unity-IBR likes this.
  25. Unity-IBR

    Unity-IBR

    Joined:
    Feb 28, 2015
    Posts:
    23
    Ok, thanks Tom for the quick reply! Fortunately I found the problem. In LOD MANAGER there was no check on "No detail colors at far distance". Now everything works perfectly!
    I am attaching the image of my parameters in case someone need it in the future.
    My Terrain is 200 km x 200 km and I have created some cities on the coast (both with the Real World Terrain asset and with modeling in 3ds max).
     

    Attached Files:

  26. TJHeuvel-net

    TJHeuvel-net

    Joined:
    Jul 31, 2012
    Posts:
    838
    Are there plans to support the new instancing feature coming in 2018.3?
     
  27. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    It's on rendering side, so it should just work as far as we use heightmap/normalmap from texture (in instancing mode Unity relies on heightmap taken from texture). This is pretty similar to what we have in tessellation mode. I'll provide RTP with this mechanics as soon as U2018.3 will get final (not beta).

    Tom
     
    hopeful and TJHeuvel-net like this.
  28. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    Hi Tom,

    I was just playing around with a new project, in Unity 2018.2.8 currently, using the new HD Render Pipeline. I noticed when I created a terrain and tried to assign textures the terrain remained pink (i.e. no textures applied properly). So installed RTP thinking it might help, but the terrain still remained pink, even after compiling rtp shaders.

    I'm guessing the HDRP (high definition render pipeline) just doesn't work with terrains yet, is this correct? Should RTP be working with the HDRP or no? Thanks for any info.
     
  29. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    As most of AssetStore shader solution, RTP is based on regular rendering pipelines (forward/deferred) and written as surface shader. Unity doesn't provide "surface shader" HDRP functionality. Maybe there will be something like this in the future, but not now. AfAIK HDRP is still under active developement on Unity side, so they have to focus on polishing it before even thinking about integrating current stuff 9surface shaders) with new SRP functionality.

    Tom
     
  30. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    Ok thank you. Ya I guess I'll just have to wait to use the HDRP then.
     
  31. topofsteel

    topofsteel

    Joined:
    Dec 2, 2011
    Posts:
    999
    I'm curious what people are using to texture their terrain? Hand paint, procedural? You can control the coverage in RTP with masks, but these masks still need to be generated. What's your workflow?

    I'm also wondering what resolution are you trying to achieve? For example I have several 256x256 terrains (meshes actually) and 1024x1024 masks. But the result depends in the textures height maps to some extent.

    I'm trying to improve quality, thank you.
     
  32. RAgnarFrayer

    RAgnarFrayer

    Joined:
    Jul 9, 2017
    Posts:
    6
    Hi @tomaszek I've bought your great asset pack today.

    I am trying to use it with Ultimate terrains voxel engine, but generated terrain is all white.
    I followed uTerrains documentation https://uterrains.com/doc/#Relief_Terrain_Pack_RTP3_integration

    I could not make it work after few hours testing and studying documentations.

    Did I miss something? Please can You help me?
     
  33. RAgnarFrayer

    RAgnarFrayer

    Joined:
    Jul 9, 2017
    Posts:
    6
    Ha! Everything was snow xD Sorry :) Also light was too bright..
     
  34. AndyNeoman

    AndyNeoman

    Joined:
    Sep 28, 2014
    Posts:
    938
    Anyone know of any tutorials or videos explaining how to use RTP and Sectr? Or any info on RTP and multiple terrain sections?

    EDIT. I have manually added RTP component to each of the 'split terrains' This seems to be working but if there is a better method please let me know :). You have to make sure the material is set too.
     
    Last edited: Nov 20, 2018
  35. zulubo

    zulubo

    Joined:
    Mar 1, 2014
    Posts:
    4
    Hey, I'm wondering if it would be possible to not need a directional light in your scene to render terrains. Some of my game is underground and directional lights don't make sense in caves, so it would be nice if it wasn't necessary to have one in my scene.
     
  36. AndyNeoman

    AndyNeoman

    Joined:
    Sep 28, 2014
    Posts:
    938
    I know questions regarding RTP and 2018.3 terrains have been asked but I'm still confused about what works and when full support will come. I tried it in 2018.3 yesterday and everything seemed fine until i clicked instanced terrain. Obviously that is one of the main benefits and Im wondered when or if that will be supported or if there are changes to the shader I can do to get it working.
     
    Last edited: Nov 21, 2018
  37. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    You need to render the terrain for a camera at least once. This is where this single directional light will be applied (in forward, in deferred it doesn't matter because lighting decoupled from drawing objects). So - you don't loose anything. In fact having single directional light or not makes no difference from rendering point of view.

    Tom
     
  38. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    Yes, instanced terrain uses render textures to gather vertex positions of terrain mesh in vertex shader and normals in pixel shader. I need to implemnent this functionality once 2018.3 comes. Could do it right now as probably nothing will change in the behavior on Unity side, but I'd rather wait a bit. You can think of it as of RTP's tessellation feature but handled dynamically on Unity side - so you can paint terrain heights and RTP uses GPU side resources for rendering without necessity of creating dedicated height/normal texture which will be supa cool (as every dynamic stuff is).

    Tom
     
    JAMiller, lawsochi and AndyNeoman like this.
  39. AndyNeoman

    AndyNeoman

    Joined:
    Sep 28, 2014
    Posts:
    938
    This feature is going to be huge. The terrain is my biggest resource hog at the moment. Even just using 2018.3 is an improvement but once you add the instance im sure there will be freedom to take the look of the terrain to another level. Cant wait to see what you do with the headroom.
     
  40. Binary42

    Binary42

    Joined:
    Aug 15, 2013
    Posts:
    207
    So, did anyone figure out how to set up RTP with World Streamer, 250+ tiles and floating origin, yet?
     
  41. llJIMBOBll

    llJIMBOBll

    Joined:
    Aug 23, 2014
    Posts:
    578
    a year or so ago I got it working, you need to have a lod manager child to each terrain which is in a new scene
     
  42. Binary42

    Binary42

    Joined:
    Aug 15, 2013
    Posts:
    207
    Killing the popup is not that hard. ;) But how did you get all the maps rendered and settings applied to eacht tile (i have 250+) and what did you do against the jumping paralax when a terrain tile moves to the origin?
     
  43. Zaphier

    Zaphier

    Joined:
    Jul 20, 2015
    Posts:
    2
    Hi,
    since 2018.3 is released, is there an ETA for supporting "draw instanced" for Terrains with RTP?
     
    JAMiller likes this.
  44. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    Rough estimation - somewhere at the beginning / mid of the January 2019.

    ATB, Tom
     
    IsDon likes this.
  45. supreem_creator

    supreem_creator

    Joined:
    Jan 14, 2014
    Posts:
    11
    Hi Tom,

    Please keep us up to date on your progress regarding "draw instanced" support. We can't wait to see the gains we will get from this!
     
  46. Alex3333

    Alex3333

    Joined:
    Dec 29, 2014
    Posts:
    342
    Does your asset work in the new version? unity 2018.3
     
  47. supreem_creator

    supreem_creator

    Joined:
    Jan 14, 2014
    Posts:
    11
    I have a large project and RTP worked right out of the box with 3.3n however you can not enable "draw instanced" so we won't see the benefits of their terrain optimizations until it supports that.
     
    Alex3333 likes this.
  48. Thirias

    Thirias

    Joined:
    Mar 1, 2015
    Posts:
    9
    How can i Remove RTS from my Scene when i think i will dont use it any more?
     
  49. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    Sorry to hear. Just remove LOD_manager game object and Relief Terrain script from terrain. Then in terrain settings set material to built-in. This removes RTP functionality.

    Tom
     
  50. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,862
    I've just submitted Unity2018.3 package version. It's still marked 3.3n, but in this specific Unity specific version we can handle instanced drawing terrain mode. After installing package upgrade make sure you have verinfo.txt file that reflects it (should says U2018.3 compatible).

    Notice, that Unity can not handle tessellation together with instancing for surface shaders, so that intancing is usable only when we don't use tessellation. Otherwise it should just work now. Instancing mode also features global normalmapping by default (as Unity provides both heightmap and normalmap for shader automatically).

    ATB, Tom