A Unity ID allows you to buy and/or subscribe to Unity products and services, shop in the Asset Store and participate
in the Unity community.
Discussion in 'Assets and Asset Store' started by tomaszek, Oct 22, 2013.
I Fixed it , just recompiled shader
Having issues with Terrain2Geometry workflow:
Exported terrain as obj
Optimize in Max
Re-import to Unity as fbx
Apply Terrain2Geometry shader
Apply Engine script to mesh
Apply texture layers, global maps, etc.
Splat map does not apply textures according to control maps
Is this a UV issue?
*Tessellation not enabled
*Global normal map not enabled
EDIT: [SOLVED] Yes, it was a UV issue
I am currently using RTP in unity 5.4 and everything looks fine. It worked in 5.3 and 5.2 as well. The camera is set to render in deferred mode and uses linear color space and HDR.
I have upgraded to Unity 5.6.0f3 and upgraded to RTP 3.3g and I get black textures in 8 layers in first pass when the weight of the splats 5-8 is close to or is 100% (not sure of the % that it starts to turn black). This also happened in Unity 5.5 but I did not upgrade to 5.5 but now I need to upgrade to 5.6. Changing to no overlap does not fix the problem. I have played around with some other settings and recompiled the shaders but nothing got rid of the problem. Vulkan is not enabled and I am not using instancing. I am using d3d11 on windows 7. Same issue on windows 10 (only OSes I have tested). one computer has a GTX960 and the other a GTX1060. I am not using geom blend objects (at least I don't think I am). I am only using RTP for the terrain. I am using the latest Alloy for object materials (although in my test scene there are no objects). I am using Advanced Foliage for grass altough there is no grass in my test scene. I am using Aquas for water and Time of day. I have one light in the test scene (a directional light for the sun). I turned off all the screen space effect components on the camera as well. The distance from the camera does not matter. It looks the same far away and close up.
My workflow is a bit different from the normal workflow. Our game is very dynamic. We have multiple atlassed textures sets that can be used in the same scene (we only have one scene and build and load the levels dynamically). I cannot prepare the textures in the unity editor (the user could make their own atlassed textures and add them to the game at runtime). All of our terrain painting and editing is done at runtime. No baking is done in the unity editor. To get this to work I edited the RTP code to take out the #if UNITY_EDITOR and commented out the editor specific code (stuff like importing textures assets and making them writable). Then I call this code at runtime to prepare RTP. These include the methods PrepareNormals, GetGlobalSettingsHolder, RefreshTextures (and others) and I set the combined textures manually inside RTP. I do not let RTP generate the atlassed textures. This works in 5.4 and before. I imported 3.3g and redid these changes in the new 3.3g scripts to make sure I got the latest RTP stuff.
It looks like something is going wrong with the rendering of the second atlas texture (although the color atlasses, combined normals, and combined bumpmaps look correct in the inspector when I pause at runtime).The shaders compile without any errors. My question is do you have any idea what is going wrong or what I am not doing that I need to be doing?
I saw something about fixing black terrain with lightmapping but we do not use lightmaps for anything. Everything in our scene is dynamic. Nothing is marked static. In 5.5 I saw this when dragging and painting terrain inside the unity editor (not at runtime) but it would be fixed after you stop painting (on mouse up) but was always broken at runtime.
Thanks for any clues you can give me.
Here are the pics:
I think there's some conflict with some deprecated code? I get these errors and no matter what I change in the LODmanager the terrain is always white:
My project is set to DX11
I tried reimporting RTP, no better and it throws up these errors:
I had this problem as well. I had to delete the entire RTP directory, close unity, open unity and the project and then re-import RTP into a clean directory then close unity and reopen it again. Then I recompiled the shaders through the LODManager. At least that fixed the Unity_GlossyEnvironment issue and a couple other errors. I didn't see the LambertTerm errors but it might be that my RTP shader setup is a bit different from yours.
hmm i have already tried that maybe i should just keep screwing around till it works then go from there. Hard to find the issue though i've been trying things all day to no avail thanks for the help though
To be sure that asset taken from AssetStore is really RTp3.3g look at verinfo.txt file included in ReliefPack. By simple comparison I created frash project in U5.6 and installed RTP3.3g. On example scene set LOD manager to the same set of features like above and recompiled script. Seems that everything works. Maybe you could take a closer look at control maps (coverage) if they are correctly constructed / passed to the shader ?
You might not need to remove all ReliefPack, only its shaders folder and reimport RTP3.3g (files removed from newest RTP interfere). Anyway - if you already removed ReliefPack from your project and reimported it again things whould work. Make sure it really 3.3g (verinto.txt included). Sometimes Unity gives incorrect package when downloading from AssetStore (remove package cache on HD first which helps). After importing "clean" 3.3g - select LOD manager and recompile shaders.
Hey all! I am using RTP and TerrainComposer 2 and was wondering what is causing this. Essentially certain textures have pretty much outlines around them, and if you looks close at them they're all... well Idk how to describe the second picture lol.
hi mate I belive thats the heightblend AO slider if I remember correctly. have a look at that.
also if that doesnt fix it try unticking sharpen heightblend edges at the bottom of the lodmanager. going from memory here sorry if this isnt the fix you need
Ok making progress I think but now I cant get the terrain to link to the shader, in fact it looks like every shader has died on me now. The only thing I did was remove Relief terrain from the project and import 3.3g:
This is either heightblend "fake" AO managed globally in RTP/Settings/Main or per layer. Or you need to upgrade to 3.3g where this issue has been fixed (it happens with 8 layers in 4+4 mode).
Remove material from Unity terrain settings - it will get rebuilt by RTP when you select/deselect terrain. Of course in case you've got RTP shaders compiled & working.
Hi i've tried that multiple times now and its not working. I keep seeing "undeclared identifier 'LambertTerm' in errors and I dont know what that means
Still it seems like not correct version of RTP vs. your Unity version. Or it might be plaform problem. Are on OpenGL (Mac) ? I tested 3.3g vs. glcore profile on PC and it worked. Make a test - fresh project in your Unity version (U5.6?). Redownload RTP from asset store there. Open example scene. Does it work ? Look at verinfo.txt file in ReliefPack and check the version. Sometimes users get wrong version downloaded from AssetStore. Clear unitypackage cache then before redownloading package from AssetStore. Because I still see GlobalIllumination.cginc issues listed.
I activated tesselation on my terrain and rendered a height-normal texture which I then applied in the global maps section and reapplied height texture stuff.
From what I understand that's all it really takes to use tessellation?
However in some sections of my terrain, I just sort of 'fall through' because the mesh collider and the graphics don't match.
I've tried googling the issue but didn't find any solutions.
You can see the player standing waist deep in dirt, and a box (with a rigidbody component) that is actually under the terrain.
How can I fix this?
still no luck, this is in the Terrain2Geometry example scene. on the right it says its the correct version, but nothing I do is working.
It says RTP3.3g for U5.5 & U5.6 (submitted from Unity5.5.0p3)
So for the control maps I am assuming you mean controlA and controlB in relief terrain? When I paint I write using TerrainData.SetAlphamaps(). I added a call to ReliefTerrain.GetControlMaps() after I paint but nothing changed. Stepping through in the debugger it looks like GetControlMaps is assigning controlA and controlB correctly from the terraindata alphamap textures. I don't set any coverage info (I keep everything default). I also checked to make sure that the alphamap values I write always add up to 1 (sometimes 0.999998 due to floating point rounding errors). I did a test where are wrote out controlA and controlB as PNG files and from what I can tell they look ok. When I paint the 8th texture the PNG for controlB has an alpha of 255.
For what I am doing the original unatlassed layer textures are placeholders. I set the atlassed textures explicitly. This is why in this screenshot the layer textures look different from the atlassed textures in my previous post.
I create the Terrain, TerrainData, and ReliefTerrain classes at runtime and I use a preset I saved from a previous version of RTP to load my global settings. I don't know if that can cause a problem. I create the alphamaps at load/creation time (I don't save out the control maps to files, they are embedded in the level file). Do I have to have the source_splat stuff set up as well? Do I have to read the coverage info from a texture file?\
[EDIT] Solved. So it appears something about the shaders were messed up. I set stuff up in a separate project, compiled the shaders and then copied the shaders over to my main project and now it works for some reason. (I copied over ReliefTerrain-AddPass ReliefTerrain-FarOnly, ReliefTerrain-FirstPass, RTP_AddBase, and RTP_Base).
Thanks for the responses.
Is it possible to use a shader like the Bonus Shader/WaterShader_2VertexPaint.shader and use vertex alpha to have transparent edges on my mesh.
It is a bit of an edge case but I need this shader to fade to transparent at the edges, either with an additional texture map or vertex colors - alpha.
Thank you in advance.
Thank you, yes I need to update to the latest 3.3g. Good to know this issue has been fixed and it's not just me
Edit: I got it! Upgrading anyways but before I upgrading I went to the _RTP_LODmanager and checked "8 LAYERS in first pass" under General options under "First Pass (4 or 8 layers)"
Please contact me via PM, we might need to look into your setup together via screenshare. Terrain is pink (eh, too bad - I believe we'll solve it though), but I see shader that generates errors is _not_ RTP one - it doesn't include vegetation shaders (grass shader errors in your console output), so it's something more to upgrade/fix to get your project working again.
You could take a look at configurable shaders. I included up to 4 layers shaders for geom blending (so in edge ase RTP shading could be used as geom blend overlay on the top of regular terrain). Geom blend shaders are just like this - using alpha vertex color to make some parts of object transparent (and blend edges together with underlying terrain).
I'm having the same problem nixtwiz had a few months back. Changing Unity's Quality Level at runtime seems to lose some reference(s). I'm surprised more people aren't reporting this issue. I tried the solution you suggested to nixtwiz which was:
-Try to make terrain material as an asset.
-Use ReliefTerrain-FirstPass.shader for it.
-Attach it to terrain.
-Call reliefTerrainScriptInstance.globalSettingsHolder.RefreshAll() after changing Quality Level.
That doesn't seem to help though. Do you have any more insight on this? Here are before and after screenshots:
I remember such problem has been already reported. Do you use atlases (8 layers mode or explicit atlasing for 4 layers) ? Try to save atlas so it's not scene object. You might check the same issue on the example scene. If it doesn't work I'll look into this here.
I only have 4 layers and I don't have the "Use color atlas" option checked. I'll try some things including your example scene suggestion and let you know what I find.
Hi, I just started using the cool tessellation feature. Unfortunately I do get some visible seems at sloped terrain cell edges. I'm on win10, linear, deferred. Only happens when turning on tessellation. Before I post all I have tried I just want to hear if this is a known issue that has a straight forward solution Thanks
Can you post a screenshot ? There 2 types of problem that might occur:
1. visible tearing at edge between 2 separate terrain objects - try making both POT and NPOT height&normals texture to check which one works better. I believe I double checked this feature, but maybe some differencies appeared recently in newest update (Unity vs. RTP).
2. single terrain is drawn with multiple "submesh patches" - you can observe it thru frame debugger how terrain is rendered. Although we don't have access to terrain mesh object, Unity terrain engine does the job in mentioned steps. Unfortunately subsequent submeshes of single terrain seem to not be 100% the same at vertex positions. Difference might be very, very small still it produces single pixel gaps between patches. There is nothing that I can do at shader level (using Unity terrain engine rendering pipeline), but simple workaround is to draw dark quad below terrain to fill these pixel gaps - in most cases it's quite enough that we avoid skybos bright pixels to be seen thru terrain.
I'm just using one terrain
One terrain texel = 2m
Terrain heightmap resolution = 2048
RTP normal & heightmap texture resolution = 4096
I tried different reolutions both 2^n and (2^n)+1
After upgrading a project from 5.4 to 5.5 (I *think* the problem began then), I've noticed that shadows are not cast on RTP terrain within a certain distance of the camera. See comparison screenshots, with default Unity terrain shader and RTP -- the cube casts a shadow in the former (left) but not the latter (right). On the latter, there are shadows starting about 6-8m from the camera, but no closer -- unless I force Base Map Dist. to zero. Then shadows appear on RTP terrain right up to the camera's near clip, and if I slide that up/down from zero, then the shadow line moves accordingly. Of course at runtime, that value is reset to some larger value. Did I miss some special requirement for 5.5, or is there a way to fix this?
(Other meshes receive shadows just fine.)
(I've got RTP3.3e for U5.5)
Dave, upgrade to 3.3g it's also submitted from U5.5 and fixes a few issues as well. For shadows - I'm not sure what might be the problem as realtime shadows are rather on the Unity side in regards to RTP shader (which is surface shader thus it's pre compiled by Unity to solve lighting while shader takes care of texturing). Recompile in LOD manager after upgrade.
Ah, 3.3g fixed it! Thanks!
I'm having a tough time getting the shaders to behave (running Unity 5.5.2p2 and RTP 3.3g). Everything looks okay in the editor, but when I upload my scene (in a Unity-based virtual world called Space), I get this at run-time...
In the troubleshooting section of the manual, on p94, there is a mention about changing the base map distance in the Unity Terrain Script. When I check it, the base map distance is 25.
Following the suggestion in the manual, I change it to the max of 2000. But when I click on anything else and then check back on the terrain, it reverts back to a base map distance of 25. Is there a way that I can change this setting? Or is there some other solution to my issue with the far distance shader?
Edited to add: I'm working in MaxLOD POM mode
I appreciate any help you could give me - thanks!
As a temp fix, the development team behind the Space virtual world made a patch that changes the base map distance to 2000 on RTP uploaded terrains, and that seems to be doing the trick.
Another question I have is regarding tessellation on Mac. The Asset Store info says tessellation works on OpenGL 4, and the RTP manual (in the preface) says "Most pronounced improvements are both DX11 and openGL4 (Macs) tessellation", but when I try to enable tessellation my terrain disappears. I'm on a Mac Pro 6,1 with AMD FirePro D700 GPU w/6GB, running macOS Sierra and Unity 5.5.2p2. It supports OpenGL 4.1 (the most recent that Apple supports in the OS). Is there a trick to getting tessellation to work? I'm still making my way through the manual (no complaints though, I really appreciate that you've written up substantial documentation), but so far I've not had any luck.
Have you followed workflow for tessellation ? You need to make height&normals texture to be put into global maps section. Take a look at my YT tessellation video.
I'm not sure how I missed that one, but I'll give it a look, thanks!
I'm getting the below error - Any idea what this is? I'm on unity 5.6.0.f3 and the latest version of RTP on the asset store.
EDIT:- I deleted RTP from scene and reimported and the error has gone. ***
IndexOutOfRangeException: Array index is out of range.
ReliefTerrain.GetSplatsFromGlobalSettingsHolder () (at Assets/ReliefPack/Scripts/ReliefTerrain/ReliefTerrain.cs:173)
ReliefTerrain.GetGlobalSettingsHolder () (at Assets/ReliefPack/Scripts/ReliefTerrain/ReliefTerrain.cs:98)
ReliefTerrain.RefreshTextures (UnityEngine.Material mat, Boolean check_weak_references) (at Assets/ReliefPack/Scripts/ReliefTerrain/ReliefTerrain.cs:262)
ReliefTerrain.Awake () (at Assets/ReliefPack/Scripts/ReliefTerrain/ReliefTerrain.cs:199)
Hello. I have troubles with height textures
When I blend two textures on splatmap I see some ripple. After disabling heightmaps this effect is disappearing...
Separately every texture displayed correctly...Maybe I miss some options in shaders inspector? Seems I tryed change most of options
Are you referring to the displacement map? The displacement texture is used for the parallax shading technique(Parallax Occlusion Mapping) that RTP can use. If the settings are cranked, it can make the textures look on the terrain look like they are "rippling". Take a look under the Parallax setting and tone it down. I can't quite remember what the slider is called.
Yes. Displacement, in Layer it named Height(A) Texture)
I set all parallax sliders to zero. no changes)
Can you explain the problem exactly? The terrain looks good to me. The other thing that the height texture is used for is the texture blending, it will blend between textures depending on height. I can't remember what the setting is called, or if there even is a setting, tho I'm sure there is.
I'm gonna rewatch your vid in case I missed something.
Ok, rewatching the vid, it looks like you are referring to the Height Blending technique. The textures will be blended based on the Height Texture. I'm going to try to find the setting for it.
The main problem that I see tiling and can't adjust it.
There is "UV blend sacale" option in Layers parametres, but it works only for diffuse texture. And "Far blend replace" works only for diffuse. Displacement always tiled like a picture.... I want to find needed option too))
For starters, look under Settings-> Tile Size X and Tile Size Y. This will set the tiling for all textures.
Next thing to also adjust would be the UV Blend Scale. This can be done per layer. This will allow you to "break" up the tiling. Use the Uv Blend Val to adjust how much to blend
Hopes this helps.
Thank you for attempt, but how I wrote above
If I changing Tile Size, it change...Tile Size. The problem doesn't disappear
Maybe there is way to enable displacement only on near distance?
How you've seen on the video the problem appears only when two textures placed to each other by splatmap. If exist only one texture then displacement map work fine...
Pleas help me, everything is white... (everything named slice_x_x is a single terrain).
after reimport it seams to work fine, but when i activate Tesselation / phong my terrains get invisble.
@tomaszek I went through that tutorial, and using the prepare height/normals step does make the terrain re-appear, but tessellation still does not work at all. No signs of it in either wireframe or shaded mode, and changing the values for Tesselation substeps only causes significant distortion that does not resemble either height or normal maps. Also, there is significant popping when increasing the terrain pixel error. I'm on a Mac Pro 6,1 with AMD FirePro D700 GPU w/6GB, running macOS Sierra and Unity 5.5.2p2. It supports OpenGL 4.1 (the most recent that Apple supports in the OS).
Sorry if this has been addressed before. I had RTP working in 4 layers mode. I decided to switch to 8 layers first pass. My original 4 textures work just fine, but the extra 4 added later have this weird glossy effect. Any ideas what could be wrong?
Can this asset be used in mobile or is it only for PC.
In TC2 you'd need to add some randomness when blending between 2 layers. When their influence/coverace is exactly the same over larger part of terrain tiling is obvious. Try to set coverage of first layer disturbed by some noise affector. Then tune perlin normal noise, use global colormap. Your tiling should be greatly reduced then.
Need to follow tesellation workflow (answered just above). Height&normals texture first.
I'll check it again force opengl mode on PC. That's all I can do.
In deferred you need to use 8 layers in first pass mode to solve the specularity problem (LOD manager - option for first pass - refer to my pdf doc).
PC/console. For mid level mobile it's too heavy. With reduced features it can be used on modern mobiles though like iPad3 or so.
I made a test on my example scene with pforced gl4.1 profile. Seems to work (setup 8 layers mode in first pass with all tessellation options except for detail displacement). 1st screenshot with tessellation factor set to 1 (thus no tessellation), 2nd with 5 subdivisions in far distance - we see detailed mountain silhouette at horizon. Pixel error set to 200. (we can set it either here in RTP and in Unity terrain settings - it's the same linked value).
I'm not sure what pforced gl4.1 profile is, or how I'd verify that's set up. In Unity editor I've tried with Edit-> Project Settings-> Player set with auto graphics API checked, or with it unchecked and then manually set for OpenGLCore as first priority. For me, with tessellation set up as shown in the video, pixel error 25 and above shows very visible popping.
It's starting to sound as if RTP's tessellation may not work properly on Mac (my hardware is certainly capable, and I'm running the latest version of the OS). Hopefully that's not the case, or if it is then hopefully as Metal gains more support it (it's listed as experimental on 5.6.0f3) can be remedied.