One thing that would really help sell me on this product would be if it included a tool to convert existing detail mesh painted with Unity’s grass system into your system so that it could be easily applied to existing projects without having to repaint all the detail mesh.
The system gives that possibility for trees. However for the grass and other details I don’t know at the moment how can I convert a detail instance from a splatmap to a world position. I couldn’t find any easy to understand information about that mysterious ‘GetDetailLayer’ and it will take me some more time before I’ll be able to decipher it (unless there is some detailed information about that somewhere?).
But I agree that it is a very important feature and I would simple add it as a patch to the system instead of submitting it for a community vote.
For V1 (the one now in review) it will not feature detail extraction, only tree extraction.
I hope that with the first patch I’ll be able to fit in the detail extraction too. However, as I said I have to figure it out through trial-and-error since the info about that API is kinda slim.
Extracting is possible for trees (check out my previous post).
However the grass interactivity implies shader work not so much as system work and I’ll post it as a community vote in the next months after the system is released. Not even UE has it by default
I’ve just tried to rig up a simple extractor for the terrain details and it wasn’t as difficult as I thought initially. However it won’t come to the asset store with V1, I’ll pack it up in V1.1.
One note though. The system extracts all the foliage as instances and those take a whole 4x4 matrix per instance. I don’t recommend the technique being used for terrain larger than 4x4km if you plan to pack it with grass.
If you have huge terrains I suggest the procedural placing of assets using the ‘RuntimeAPI’. It is not supported by default in the system since the asset store is completely packed with assets that generate procedural data…
There is a runtime API (not very developed at the moment) and a edittime API and by using those you can dump right into the system instance data from ANY 3rd party world generation data you wish.
However the integration is not very tightly coupled, since the developer of that 3rd party API would require to build his system around my API and I’m sure nobody is willing to do that.
I’m not sure what the manager that you linked does, but it seems to be some sort of manager and not an drawing/generation API. I’ll have to look into gaia later to see if it provides some API integration method.
The idea of the world manager api is to allow a range of different third party assets to be used together and controlled through one api set. Some of the demos Adam has shown are using unity’s timeline to control the world manager api, and through that CTS (shader), Enviro (weather and environment) and Gena (spawning tool). If you were to include a subset of world manager APIs in your product, then your tool could be easily used with any other world manager compliant asset without you making any further changes.
If Unity provided a general purpose api set like this, you would surely support it and we could all reap the benefit, but as Unity haven’t, Adam has proposed and implemented one and made the source freely available. Each asset developer only need implement those world manager APIs that they feel are relevant to their product.
I’ve looked into the manager, however I couldn’t notice any hooks or something like that that spit out instances of anything. I’ve saw a lot of hooks for the environment none for the callbacks I need.
However I’ll ask on the manager’s forum just to be 100% and maybe I’m missing something. Hang on tight, I’m sure that there can be some good solution to this.
The current solution is to generate all your data on the standard unity terrain and after that dump it all in my system (I provide the methods of extracting that data) but yes, I know that it is an necessary extra step that can be simplified.
Does this system work with unity’s latest Enlighten shadowmask light baking setups in 2017.1?
So it bakes in shadows on the ground then uses realtime shadows in the front. Seems like your tree system would greatly benefit for even more realism so when looking out in the distance you have baked shadows on the terrain ground around the trees and grass.
Also does this work in single pass stereo rendering for all VR headsets such as vive and oculus right now.
When Unity bakes it’s lighting it pulls it’s required data from either the terrain or from the game objects. It does that internally. So having a bake that takes into account my trees or grass is absolutely impossible at the moment.
It is because the class ‘Lightmapping’ from Unity DOES NOT allow me any room for injecting or otherwise adding my objects that are stored in my system only as a Matrix4x4 and a reference to a prefab.
One workaround would be to have the trees as normal objects painted on your terrain and have only the grass in my system.
PS: For the VR stuff I think it does, I’m not sure however. I’ve copied the used shaders with little modifications so it should work like they work by default in Unity.
See my previous post too. However the billboards are a different kind of thing, they exist outside my system so it should not be a problem integrating them with the lightmapping scenario.
However due to a bug that appeared in 5.6 (if i can remember correctly) the shadows of the billboards are drawn all over the place instead of having them at their designated location. I’ll see to modify the shader to manually include a custom shadow pass to solve the issue. So it is absolutely on the todo list.
PS: However, I’d think that for the scene’s dynamism, wind for billboards might be a lot more important than shadows. Looking at some games I’d say that instead of having a ton of static billboards looking at you looking is quite damp and that wind might really add a lot.
Got a question about speed tree shaders. Speed tree never updated there shaders to use PBR shaders. Have you had any thought about adding that into there shaders or its not doable with your system?
That is more shader work rather than my system’s work. However I thought at that and I don’t see too big of a problem… The shader ‘should’ be quite easily modified to support the PBR stuff. However you’ll have to provide your own PBR textures to it.
I didn’t added the feature to ‘add’ trees at runtime in V1 (the one that is coming to the asset store now) but since I think that runtime generation of data is very important there will be the possibility to add trees to the system.
I think that I’ll add that in V1.1 that also has some other stuff implemented, like detail extraction from the terrain. However the review seems to take ages (already day 10).
So yea, the adding at runtime of grass/trees is planned for version 1.1 that should arrive shortly to the store after version 1.