Hi everyone,
After a long time of hardworking, now I’m happy to present to you my latest asset Vista.
It’s a GPU based graph editor for terrain making, with robust biome system and lots of realistic nature simulations.
Vista has the following characteristics:
Non-linear: You can combine nodes (a basic building block of a graph) in any order to create the terrains.
Non-destructive: Your terrains and scenes are generated using rules defined in the graph, modifying a single property of the graph will give you a whole new terrain. If you want to go back to the previous result, just use the previous property value.
Local: Your terrains are mixed by a set of “local biomes” manually placed in the scene. This way it’s easier for you to control the scene layout and it fits better to your game’s story.
Vista is an open and modular system that supports any heightfield terrain system. Currently there are 2 terrain systems that are supported natively: Unity Terrain and Polaris Terrain. You can add support for your own terrain solution as well as extend the generation pipeline via scripting.
Learn more about its workflow here.
Join the Discord for discussion.
Do you plan on also creating a streaming solution (similar to how Procedural Worlds’s Gaia Pro has built-in terrain chunking and streaming), or will we have to manually set that up and rely on tools like World Streamer 2, which can be clunky to use?
Good read.
You mentioned low performance and a need of streaming.
But are you sure it’s not the occlusion culling that was missing ?
You did not mention any way to occlude invisible/far geometry in your article.
Hi,
The sole purpose of Vista for now is to generate good looking terrain data that can be applied to any heightfield terrain system, or utilized in terrain shaders & rendering tools. In short, “data generation”.
There is no streaming solution packed in, since I think I should keep the scope down so it can do one job at its best.
World streaming is such a serious problem, so I will leave it to another dedicated solutions out there.
That’s the plan for now, maybe I can make streaming possible in the future if I can gather enough resources.
I just purchased Vista Large World. I am still learning how it works, but I have a few questions I was hoping you could answer.
I allow players to chop down trees. Is there a way to instruct Vista to add a tree as a game object instead of terrain object?
Is there a place where I may find sample graphs for different kinds of biomes?
If a node does not exist yet for something I need, like creating an impact crater, is there a way to modify terrain at runtime (during playback) to accomplish this? i.e. a stamping tool or way to implement a node?
What are the benefits to your Polaris terrain implementation versus the Unity-built in implementation?
Do you have any demo scenes that show how water is implemented?
You can spawn trees as regular game objects for player interaction with the Object Output node
We have some sample graphs included in the package, and some graphs on the Discord channel. Also, there are some videos on Youtube to get you started.
After generate the terrains with graph, you can do anything on the terrain if you like such as stamping, etc. But note that if you regenerate the graph again, changes you made with stamping will be overwritten (lost)
You can define custom node, by derived from ExecutableNodeBase or ImageNodeBase class, there is no documentation available at the moment for scripting, please have a chat on Discord if you want to go this way.
Polaris can generate regular hard edged mesh terrain, a perfect fit for stylized looking games.
For water, just drop a prefab into the scene, there is probably no automated pipeline for it yet.
I was exploring possibilities of using Vista Terrain generation at runtime and encountered a strange issue in Windows Standalone Build.
It looks like the Terraces, when generated at runtime are produced in a lower-precision buffer.
You can see at the Screenshot, that after pressing “Regenerate” in the provided example scene, the terrain features look rugged (?)
I’m looking into this issue, trying to locate the reason for different precision in Editor and in Standalone Build.
Maybe as a developer of the package you would have a general idea as to why this could happen?
I would appreciate any suggestions!
Otherwise, the runtime generation seems to work fine, if you only attach a Perlin Noise node to the heightmap output (visible on the second screenshot).
UPDATE: Sorry its always just RTFM. I’ve noticed the big section called “RUNTIME GENERATION” in the provided documentation. Let this post be forever saved in the internet archives.
Hi,
It’s not about precision.
That’s because the shader variant of the Terrace node with mask has been stripped from build, so it run without the mask. That’s why terrace effect applied on the whole terrain.
This will not happen in the editor.
To fix this, you can simply add all in the [VistaFolder]/Resources/Vista/Shaders folder to the Always Included Shaders in Player Settings.
For better support, please consider joining the Discord channel listed on the asset’s store page, we can have a chat.
Regards,
Tam