Search Unity

Best Replacement for Unity Terrain

Discussion in 'General Discussion' started by ippdev, Jun 8, 2016.

  1. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    edit note: This thread is not about Unity tutorials on terrain I know every last trick in that book and they do nothing to get where I need to be. It is about replacements for that system and performance characteristics and toolsets of replacements found on the Asset Store.

    I have created a real world motorcycle run that is world famous. The franchise that runs the publicity on this course called "The Tail Of The Dragon" on hwy 129 north of Robbinsville in North Carolina has something like 138 curves over an 11.1 mile run has 10 more local runs they want reproduced. Using various mapping downloads such as bing I have all the displacement maps using Unity terrain and roads using EasyRoads and have the entire 7x7km area mapped to within 5 metres of accuracy for the roads and 1 meter of accuracy for the terrain heights. However I cannot get above 45 FPS and it makes the motorcycle sim jerky and it definitively does not have the look of a North Carolina subtropical rainforest due to severe limitations in how much detail objects and SpeedTrees I can add. The framerates drop rather substantially if i try to get any kind of denseness to the forest and detail features such as grass, roadside pebbles and rocks and terrain boulders and clusters of bush and other smaller vegetation.

    Having said the above I understand there are several packages on the Asset Store that do get much better performance and have other outstanding features. I am seeking the best package not to build from scratch but to easily transfer in the minimum time all the displacement maps, splat maps, the EasyRoads highway and secondary roads. As well the ability to rapidly create the surrounding forest with some degree of density to match the look of the actual real world area by painting objects or mass placement tools. I would prefer to use SpeedTree trees as they look so much better than Unity trees. An instancing system for these would probably help with framerates. As well I am using ats Colormap Terrain Shader which gave the terrain a truly varied look and would like to keep close to this.

    I believe a lively discussion of pros and cons of these packages will benefit a great many who are unsatisfied with the current Unity terrain system with SpeedTree who wish to go around them and not wait foreever and an eternity for Unity to take care of this crucial part of many games. It will also help the various developers of these packages and maybe give Unity a few more clues so they can click.
     
    Last edited: Jun 8, 2016
  2. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Very interesting topic, and quite relevant to what I'm about to fiddle with as well.

    Could you please elaborate a bit on how they license their data and what we can do with that in general? What I'm currently working on will be based on Worldmachine, but I sometimes need topographical data and so far I've been using GTOPO30, which has the whole world, but isn't very high res (1 pixel = 1km I think). There are other free data sets of higher resolution out there. Afaik the US Geological Survey is a good source for public domain datasets.

    In what format do you have the data currently?


    I've only briefly tried using the Unity Terrain and my usecase is a bit unusual, since I have almost a topdown perspective and looking far ahead isn't an issue. I noticed that the Terrain renderer is relatively slow (~5-6ms) and I couldn't pinpoint why or how to optimize that. I didn't even use trees or other detail objects. It seems that I get a lot better framerates when I only use the terrain collider and use relatively high-res static meshes for rendering. But I haven't found a good way to line them up automatically and eyeballing it doesn't seem right, especially if more than one level is needed. Worldmachine has tiled output options in the pro version. I haven't used those yet, but I plan to at least try them out. I could imagine that it would be possible to feed your input heightmap and splatmap into WM and output it as tiled meshes with tiled splatmaps. You might even be able to create LODs that way, but I think the edges will not line up perfectly unless you code something for that.

    For the dense forest, can you be sure or enforce that the player won't leave the road? If so, I'd imagine some alpha mapped photo textures for the background behind the modelled trees would give you a good enough result at low performance cost, but I haven't actually tried it
     
    Ony likes this.
  3. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    On the heightmap data. Most US mappings were in the 10 metre per pixel range and that was not close enough for this particularly varied terrain. You have to have a Microsoft account to get the data for heightmaps and can only get so much for fee before they ask you to open an Enterprise Account and fork over some cash.. The Bing maps had the highest resolution. I used EasyRoads to get to roadmap data and it did a marvelous job but had some tricky stuff with joins and such I was too rushed to get a grip on totally. But it did place the roads properly using OpenStreetMap data and using a quadrangle bounded by real world coordinates with five figure precision beyond the decimal point. It even had the ability to grab some roadside buildings and other objects if the OSM data had it within the dataset. In the US you generally got a block that was mis-sized but apparently Euro OSM data actually had some 3D models of various structures created.

    For the splat maps I got the google satellite maps which give a good indication of forest versus rocky versus dirt versus grassy and some roadside non-vegetative areas. I then used those in the same size as the displacement maps and created a pipeline to split out the various colors using the Select By Color tool in PS and layered in various colors (R-G-B-Greyscale) in MultiChannel mode (I forget why that was totally necessary but it was) with a hint of feathering to the selection areas and a hint of Gaussian Blur after filling in the selected areas with RGBA as appropriate for what textures I wanted in the terrain texture maps. A pain in the arse to devise but saved me carpal tunnel syndrome and a pain in the wrist and then converted from MultiChannel to Tiff for import to Unity. It did give me very highly detailed splat maps that would have been near impossible to do by hand. The EasyRoads3D Pro dev sent me a script to import them into his toolset in a readable by terrain shader format, though I think your toolset has a similar PNG to SplatMap tool. I also used the google satellite maps blurred slightly as the main map in the ATS Terrain Shader and the splat maps for individual textures and blending of them. Great shader and eliminated tiling artifacts.

    I have a Terrain to Mesh tool from the Asset Store that separates the terrain into as many .OBJ meshes as needed with differing resolution per mesh if wanted but I lose the ability to mass place forests and paint trees and detail meshes and objects as well as adjust road edges to keep them tight to the roads.

    Hope this helps you.
     
    Last edited: Jun 8, 2016
    Ony and Martin_H like this.
  4. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Thanks a lot for all the information! I've just tried the tiled build in Worldmachine and it feels like a deadend to just have it churn out highres meshes and use those. I keep forgetting how big those get and how long Unity takes to import them. That's one workflow that doesn't work out. Either I need to decimate the meshes with zRemesher or something similar, or generate them at runtime from the heightmap data, or even go back to using Unity terrain and trying again if I can find workarounds for all the problems I'm having with it. I like using Substances, but the default Unity terrain material system doesn't seem to accept their output and I haven't looked into possible solutions yet. I was hoping to just get around messing with the terrain renderer, since it's so slow anyway.
    Is there even a real alternative to the terrain renderer component on the assetstore? I did a quick search but I can't find one.
     
  5. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    Try the Terrain To Mesh Shader. It spits out .obj meshes which you an then bring into zRemesher and keep the UV mappings intact form the obj and then reimport and use his shader which has several variants and even mobile. I may end up doing that but then I still need some tool to paint trees and etc.
     
    theANMATOR2b and Martin_H like this.
  6. BornGodsGame

    BornGodsGame

    Joined:
    Jun 28, 2014
    Posts:
    587
    A 7x7km area is way too big if you are loading it up with trees, plants and rocks. It really depends on how your game is played, if it is first person, then just slice up your 7x7 into 49 1kmx1km terrains and put each of them into a difference scene, and then load/unload each scene as the player gets close. If your track is one directional, it makes it even easier because you can unload a scene as soon as the player exits it. The other thing to remember is there is a performance hit after you have used 4 different terrain textures, again, splitting up your big terrain into smaller terrains makes it easier to stay at 4 or under.

    The new multi-scene editing tools makes this process pretty painless and you can drastically increase performance.
     
    theANMATOR2b likes this.
  7. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,190
    These problems you've listed are likely the exact reason he's asking for a replacement for Unity's terrain system. ;)
     
    f1ac and Martin_H like this.
  8. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    That looks like a problem of level building knowledge rather than a technical one. Ie carefully planing visual and object placement according to optimizing performance.

    Look at the firewatch GDC video (they use unity) to see what I'm talking about.


    Relevant part at 10:06 - 12:40 - 13:36 - 16:03 - etc ...
     
  9. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I did it all pal. 7x7, 5x5, 4x4, 3x3, 2x2. Never 1 7x7km. Right now it is left at 2x2 because it changed nothing with framerate and I was wore to a frazzle. It cannot go into different scenes due to rise and fall in terrain. It is a motorcycle sim on a real world road if you actually read the OP. I think your suggestion is the lack of reading and I don't need your tutorial thanks. This is a thread about alternatives, not beginner tutorials for Unity. I know what I am after and it is apparent that you think loading and unloading scenes is the way to go that you do not know alot. I would simply make an occlusion algorithm as the baked OC sucks with terrain and blinks in and out.

    On the video. Taking a quick gander at it she still has the same problem I have. Cannot get enough details in to match the real world North Carolina subtropical rainforest. Final conclusion. Not impressed at all. Still looking for the best replacement package.

    Note to further posters. This is a thread about replacement packages with their toolsets and performance characteristics. I do not want to hear anything else about Unity terrain tricks and workarounds. I already know them all.
     
    Last edited: Jun 8, 2016
  10. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    Precisely. I knew all this crap years ago. I refuse to bang my head against the wall any further with the Unity terrain system. I got better performance in 3.x and 4.x but the trees sucked. I used to get sometimes 400FPS in a fairly detailed terrain of 1.5km but you could see tiling artifacts everywhere. SpeedTree trees look great but alot of them give a performance hit which leads me to ask..why call them SpeedTrees and tout their performance if you cannot use them to make a semi dense forest. I can make a mesh tree that performs better.. Profiling the ATS Terrain Shader shows it was not a big hit on performance and it certainly removed tiling artifacts when i set it up with my splat map creation pipeline and did imitate the ground around North Carolina fairly closely and I am in N Ga about 60 miles from the place so I can compare..
     
  11. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    It's not about the terrain but the tree then?
     
  12. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Just stumbled over this:
    https://forum.allegorithmic.com/index.php?topic=9834.msg47181#msg47181

     
  13. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    Both. But if I can get good fps on some other meshing/collider system that keeps the heights intact and be able to use SpeedTrees and some custom mesh trees and bushes that match the local vegetation then I may be good to go. I need 60 FPS+ or I will have to kick the snot out of the brat trolls on Steam who are little bitches:) And..I do not want it to look like Unity terrain out of the box either.
     
  14. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    You can use a 5.x shader and play with one of the Substances and then right click the shader component and get a dropdown menu to generate all active channels as bitmaps and use those. I actually did that for some of the terrain splatmap layer textures.
     
  15. BornGodsGame

    BornGodsGame

    Joined:
    Jun 28, 2014
    Posts:
    587
    ok pal, good luck solving your problem.
     
    Last edited: Jun 9, 2016
    doodaddy likes this.
  16. BornGodsGame

    BornGodsGame

    Joined:
    Jun 28, 2014
    Posts:
    587
    You see, I am totally lost on this though. What does the rise and fall in terrain have anything to do with cutting up your terrain and loading them additively, they perfectly line up, the slope of the terrain does not matter at all. Are you using an older version of Unity and are not aware of the new tools?
     
  17. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I don't have the time nor inclination to explain this to you since you can't even conform to the original posts request but maybe you can get a clue from 138 curves in 11.1 miles in mountainous terrain with lines of sight sometimes tens of yards and sometimes miles. And don't argue with me about it. If you have information that was originally asked for post it but do not derail my thread with trollbait. Tools indeed.
     
  18. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    Thanks. I am hoping for some reviews of the various toolsets on the Asset Store as I thought was clear in the first post.
     
  19. PROTOFACTOR_Inc

    PROTOFACTOR_Inc

    Joined:
    Nov 15, 2009
    Posts:
    4,054
    Have you tried ditching the speed tree trees and just use some of the non supported old tree creator trees as place holder, just to see the frame rate difference? You're 15 fps below your target, and a lot of people were complaining about speed tree trees performance. Maybe there is just that stuff to swap out to improve the frame rate to what you need.
    Sitting there waiting for people to review some of the tools they've been using for work around might take too long depending on your deadline...
    For some reason you didn't mention any streaming of assets. I'm no dev so don't get mad, have you consider this?
     
  20. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Line of sight?
     
    shaderop and Ryiah like this.
  21. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I did that workaround but the trees looked like crap. The deadline passed in December so it ain't like I am in a big hurry currently but would like to get it off my harddrive and onto a store. They are cool with me being anal retentive and understand the difference between a finished looking product and something half baked and not performing and understand it is not my fault but limitations in the Unity toolset and perfomance characteristics. However and as well...Steam is filled with bitchy little trolls I would rather give no breach to and once I begin I will have to do ten more. That is why I am seeking a pipeline for the last part after I have all the splatmaps, height maps, roadsigns, guard rails, buildings, landmark objects, unique terrain features created after I drive the roads and stop and photogrpah the features and recreate them and place them where I have marked a map..

    The reason I am seeking a streamlined pipeline for the terrain and forest is that if I go about it the way I think I may have to the people I am working with at Global Wheels Games, who have been treating me quite fairly monetarily should not be burdened with the time I have to take and pay me for it if I can get a better pipeline going with less time involved. This is why I am researching others experiences and performance with the other tools as i do not want to go through learning another toolset I paid for and find that it too has it's shortcomings. It is a matter of me looking out for the folks financially who have been keeping me afloat and out of the very frustratiing business of freelancing.

    Currently I am looking at this pipeline;
    1.Get all maps set up using EasyRoads3D Pro to acquire the heightmaps and OSM data. Apply to Terrain which is semi-automatic with EasyRoads3D Pro.
    2.Get google satellite maps for same area and apply my PhotoShop splatmaps pipeline to them to acquire the splatmaps so terrain texture maps can be applied per channel so they fairly match the actual real world terrain textures.
    3.Use ATS Terrain Shaders to apply all texture maps as it removes tiling artifacts nicely and gives me the best terrain surface I have seen in 7 years of messing with Unity terrains.
    4.Use Terrain To Mesh to split the Unity Terrain into a grid of .obj meshes with corresponding splatmaps. It also has a number of shader types, including mobile that can use splatmaps and multiple channels for terrain textures. However it does not have the features of the ATS Terrain Shader that remove the tiling artifacts. This is a snag in the pipeline for me. The benefit is I can use most any kind of shader with any channels I may need such as normal, parallax, specular.
    5. Take each member of the grid .obj's into ZBrush and use zRemesher so I can limit the polygon count in middle areas but keep the edges so they line up without glaring gaps as well as keep the UV boundaries intact and general placement of terrain area per terrain area between the .obj's and zRemeshed areas. Note: 1kmx1km grid for the Tail Of The Dragon run gives me 49 OBJ's I have to do each of the steps to..Ouch!Boredom!
    6.Ditch SpeedTrees and create my own mesh based trees using actual photos of leaf clusters and bark derived from the local trees and vegetation and use Substance Designer to create a slot based tree, bark and vegetation shader I can repurpose for the 15 or so species of trees. The snag here is the creation of so many tree variants per species. The benefit is I can use them for the other ten motorcycle runs. I can also create sliders I can tweak colors, blend modes, normal map heights, light direction fakes, sharpen and blurs etc as well as maskings for texture substitution, alpha channel tightness around fallen leaves & litter and other helpers to get sweet looking realistic ground.
    7.Create a set of vegetation placement maps from the google satellite maps which can give me enough data to acquire areas that are forested versus rocky, grassy and bare ground areas. The alternative is to hand place all the trees and vegetation and detail objects such as random boulder, fallen tree remnants and similar each by hand and the carpal tunnel syndrome will kill my hand.Note. A tool that allow painting of meshes on meshes where the painted mesh axis is aligned to the painted on mesh surface with Y axis up would partially solve this.
    8.Set up collider physics for all objects. Snag is I may do all the above and find that due to all of these colliders the physX system will still have my framerates killed. Hoping some terrain collider/treecolider toolset is out there that works under the hood with proficiency.
    9. Devise an LOD and billboarding system for the trees. Would be unnecessary if I can find the toolset that has these features included and for mass placement of the fairly dense forests.
    10. Avoid months of 14/7 developments cycles, save myself endless tedium doing the same over and over, save money for the folks supporting my work and make a good return on investment for all parties.

    Note. 45FPS is the top framerate. When in areas where the line of sight takes in alot more the framerate can drop into the high teens.
    Note. I can write tools for all the above but if someone else has done so I would rather invest money and give it to them rather than reinvent the wheel. It is hundreds of dollars versus thousands of dollars for the GGW folks in regards to tools.
    Note: I am seeking a balance between time, money and framerates
     
  22. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Take a look at the Distingo terrain/mesh shader. It might do what you are looking for (splatmap, global blend texture, different UV multiplier that gets blended accross distance to eliminate tiling artifacts).

    https://www.assetstore.unity3d.com/en/#!/content/54737

    Thank you so much! I've been looking for that function forever, made a thread on polycount and googled for it. I already thought it just isn't possible which I found super weird. Last night I managed to hack together a workaround by using Texture2D placeholders and at runtime overwriting their content with that from the substances. That worked and might be good for tweaking the textures on the fly, but just exporting them as bitmaps will be so much less error prone. Also I finally can save the presets that way, awesome!


    For the object scattering there are some assets on the store, but I haven't tested any of them myself. Here are two of them:

    https://www.assetstore.unity3d.com/en/#!/content/51269
    https://www.assetstore.unity3d.com/en/#!/content/14954

    One mentions gaia, so maybe you can automate something based on splatmaps with that.


    I just downgraded from 5.4.0b20 to 5.3.5f1 and my empty scene with just a terrain went from about 60 to 50 fps. But 5.4 was so buggy and often started reimporting all the assets. I'm almost willing to gamble that terrain performance will be good enough again till my game gets to a playable state. Since it's just a hobby project I can take more risks on it.
     
    ippdev likes this.
  23. Deleted User

    Deleted User

    Guest

    This is a real tough one, I'll apologise in advance because the only options I found when last using Unity was to either make your own or try and tweak the living crap out of what you already have.. I tended to use a mixture of both SpeedTree and Unity's inbuilt grass system for performance.

    Making sure I'd tweaked little things like base bitmap distortion and detail resolution to a max of 512 (256 in some instances for specific tiles).. One of the biggest issues I had wasn't really the terrain, it was performance of shadow casters.. In which I ended up adding custom shadows or in 4.X after a beast bake performance was so much better.!

    Then of course Async'ing the tiles on specific vector boundaries.. Although unless you do go completely custom (or not use Unity) I'd be as interested as you as to what's the best approach..

    I might try it out again, there's some tools on the asset store I'm longing to mess around with.. Will update if I find anything interesting.!
     
    ippdev likes this.
  24. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    The Distingo shader looks useful and a nice price point. Of the two object placement tools it looks like MegaScatter has the ability to limit drawcalls. I have the other Mega plugins and the developer knows his stuff but gets a bit too CompSci in his coding but is extremely helpful if contacted and replies quickly to concerns, which in a production pipeline is important as delays kills my focus, concentration and enthusiasm to get 'er done.
     
    Martin_H likes this.
  25. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I basically do the same as you in using SpeedTree and grass system. There are alot of skinny cluster of trees in this area with few leaves except the tops which was where the only light penetrates the canopy. Plus, the danged pacs are so expensive, though you can rent the editor month to month and generate dozens of variances. The one thing I did not try was turning off Unity's environment lighting from the sky and replacing it with UniStorm which gave great performance in the 4.x series and did a pretty decent fake of environment lighting from the sky. Adding it previously dropped the FPS by only a couple of points. Sun shadows did have frame to frame jitter which of course ticked me off as it would you (yer about as anal retentive about such things as I am) I used to get several hundred FPS in 4.x with baked light and shadow maps. They did bring the amount of texture bitmaps to import up significantly though in the final builds... like 80+MB's to get decent resolution in a 1kmx1km terrain. With UniStorm I can get time of day and real world sun position for the geo-coordinates which is nice considering these are actual real world courses I am reproducing. It also has a weather system.
     
    Deleted User likes this.
  26. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    My immediate thought is to use Horizon[ON] for all of your off-track scenery. Basically, use ER and a terrain or mesh for your track and side objects - whatever's working best for you - and then rely on Horizon[ON] for the rest of it, to provide wide views at low cost.

    Not sure if that will work, and I'm far from an expert, but since no one else suggested it ... there you go. Good luck! ;)
     
    Deleted User likes this.
  27. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I did see that when looking around for toolsets last year and was quite impressed but was immersed in trying other toolsets and creating pipelines for other procedures. The one thing is that in this particular terrain set it may work to the east but to the west there is a large drop and river with a dam to the west where the highway rides along a ridge for a ways. It just may eliminate 25 of the mesh tiles if I use the 49 piece 7kmx7km single km meshes. No need for just experts to chime in with suggestions..just trying to school me like I am an amateur and not sticking with the strictures of the OP...which I remain guilty (in regards to wandering from the threads OP of myself) in a number of cases:) Thank you for your input.
     
  28. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    The is the website for this run and has links to other runs as well as maps and photos of the area for those interested http://tailofthedragon.com/
     
  29. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    If it has been a while since you last looked at Horizon[ON], you can add buildings and water, and you can deform the Horizon[ON] terrain. So offhand I can't think of what would stop you from making a dam, river, and gorge.
     
  30. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Have you looked at simplygon? It seems that using a mesh workflow is giving you stress with LODing after your breakdown. Disclaimer: I have never used it.

    Is speedtree it's own format? can you transform its output into fixed mesh?

    Anyway I'm following this for solution too, I'm not there yet in my project.
     
  31. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    Have you tried skyboxing, have the terrain as 1km tiles but only show the current tile and next one or two tiles away (occlusion culling?), then a skybox of more distant objects.

    In theory the system could be dynamic rendering a large scene view every second or so to a skybox that the players camera sees.

    Or static where skyboxes along the route are pre-rendered.

    You would need to do some testing and adjusting or maths to calculate how often and what resolution the skyboxes need.

    Also have you checked out the new instancing tech in the beta, this should really boost performance with static repeated objects on DX11+ hardware.

    Add in some motion blur and you might be able to get away with lower resolutions on high speed turns.
     
  32. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I would probably use the zRemesher component in ZBrush 4.7 if I were to try to go the mesh route. You can paint the edges to keep their profiles for mesh edges to align with no gaps and paint the center areas with less slope for the least polygons. I would also paint the road edge areas as I spent an inordinate amount of time adjusting the terrain to the road edges. Then hit the button and seconds later you get an optimized mesh with the same UV boundaries.

    Not sure on the SpeedTree outputting to a mesh. I did try a few dozen settings to optimize ST and when I did get some rise in FPS I got nasty popping that was too obvious..and of course bitches on Steam gonna bitch about stuff like that. ST does have some nice looking trees though and I would like to keep them.
     
  33. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    How are you guys measuring FPS? I'm getting the weirdest differences between different test setups.
     
  34. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I had considered the skybox route and there was a plugin that grabbed skyboxes from google. The main issue was line of sight in dozens of cases where the most distant areas came into view so I would have needed at least a dozen skyboxes. The other thing is that I watched my son and his pals play GTA and other drive sims and they never use it as proscribed. They drive up the side of buildings, or in Carmageddon drive off the roads and over the terrain and i fully expect people to do the same with this sim. Now I could prevent that if the damned terrain system would have allowed me to make the forest along the roadside as dense as it is in many places. You can review my issues by looking at the google images pages here link to TOTD run images. Note the varied terrains and lines of sight along the route, as well as the maps. It will be sold on USB keychains at the TOTD store at the beginning of the run so some fakes are OK but I want to reproduce the run as close as possible. I will drive down the route next month and video the drive an stop along the way to get photos of geographical features that are unique and mark guardrails and other roadside features on a map as I go..I think there is even a tunnel.

    I have not touched this since late December after a six week exhausting dev cycle and put it away in the hopes Unity would up it's game on terrain and ST. I want to take it back out as I told the guys at Global Wheels, who totally understood my beefs and agree with me that I want it to look much better and perform better even though they are fine with it. They appreciate my anal retentiveness and have kept me working on other projects to keep food and rent money coming. I am currently seeking the pipeline methods to do so as there are several other runs and I certainly do not want to go though the headaches from bashing my head into the wall and trying so many routes to optimize I forget 90% of how i did what to get where. I also wore out my free Bing maps account and will have to get an enterprise account to continue. It is at a 2x2 grid currently at 3.5km a side. I had it once at a 7x7 grid at 1km a side and still had performance issues.
     
    Last edited: Jun 10, 2016
  35. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I grabbed a real FPS script written by Unity tech staff and output that to a UI textfield so I could keep the Profiler closed and not have that overhead.
     
    Martin_H likes this.
  36. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I will take a second look at it. Does it do dense forests..a must for this. I placed a link to google images along the run in a post above. Take a gander and give me your opinion from what you have gleaned...not just for me but others who are following this post or coming across it in future.
     
  37. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    I was wondering how reliably Fraps is, but afaik you're on a mac and Fraps is Windows only.

    Anyone else who can tell me if Fraps' FPS display is closer to the truth, than the stats window in the gameview or the profiler?


    NSFW:
    That tail of the dragon run seems to attract some crazy people ^^
     
    ippdev likes this.
  38. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    in terms of dense forest, turboforest is the best although this is non trivial for usage and is really intended for overhead camera - not sure what it would look like horizontally - but you can make up for lack of fidelity in raw, massive scale. I remember reading a thread somewhere about someone who ripped the technique used in turboforest and rewrote it. The screenshots he posted were very very impressive (first person camera, excellent looking - can't remember the link).

    In terms of terrain itself, as has been noted - mesh export with terrain for grass gives good performance. The Relief Terrain Pack guy has a lot of info on how terrain works - including his tesselation system for consistent presentation with higher pixel error.

    I didn't know the trick about exporting substances with standard shader! Awesome. RTP has an export function that saves substances as texture that I use, but it's nice to know there's a lightweight built in alternative.

    Really dense vegetation is always a problem, I've done a fair amount of research and turboforest is the only thing that comes close to really delivering the kind of massive scale you need to do it correctly.
     
    Martin_H likes this.
  39. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    haha! LOL! But hey. He is safety conscious and is wearing proper boots and helmet.
     
    Martin_H likes this.
  40. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    There is alot of skinny tree cluster that could possible be used in the grass system. As well alot of the roadside small vegetation seen in the images could be grass clusters. I can just go outside and actually photograph much of he local vegetation as this tun is about 50 miles from me.. Are you saying it is possible to use the Unity grass system on any imported mesh? If so how do you place in ON the terrain? I hope not by hand..Ouch..poor wrist. I had carpal tunnel syndrome last time around using the paint on brushes. I will take a gander at turboforest. It may be useful for forests across the river. Have you used RTP and if so what kind of performance characteristics were obtained? That was one of the toolsets I took a gander at last year but I did not want to have the Global Wheels guys sink more money into toolsets I was not going to use fully. I was asked today what kind of money I needed for more tools but I told them to hold off till I had resolved the best toolset pipeline and had a good thread going on it.
     
  41. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    For me under Unity 5.3.5f1 it turned out to be super unreliable. Sometimes it would work, sometimes not, sometimes with about a minute or so delay. Please let me know under which Unity version it consistently works for you, if any ^^.
     
  42. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    RTP is great but it's not what you're looking for - RTP is a performance cost for fidelity gain. Most of the stuff you really get out of it probably wouldn't be seen from speed (height blending, etc).

    Literally one of the first things I did with unity was try to make a map with dense forest, the first work around I tried was using grass to paint trees (looked bad). You may get better mileage, I was very green when I tried.

    The best 'easy to use' system I've found is just take a bunch of really low poly objects and use them - I found a shrub that was like 25 poly and looked remarkably like a tree and was able to put together some pretty dense visuals with this, although you may have problems with fog and the legacy tree shader depending on your post fx stack.

    There is something visually about seeing 5,000-10,000+ distinct trees on screen that really does something for me. It gives a texture and a depth to a scene that you can't get through trickery.

    Speedtree is impossible to get dense - you're trading quantity for quality with speedtree, the performance is not great at all. If you do go speedtree - don't buy their packs - rent the modeler. WAY WAY better value, easy to use, huge numbers of options - although if you already have packs you can reuse the textures and meshes and tweek to fit. The modeler is amazing: A+ value. You can also (importantly) control the poly counts of your models and make appropriate tradeoffs.

    Grass: you can't use the grass engine with any mesh - but it is actually quite fast, so it might be worth using a hybrid solution. The blacksmith demo does this, where they have a hidden terrain for grass and mesh for the terrain. Not the easiest workflow, for sure, but if you need to optimize, it might be reasonable.

    RTP: I get stable results from RTP pretty consistently. I think you really need to read through his (nightmare) docs and fully understand stuff. Admittedly it sucked, but between his manual and his tutorial videos I learned a ton about terrain, shaders, lighting, etc. He really does know his S***, even if his writing is a pain in the ass to decipher.
     
    ippdev likes this.
  43. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    I can use turboforest for the farthest hills which I know bogged down the framerate. There were some google images of it used on mountain terrain father back that looked good enough..though you know the bitches at Steam gonna bitch. I doubt the actual bikers who ran the course won't notice though.I will add this to the tools I want purchased. If you can come across the link to the rewrote version I would like to take a gander.
     
  44. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    Good solid info here. Thank you.

    BTW I highly recommend EasyRoads 3D Pro for initial setup. Just set up the boundaries by dragging a rectangle on an included map tool and choose the mapping service and hit the button and wait till all downloads are complete. Kaboom. Gets all main roads, secondary roads, even forest service roads and pinpoints main building structures from the OSM data if it has it.
     
    Last edited: Jun 10, 2016
    Martin_H likes this.
  45. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    Ryiah and Martin_H like this.
  46. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    Not sure if this is even relevant, but I found that SpeedTree trees and anti-aliasing do not like each other whatsoever. I'm working on an open-world game where the terrain tiles are streamed in (from different scenes), and using quite a few SpeedTree trees in my scenes. When I simply disabled anti-aliasing, my game could once again run at 60+ fps. Just wanted to throw that out there, I know it's not a fix, but just an observation.

    RTP is heavy on performance, and I'm still not sure if I'm going to keep using it with such a large open-world game. Distingo I found to be not as "good-looking" as RTP, but being able to adjust the texture scale/count for every layer is a huge advantage it has over RTP. So both assets have advantages and disadvantages that you have to consider as to what you value more (i.e. good looks with heavy performance costs, or not as good looking, but the ability to adjust tiling x,y for each terrain layer as you wish).

    Overall, as I'm sure Unity is aware, they need to update their terrain system. Right now there are a lot of hoops you have to jump through just to get "okay" performance with "average" graphical fidelity. I'm still banging my head against the Unity wall trying to get my open-world game to look good and perform well -- but that's probably like 99% of us out there lol.
     
    ippdev, Martin_H and frosted like this.
  47. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,260
  48. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,686
    You can paint the forests as densely as you like with Horizon[ON]. It comes with about 24 trees, and the way they are placed and used is similar to Turbo Forest.

    In a recent demo video, they paint the tree groups onto the terrain 64k at a time. If you skip to the end of the video, you can see how it looks.
     
  49. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    3,853
    That looks better than turboforest, especially the Studio version I can tweak the style and colors. Some reviewer clown claimed 15 bucks was too expensive. Jeesh..Kids these days.
     
  50. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,190
    Does the Studio version include the Texture Forest assets though? I'm looking at the Package Contents viewer and I'm getting the impression you still need the $15 asset to make use of the textures from the $30 one.
     
    Martin_H likes this.