Search Unity

Relief Terrain Pack (RTP) v3 on AssetStore

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

  1. AndyNeoman

    AndyNeoman

    Joined:
    Sep 28, 2014
    Posts:
    872
  2. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,747
    Installing RTP3.3p on Unity 2018.4.1f1 I can't reproduce the issue within example scene. I can suspect there might be something wrong with other parameters in your setup. Please check other parameters like combined perlin texture, or can you verify detail normalmaps combined are correct? Because I can't basically see any ambient lighting on your screenshots. Snow level depends on normals - that's why I suspect there could be something wrong with it.

    RTPSnowTest.jpg
     
  3. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    300
    Installing RTP 3.3p into Unity 2018.4.11f1 on a Mac, in a clean/fresh project (only contains Voxeland & editor pack for virtual world I build content for), I'm getting this error message:

    Assets/ReliefPack/Scripts/ReliefTerrain/GeometryVsTerrainBlend.cs(694,12): error CS0121: The call is ambiguous between the following methods or properties: 'NormalSolver_by_CharisMarangos.RecalculateNormals(UnityEngine.Mesh, float)' and 'NormalSolver.RecalculateNormals(UnityEngine.Mesh, float)'

    Any ideas?
     
  4. IsDon

    IsDon

    Joined:
    Feb 27, 2015
    Posts:
    28
    Looks like you have a modified script (the one with suffix _by_Charis...) - You should rename one of those 2 script files and see how it looks. They should both give the same output, but it depends why the modified script was written and how widely tested it is. I'd try renaming the extension on the modified one and see if you get compile errors, then try renaming just the original script and see how it performs. Ideally just having one removed will solve your issue and work without issue, but there may be requirements for the modified script in Voxeland, its hard to tell.
     
  5. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    300
    I haven't modified anything. The project was relatively clean and recent, fresh download from the asset store.

    I've also tried installing RTP in a brand new/clean Unity 2017.4.33f1 project. Very simple - created new project, and downloaded from Asset Store. Two un-clearable errors. From what I've gathered in earlier posts, Unity 2017.4.x requires RTP 3.3m or earlier, but I have no way of getting that. I've had RTP for years, but don't manually keep an archive of all previous version downloads of assets, and the machine is periodically wiped. Is there a way to get the Unity 2017 compatible version?
     
  6. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,747
    Make sure you have Unity package cache cleared on your HD. Then download RTP from anything ranging Unity5.5-2018.2. AssetStore is supposed to give you suitable version - verinfo.txt signature should be "RTP3.3n for U5.5 & U5.6 & U2017 (U2018.1.0f2 checked)". There are only 2 packages available now. RTP3.3n has been forked for Unity2018.3 as Unity introduced too many differences, instanced terrains, etc. - handling everything within single package would be very inconvinient for me. So - RTP3.3n is available up to Unity2018.2. RTP3.3n and higher is available for U2018.3. Updates for versions n to p are Unity2018.3 related.
     
  7. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    300
    That worked, thanks!
     
  8. Migueljb

    Migueljb

    Joined:
    Feb 27, 2008
    Posts:
    453
    I have no clue why but everytime I add RTP to any terrain it disables the Indirect Multiplier on the directional light? It's never done this before but if I take RTP off the terrain and go back to normal diffuse or specular lighting for the terrain material the Indirect Multiplier is activated again. Is it by chance blocking that connection on the realtime GI bake from Enlighten. Im using latest RTP and unity 2018.4.4f1. Been battling this for over a day now need to get this solved.
     
  9. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,747
    I've just installed Unity 2018.4.4f1 and RTP3.3p. Can't reproduce the issue on the example scene. I can control main directional light indirect intensity - interactively in realtime GI mode - see screenshots. Can you check it on fresh project and my example scene? There must be something different in yo9ur setup then. I don't explicitly affect any Unity's light property nor block it.

    RTP_indirect_mult1.jpg
     

    Attached Files:

  10. micuccio

    micuccio

    Joined:
    Jan 26, 2014
    Posts:
    120
    Hi There!
    I am trying to use RTP for Tessellation but when I recompile the shader including the Tessellation option, the terrain disappears and I get the following errors:

    upload_2019-11-22_22-59-35.png

    Could someone please help me?

    Thanks in advance,

    Dom
     
  11. Dragonarkon

    Dragonarkon

    Joined:
    Jun 4, 2017
    Posts:
    5

    Attached Files:

  12. Dragonarkon

    Dragonarkon

    Joined:
    Jun 4, 2017
    Posts:
    5
    If you are looking at this I found out why it happened, it was because I used simplex noise, once I swapped to perlin fractal it was great. Has nothing to do with RTP 3.3
     
  13. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,747
    Check terrain instancing in Unity terrain settings. Should be turned off. With tessellation you cn use high pixel error and ask shader to refine terrain shape via tessellation. This brings down CPU usage so that instancing is basically not that much important feature.
     
  14. akareactor

    akareactor

    Joined:
    Apr 6, 2015
    Posts:
    70
    Hi, Tom.

    What would you recommend to make an auto transparent mesh blend, like hand made middle zone #1? My tracks are very long so handy blending is boring :)
    rtp blend mesh question.jpg
     
  15. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,747
    Currently RTP can provide you with autoblending at "sticked" geomblend mesh edges only. To introduce any automation you can do it via scripting as well. Blending info is stored by default on .a channel of vertex color. So it's pretty possible and not that much complex to make a script that would take underlying and overlying geom blend mesh and affect vertex colors .a channel here and there in relation to your demands.
     
    akareactor likes this.
  16. Migueljb

    Migueljb

    Joined:
    Feb 27, 2008
    Posts:
    453
    Any Idea when you think HDRP support will be coming and which version of unity you plan on supporting for HDRP?
     
  17. akareactor

    akareactor

    Joined:
    Apr 6, 2015
    Posts:
    70
    Hi, there! Got 2 stupid questions (RTP3.3o for U2018.3):

    1) Recompile shaders is very long - took about 20 minutes or more. What can I do with this issue?
    2) ClearAuxTerrainTextures.cs runs automatically or I should use it manually?
     
  18. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,747
    Still no release date. HDRP is still actively evolving. Even LWRP which Unity once announced to be "final/production" state went into yet another solution named URP... I've got ambitious plan to finish next big RTP iteration where SRPs will be must, but until this happens I'll probably simply add SRPs handling for current RTP state. It's so hard to give promises here as I can't really make living out of AssetStore I need to develop for other clients which can slow down (like it currently does) AssetStore products for some time. I hope I can get back overhaul my products soon (matter of few weeks where I can back working on this).

    Anyway - RTP/UBER are too nice products to not have SRP support on them thus I'll definitely want to introduce it at some point (i.e. not abandoning it -built-in pipelines are not that bad in the end but everything seems to go for SRPs - that's the future trend for Unity AFAIK).

    Tom
     
    Last edited: Dec 5, 2019 at 7:59 PM
    hopeful likes this.
  19. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,747
    1) Whoa - what hardware (CPU/HDD) you're on? It is also related to set of features requested. On my side it takes not more than 2-3 minutes. Fortunately as soon as you decide on feature set to be used you just don't need to recompile stuff anymore. But I can feel your pain when you try to play with RTP's features to get familiar with it... I promise next RTP iteration won't require superheavy recompilation process (basically no recompilation at all although shaders will introduce a ton of variants thru #pragma shader_feature and #pragma shader_feature_local).
    2) ClearAuxTerrainTextures.cs ralies on OnPostprocessScene handler - it should get called automatically by Unity when you make a build.
     
  20. akareactor

    akareactor

    Joined:
    Apr 6, 2015
    Posts:
    70
    I got Acer Aspire notebook with Intel Core i3-4010U (3M Cache, 1.70 GHz) and SSD WD Green (https://ssd.userbenchmark.com/SpeedTest/377351/WDC-WDS240G2G0A-00JH30). Unity works quite fast, and my usual full build takes from 6 to 8 minutes (I don't even have time to tea break :)).
    A default RTP (on the clean project, just downloaded from assetstore) compiling long time too. In details: when I press button "Recompile shaders for given feature set", Unity hangs for a while, but still in the end, a compilation progress-bar appears in the last 4-5 minutes.
    The reason may lie inside the Unity cache, it's hard to guess. I'm afraid to clean cache and Library folder to re-import all assets, because it will take several hours.

    How can it be? I tried check/uncheck "Global normal map", "Far dist normals from UV blend" and other params in _RTP_LODmanager, there are no changes without recompilation.

    It sounds cool, I shall wait!

    Btw, another question on the attached screenshot. How to reach a blending from a "spelt flour" normals on the near distance to "craterized" surface on a far distance? A routing works only for diffuse maps, thus I tried to use a craters normal map instead Perlin normal map to make a screenshot (I love this hack :)).
    Moreover, the Perlin normal map scale on the base terrain tile is not suitable for ultra-long distance tiles. Moving ultra-distance tiles to another hierarchy is not working due globalized scale parameter. Should I copy a _RTP_LODmanager object to another hierarchy too? RTP blend normals.jpg
     
    Last edited: Dec 6, 2019 at 8:36 AM
  21. tomaszek

    tomaszek

    Joined:
    Jun 18, 2009
    Posts:
    3,747
    Shader compilation results is cached in separate folder (Library/ShaderCache). You can delete it w/o neccessity of reimporting whole project. It probbly won't help with compilation time (rather the opposite), but I sometimes use it as ShaderCache folder can grow to enormous sizes after some time of working and recompiling shaders (several GBs!).

    LOD manager object is strictly global one, grouping terrains in hierrchy is different thing - separately grouped terrains have their own set of textures and parameters (but not features).

    In your particular usecase blending between near/far distance might be problematic. Lunar environment lighting exposes very strong contrasty bumps/shadows. UV blend routing indeed operates on diffuse colors only. Even though you select "Far dist normals from UV blend" checkbox it will introduce detail noramls at far distance but without routing. If you're shader coding aware or just brave one, you can modify this behaviour yourself:). In RTP_Base.cginc (I believe you're using just 4 layers setup) look for:

    Code (csharp):
    1. #if defined(RTP_UV_BLEND) && defined(RTP_NORMALS_FOR_REPLACE_UV_BLEND)
    It should be somewhere around line 5148 depending on RTP version. RTP_NORMALS_FOR_REPLACE_UV_BLEND define is equivalent for "Far dist normals from UV blend" feature (selected/compiled by LOD manager). The far detail normal stays within 4 lines calculating "n.xy". If you gonna use just a single layer as far dist normal replacement write it like this (replacemenet for these 4 lines):

    Code (csharp):
    1. n.xy = UNITY_SAMPLE_TEX2D_LOD(_BumpMap01, float4(_INPUT_uv.xy*MixScaleRouted0123.x,  mipN.xx)).rg;
    So - we sample combined _BumpMap01, channels .rg (layer 0, for layer 1 would be .ba) with accordingly scaled uvs (_INPUT_uv.xy is just regular detail scaled uvs).

    Surely I give you no gurantee when you start messing around this code - so beware (don't ask me - "Tom shader doesn't compile or doesn't behave like advertised"). From such point it's your adventure, but I can at least give you a hint where to find a place to modify shader behaviour ;).

    Tom
     
    IsDon and akareactor like this.
  22. akareactor

    akareactor

    Joined:
    Apr 6, 2015
    Posts:
    70
    Yes, it's really works!

    I decided to make it hotter and proceed to 3th level of detail (you can see on screenshot, from left to right, accordingly - near distance from sandy layer, craterized far distance from perlin slot and ultra distance from global detail normal of layer #0).

    An experiment was succesful, I think :) RTP three levels LOD.jpg
     
    IsDon and tomaszek like this.