I want to showcase massive environments with huge terrains that I have made with world machine mudbox.
The problem is, I have very fast aircrafts and flying mounts with fast speeds similar to world of warcraft.
I understand the problems with precision and coordinates but-
I just want to make a video and use unity for the trailer.
I have 3 questions:
Can unity give me unlimited space? (For making a video with just animation, no programmed gameplay)
Does the coordinate problem effect animations?
And are there visual bugs / limitations with seamless huge worlds of such size if I were just using Unity for showing my assets and animations?
Can I use realtime dynamic lighting only without baking? (I bake ao maps etc in maya anyway)
Can dynamic lighting support many trees without performance issues?
For example I can’t use UDK because the overall grid size is limited to 1/100 of the space that I need, even for a video it’s not capable of big environments.
Also in UDK, I have hundreds of trees in view and the performance is terrible with dynamic lighting, I cant even use it for a big forest environment. Too much alpha textures with such a renderer is bad.
Unlike cryengine, I can have massive amounts of foliage.
Or do I have to get an alternative such as heroengine? Thanks
Theoretically it can handle x/y/z values of 1e38, however at massive distances various bugs could potentially appear. I believe that as long as you stay under half a million or so you should be fine.
And yes unity supports real time shadows but you must buy the pro version, the free version only comes with baked shadows. (Although this could allow real time shadows in the free version)
Also, why not just shrink all yor models down too reduce world size, if everything including the camera perspective where scaled down uniformity the amount of space it takes up would be much less.
Hm i think that there are no limitations as long as you prepare your scene right. There has been seamless terrain made by Unity user you can find it on Youtube and Asset store too i think.
You can use dynamic lighting on pretty much everything, baking it is just an option.
3.Unity is not particulary better at rendering of huge alpha infested forests than Cryengine. In fact Cryengine does very well job on huge forests, not sure what settings you used but with their example map of “Bay” i dont have any problems rendering those heavy forests.
Leadwerks engine is the most powerful on forest rendering area, 1 milion trees on decent computer has been shown in their example video.
4.Heroengine with huge forests will make your graphic card explode as long as you use dynamic shadows. Not kidding.
*EDIT: Seems like Heroengine 2 has been released, they are claiming to use better shadows combined with SpeedTree 6. SpeedTree is not suitable for huge forests but overall have to admit that they have indeed made nice changes.
About cryengine- I know it’s alot better for large amounts of foliage, but unfortunately I’m not able to use cry engine because they don’t allow the use of kickstarter or anything else that would make you money without getting an indie license. And basically you can’t get an indie license yet because its not finalized and you have to have a huge project that impresses them, 2 have only gotten one in a year.
Is unity capable of doing huge forests with dynamic shadows without slowing down so bad like UDK ?
(I was comparing to udk not cryengine because cryengine is out of the question)
UDK has horrible performance with hundreds of trees / bush’s / grass and dynamic shadows
It depends on your rig. If you have slow computer you will be WAY better with Unity from ground up than UDK. But also i am not sure if UDK has unlimited terrain function, Landscape is indeed very big, but not unlimited, and you are strictly tied to its size. One thing maybe worth adding is no matter what vegetation scenes in UDK look way better than in Unity. Either you use hand modeled trees or SpeedTree, combined with UDK renderer it will look better.
However i am not sure if Epic allows using Kickstarter, i know Unity does. Just suggestion if you do use Unity pick Larsbertrams plant shader, it allows dynamic batching and you can spare a lot of performance with this shader, all trees have to be hand modeled though…
My pc is pretty good but that’s not the issue, UDK just has horrible performance with too many alpha textures / foliage and dynamic lighting. It will be slow no matter what kind of rig.
I have a 3770k / 7970 6gb (1 down from the best gpu out) and 16 gb ram. With a few hundred trees udk still performs bad. And that’s using optimized speedtrees with the lowest LOD.
Also, I do not believe udk looks better quality than unity since I’m using dynamic realtime lighting. It looks similar in both, I mean udk looks pretty bad without baking anyway.
The plant shader is interesting but I already have alot of foliage that uses alpha textures and would prefer to use that method.
I’m just not sure about the technical details of unitys render compared to udk when it comes to realtime dynamic lighting.
Do you think it will give better performance than udk? Because in UDK only with a few hundred trees on screen I get low fps.
Your best bet in this situation, of course, would be Cry Engine. HeroEngine can not handle what you want. Its graphics rendering is awful, and the only way you will get large terrains is by creating multiple pieces, then loading them dynamically at runtime. You can do the same thing in Unity and get much better results.
While CryEngine might be good at huge terrains good luck with its licensing and usage for this video…
Honestly just download Unity Free and import your assets and such and see what you get, trees should be fine at huge distances due to the bill-boarding it performs on them.
That’s really interesting, 20 thousand trees!? Wow.
I’m mainly concerned about foliage that uses alpha’s though. I guess i’ll try a quick test like tylerperry suggested
Yeah I just can’t seem to recreate the amount of foliage that world of warcraft is able to have in view without performance issues.
To get a decent framerate I have to use settings that do not have good shadow / culling / draw / lod distance transitions.
I’m using the tropical forest pack that I bought and many trees are well optimized but still I get low fps when theres so many that I need in view because I’m flying over them at decent speeds and don’t want the lod’s to just keep popping in or the shadows to start appearing creating an ugly line.
WoW doesn’t need to do that. I’m also using fog etc.
I suppose cry engine is the only option, or maybe furryball gpu render for Maya
You also have to consider how frightfully stylized WoW is. All of their assets are incredibly low poly with very simple textures. Then, of course, there’s the multi-billion dollar team they have running multi-million dollar machines… that helps.
I tested trees with very low poly counts, but the leaves in WoW still use alpha textures, that is the main problem. They can somehow have huge amounts of them at very far draw distances with nothing visibly popping in and perfect crisp shadows and great performance.
I did experiment with fog but it ruins the scene with the close density thats necessary to cover the lod and shadow transitions.
Nice this looks really cool environment. They have very good modeled trees, circular oriented leaves instead of random branch position like you can see mostly. This makes is look good from all perspectives.
I just duplicated many of the Kapok3 trees from the tropical nature pack
1k tri’s
leaf texture 1600 x 1600
bark 1024 x 1024
all textures are pretty low
Only getting 15-20 fps with that scene
And thats only like 1/8th of whats in view on the WoW video
Completely removing shadows only gives me 10 more fps
Actually thats much more than whats in view in WoW
but Blizzards artists are masters at their job and really succeeded in using occlusion combined with oversized trees that basically cut the rest of the foliage from even rendering.
You can achieve similar things to what you can do in WoW in Unity but you need to properly setup assets, camera and do a few more things.
To get started, the first things needed basing on your screenshots are:
Get some proper art. Your trees are in no way representative to what WoW uses. It uses a handfull of big, volume filling trees with alpha masking (not alpha blending) and a low polygon count where you use dozens of trees with alpha blending and a much higher polygon count as well as overdraw to fill the same space. Also your range for mesh trees is pretty high given these trees (I would keep it and kick the trees, but if you want to keep the trees ensuer to properly setup mesh tree range etc)
This not only impacts the performance in a heavy way (overdraw eats away pixel processing power you would need for other things), it also has a significant impact on the experienced density of the forest.
Your detail view range is far far higher. You see grass patches till the very back of the terrain. In WoW you at best see it right below you.
You can make it adaptive, that the detail range is adjusted depending on the flight height and gets much shorter the lower you are.
Enhance camera range, fog (rendering settings) and field of view. These are not in line with WoW either. You don’t use distance fog and the field of view is quite a bit higher than in WoW too, forcing more to be rendered.
Consider using terrain independent objects for some of the things (like bigger scenery objects in WoW) and use LoD Groups on them so they properly scale in quality and polygon count
Switch to deferred rendering when you enable shadows and ensure that the shadow range is set properly (100 perhaps 150, beyond that use DLM lightmaps baked by unity), this will save you a lot of performance and grant you a better quality too.
Last but not least: Use occlusion culling as eskimojoe suggested, at least when you add other terrain objects or get rid of the alpha blended foliage (alpha blended foliage is ignored for occlusion). This will prevent things from rendering, especially behind uneven terrain areas.