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 'General Graphics' started by bibbinator, Jul 4, 2014.
Totally agree. There are great shaders but you are still so limited with what you can do. Can not even produce a terrain close to the quality and performance of one in a game almost 10 years ago! Definitely the weakest part of Unity and for me it is the most important.
Just to motivate unity terrain team,
note : notice how the terrain and mesh automatically blended, that's so cool
don't dream too far we're talking about dice....
i'd be happy with the same even without geom blending.
c'mon terrain team, give us some sneak peek
i' am personnally waiting badly for that...
maybe we should flood the thread with requests
*sigh* A man can dream, though... Geometry blend makes such a huge difference though, especially for cliffs as shown in the desert video. But I'm definitely curious to see where things are at right now, too.
Geom blending is common in games now so I don't think this is dreaming at all. It's essential.
No, i want to dream that far maybe even more
and even even more and even more....i'm ok , what i just want to know is... when ?
Any progress on this? Seems like this was just put out to troll the entire community.
It seems, from what I've talked to people (including unity) that we are still going to have to wait a few more months for this. They even didn't want to support me with source code or extra help when I wanted to rig my own system. If you are not an big company AAA developer with thousands of dollars in cash forget making your own system or forget source code access to make your own.
Btw if you are interested in grass/tree billboard performance issues I've managed to rig out some kind of system that kinda works, partially with a lot of workaroundy workarounds.
If interested see the full discussion at:
bottom of the page.
There was a mention in the comments from the blog about the new splashscreen. One of the Unity people said they are busy at work on the terrain system. I think the team that is working on it is just one of those teams that does not have a very ´consumer friendly´person on it.
Until we have that cool new terrain system I tried to make up a little for the lack of cool Unity grass (and any cool grass on the asset store imo) with "Critias SpeedTree Grass System". Maybe anyone's interested.
Wanted to build on this:
Don't Build a Terrain: Build a Set of things that can be useful for a terrain, or anywhere else.
Trees (or more acuurately, large mass of objects that have physics and render cheap) placed on any mesh With no depencdencies on weird shaders , let us choose. Batch drawn so dead fast.
Grasses (a larger simpler mass of less complex meshes/posters for sticking on any mesh), again batch like crazy but let us choose the shaders.
Terrain (the wiggly bumpy thing that actually is rough land), preferably with the ability to go convcave (for bridges and caves, but just that, no bells.
No DX11, keep it simple for phones, dogs, and mortals.
Also note All of this should ideally be directly easily accesssed and edited at runtime as well as in the editor.
Having this stuff all heaped together in a black box means that in order to have one neat effect you need to inherit many other possibly irrelevant/crap effects.
For various reasons I have spent years replacing features from your terrain system just because all tools do not fit exactly, access to the key features without having to lump with the whole thing would have saved months.
Unreal 4 has some issues also with terrain, it is better than Unity but it is not optimized and lacks a forward renderer, Epic seems to have let down terrain features after the Kite Demo.
For Unity the best option is not to wait but take a good plugin on the Asset Store.
No 3D engine is perfect.
What alternative is there that improves performance over Unity terrain? While there are a few great terrain shaders in the asset store, the only actual terrain replacements are voxel engines and they not only take more memory, but also perform worse than Unity terrain.
Honestly it feels like the only way to have a decent terrain system is to either play with Cryengine with no game development plan in the future or build your own engine.
If a talented and practice developer were to make a new terrain system that included the features to have advanced tree, plant batching to have a large forest without a 60 something thousand limit, plus decent terrain control like special painting features for textures and foliage they would make a killing. As long as they do not charge thousands of dollars for features most users do not need.
I do not think Unity will be releasing a new working terrain system anytime in years. I am sorry but I do not. It takes time to get all the issues fixed with an open beta in Unity and so far we only got one comment on this thread from Unity about the terrain. Not meaning to be negative but instead really hope there is a developer, not in Unity, who plans on making their own simple but working terrain system. Other great developers assets for additional features like shading can fill in the gaps that will be requested. I have a lot of faith in a lot of Asset Store devs and hope one of them or a new one is looking into this.
Hey, just in case you're interested, besides the grass system I'm working on (check it out, 10milion blades of grass!) i also work on a tree system designed for huge open-doors, that looks and feels exactly like the SpeedTree system, minus the 'Unity' performance cost. It will not be capped at ANY count of trees. I already have great performance, with 100k+ trees, SpeedTree LOD transitions, tree-billboard transitions, practically no visual difference. Can't wait to make a demo with it!
Unfortunately I need about 2-3 more weeks for it, but I'll let everyone know when a demo is ready. The SpeedTree docs helped a ton.
One huge problem in Unity is lack of c++ code, since everything is coded into c#, incurring some performance overhead.
And we don't need only a tree/grass system, we also need a decent decal system and a decent detail system. The stock one from the terrain is quite bad, it doesn't support the millions of details with colliders that we require.
And don't think CryEngine is a silver bullet. I tried it out and it has quite a lot of problems and limitations and the terrain is among them.
What we need for Unity is c++ code source, and we should 'lobby' a little harder for that...
But yea, even if not a perfect solution UE is a lot better than Unity from many points of view and a lot of things it comes from stock and that you don't have to build from scratch.
Unity success is because of C# and CryEngine is trying to get C# for that reason.
About optimisations there is lot of areas to improve before needing C++, more real project games collaboration like "Recore" game is what can enhance Unity a lot.
Yes, for the most part it's better to code in C# when it's about gameplay. I even think that a visual-blueprint for gameplay coding would improve Unity a lot (a built-in one, not asset store one).
But when it's about low-level sub-systems like trees, grass etc... coding it in c++ can make a huge difference + you can see how they managed to solve-some issues, better profile code etc... And since most games made in Unity are mobile-oriented or small PC ones I guess that yea... c++ would benefit only a minority of the people out there.
And again not only that, but some problems are absolutely un-solvable without c++ code. For example in my grass system I had to find some very funny workaround for animating the grass that is drawn instanced. The player always carries around an 'aura' of invisible grass around so that I can copy the MPB from those and pass it to the instanced grass. Can't solve that without c++. And again, with the new tree system I have a lot of headaches trying to induce/dream what they had in mind when they made a thing in one way or another.
When I'll release the tree system you'll see exactly what I mean.
P.S: If you can live without awesome trees and awesome grass you can have games like 'Recore' without needing any of the above-mentioned integrations
That will be great to have! Looking forward to updates on it.
That is why I said
Meaning it is fun to play with but would not even dream of making a project in the engine. It still is an amazing terrain system though. No other engine comes close to the control and features of it.
Excellent. To confirm, it still works fine with existing Unity terrain? Looking forward to using new vegetation.
is there any more update terrain team? it's been a while. . . .
Btw, I've taken the liberty of deleting a bunch of posts that have no place where the discussion is Unity terrain. Keep it on topic.
can you ping any terrain team member?
They are hard at work. I know everyone is excited but they will reply when they have something further to show, rather than tormenting you.
well we are tormented already
Rather be given a meal once in a while to keep me alive rather than being starved for months or even years on end not knowing if the cook is even in the kitchen. That is how I feel at least.
I agree. I know the team is busy and we don't want them spending all their time in here answering questions, but there should be a community facing person who can give small updates on a regular basis so us game developers have an idea of how things are progressing.
Just a note, I've said I'll have something ready in a week or too, but I was fast and furious and if anyone is interested, my tree system is here.
100k trees at 150-450FPS on a GTX970 DX9/11, almost perfect transitions, done in 1 week and a little.
When the Unity guys will implement their new system they should look at how I've implemented it based on the SpeedTree's SDK documentation, a.k.a the official correct way. For the grass system I think they should do the same. No bad lods, no runtime batched trees, no tree instances, no extra useless rendering overhead. If I'm not clear enough, the SpeedTree's SDK is.
... I see this being useful for a lot of things not just grass and so on, maybe rocks and stuff too.
As an update, if anyone is interested, I've just released the pre-alfa of my SpeedTree system (250k trees, at 420FPS), with full source-code access. It can easily handle a quarter million tree instances, handle transitions etc... etc...in one word, act almost exactly like SpeedTree, minus the performance cost
I am sorry that it doesn't work out-of-the-box perfectly since it is the work of a week and two days. Unfortunately it is not yet recommended for granny's and code-agnostic artists.
You can find the project here and the WIP forum here.
Not usefull for people that doesn't use SpeedTree plugin.
Definitely. Need a user friendly system that works with any model type, shader. Glad you are working on this @Assembler-Maze and hope some work on what you are creating for others to use. Seems like the only hope for someone who wants a better looking terrain than pre Far Cry 1.
Yes, I am sorry for that. The detail system will be made for any object type.
But, if you expect the out-of-the-box system that works with everything, you shall need to wait a few more months till the unity guys sort it out, sorry . And nobody stops you from modifying my system (if you have a coder) so that it works for all tree types.
Best luck in your future project!
No, not upset with your work. What I meant was as open as you are with your 'in the right direction' work I hope there to be more expanded work with other devs that will fill in the pieces for all the users. So thank you for your contribution to the community. Really wish I had the ability to be as helpful as this.
About terrain texturing the best way would be a terrain where we could drop any shaders made in a shader editor like UE4 or modify predefined terrain shaders with the same shader editor. This allows more flexibility than predefined terrain and texturing shader, as you can add triplanar UV or not , or some POM or not depending or make a stylized shader depending on your project. Otherwise, there is Asset Store as always to rescue.
Not sure if this was mentioned, but what about supporting terrain that blends seamlessly with placed 3D meshes via vertex painting or something? As for grass, I was curious if particles could be used for a vegetation planting system?
Yes. I believe this has been a standard thing in Unreal for a little while.
Geometry blending needs to be painless and ideally fully dynamic with a modern terrain system. It makes the difference between additional objects like rocks and cliffs looking either glued or like actual parts of your terrain so it's an important part of creating coherent environments.
i wish some fresh news on that new terrain system soon..... terrain team, please.
I wish the terrain tools will have a feature to prevent grass to be under objects when we place or move objects like rocks.
Rock placement at 27:00
I am not sure Unity will do better than RTP3 that is fully complete and supports Tesselation as LOD to optimize rendering speed of terrain.
The community in UE4 suggested a grass blocking volume, it was a good idea..
Actually on that subject, I'm not sure if @bibbinator or someone else can answer this yet? What about the surrounding systems? I've not used Unity for something massive in a long while, so I'm out of the loop.
Are we all sorted with streaming / async'ing chunks of terrain with seperate systems like Umbra / GI / Navmesh? Just to note, it would be nice (as it probably won't be re-vamped for a long while) to have the systems used in your demo's cleaned up and added as native solutions. Like atmospheric scattering, fog with with in-scattering, vertex painting, deferred decals etc
if we talk about vegetation placement then we should go with more complete features :
- custom paint brushes with size variation, density etc depending on pressure
- define vegetation sets with size/frequency/density
- define vegetation sets rules (depending on types of vegetation, slopes, terrain textures, terrain type etc)
- repulsors and attractors (trees, rocks, ponds watervolumes)
- placement tools : hedges, rows, plantations etc
- trim/resize, repulse, attract, clump , group , cluster, paint around tools
and so on
I would just rather have the technology in place first - at least the community can then easily place them with any number of tools while waiting. This way, we get it now, not later.
I agree. The most important thing right now is a higher performing base terrain system with the infrastructure in place to do all the things we eventually want it to do. So, out of the box it should be as capable as what we have now, but lightning fast performance.
Why not some basic SVOGI like lightening ? baking is useless if we use time of the day.
sure, i'll wellcome technology now, i hope the system will be open enough to extend tools
SVOGI works like a charm, realtime, and yes baking is a pain in the butt.
but unity is an engine that has to cover from 2d game to 3D games, cryengine only cover (till now) hi spec games, thus high perfs but no scalability.
GI isn't actually all that necessary for outdoors, it's really hard to get great use out of it (for a terrain). For a bunch of rock meshes, maybe, but even then you find GI mostly shines indoors, were you know... there's actually something to bounce from.