[RELEASED] LushLOD Trees Beta v0.72!

Hey everyone! I’m excited to finally be able to launch the first beta release of LushLOD Trees. I have spent over a year creating these trees, along with the shaders and code that makes them work.

Originally I just needed some trees for a top-down game I was creating. I needed the trees to be 3D, super fast and with smooth transitions. I tried various tree packages on the asset store and I noticed that often they would pine away in the distance (pun intended). Some even turned into nothing but sticks in the distance (the leaves would disappear). I needed a forest that would look thick and scrumptious even in the distance, so I wasn’t satisfied with the results I was seeing.

So I decided to create my own custom tree system. I called it “Lush” LOD, because my goal was to create a lush forest, thick enough to block the sunlight if you were standing in the middle of it, but which could run at high frame rate, and still look good even in the distance.

At first I was just going to keep it simple, maybe a two week project. But I kept working on it, and improving it, and eventually I realized that I had created something that really didn’t exist until now.

Here’s just some of the features:

  1. Perfectly seamless transitions (more seamless than SpeedTrees)
  2. Faster than SpeedTrees for the billboards and the mobile quality options.
  3. Better shadow handling than SpeedTrees for some types of lighting setups.
  4. Deeper support for Unity’s Englighten and shadow baking options.
  5. Can convert any tree created with the Unity Tree Creator.
  6. Multiple quality levels ranging from Low to Ultra.
  7. Billboard only mode, particularly useful for mobile games.
  8. Supports wind zones.
  9. Trees and the billboards do not bend or twist when you move the camera.
  10. State-of-the-art post processing, transparent dithering, angular correction and seams blending effects.

This is a beta release, and these trees will continue to improve. More features and optimizations are coming in the next few beta releases which I am really excited about. :slight_smile:

As I am using these trees in a game I am producing, you can expect that these trees will continue to be developed, improved and optimized for the long foreseeable future.

No monthly subscription fee. :slight_smile: Just a one time price, and you will receive all future updates for life.

Works with any tree created with the Unity Tree Creator. Future updates may include the option to use trees made with other packages (if enough people request it).

Discount: During the beta, I’m offering LushLOD Trees at a discount.

Asset store link: The Best Assets for Game Making | Unity Asset Store

3 Likes

I just submitted version 0.72 for approval. This update brings several significant improvements to the transitions and dithering algorithms, along with several small speed improvements, some cleaned up shader code and a few minor bug fixes.

Check out some of the improvements that come with this latest update:


Before / After: On high contrast areas, the shader now does a better job to smoothen out the dithering.

The little “Original” image in the bottom left corner shows what it looked like prior to running the post processing effect shader. It starts out with about half the pixels missing. The “Before” picture is the image that was produced in version 0.71. The “After” is the image now being produced in version 0.72. Note: This is a billboard in the distance, zoomed in 5x.

List of changes:

  1. Several significant improvements to the transitions and dithering algorithms.
  2. Several small speed improvements.
  3. Removed debug code from shaders.
  4. Minor bug fixes.

More optimizations and visual improvements are coming soon! :slight_smile:

Asset store link: Unity Asset Store - The Best Assets for Game Making

Someone requested before / after screenshots that aren’t zoomed in…

So I took a few more before / after screenshots and uploaded them here: Imgur: The magic of the Internet

I’m interested in this product, but have a few concerns. First, I went to your support page and saw there were two demos for comparison of SpeedTree vs. LushLOD Tree performance. The page says that frame rate is not capped, but when I run either demo I see basically 60 fps with occasional flickers to 59. That kind of result seems very consistent with frame rate capping so I can’t really evaluate the difference. Second, I develop for the Wii U and will continue to do so for the next year and I’m still looking for the best tree solution. You say this is only tested on PC platform, but that other platforms are definitely being worked on. So, I’m just wondering if I were to grab the beta if you’d be able to help resolve any Wii U issues I might encounter or would I be stuck waiting for some future time when you might get to analyzing that?

When I said frame rate not capped, I meant that vsync was turned off. I would assume with vsync off, you shouldn’t be capped to 60. So I’m not sure why you’re seeing the demos still capped exactly at 60.

I haven’t tested it on Wii, and I don’t have a Wii to test it myself with. But here’s the thing, the full source code is included. So if you do have an issue getting it to work on Wii, you may be able to fix it yourself since you have the source. And if you do implement a fix, you can send me a description of the fix and I’ll be happy to implement it on my end so you won’t have to redo it every time I update the package.

Right, that’s what I thought you meant as well and I certainly wouldn’t expect it to look frozen around 60 as it does on both demos. So that seems quite odd.

I may give it a try, but I’m not sure I could fix any issues that might arise. It depends on the problem. Wii U issues usually involve either AOT-only bugs or shader bugs and I’m no expert in either.

Do you have any code that would have issues with AOT platforms?

I went ahead and took the plunge and purchased it. I’ll give it a try soon and let you know if I encounter any issues on the Wii U.

I decided to take a chance and buy this product )

I tried this last night on the Wii U and had some issues. I can’t give in-depth details since I didn’t have time to dig deeper, but here are the highlights.

First, in editor play mode the trees all looked transparent.

Second, on Wii U I saw continuous stream of warnings that a behavior was missing from some object. I don’t know what object or what script. I will have to see if I can figure that out in editor mode.

Third, on Wii U all trees simply looked like opaque billboards.

At least it didn’t complain about AOT issues or crash the system, which is typical for an asset not working on the Wii U. So maybe there’s some hope.

Hey everyone, I created a small demonstration video showing just how smooth LushLOD Tree transitions are in comparison to SpeedTree transitions.

I wanted to make this video because a huge part of the value of LushLOD Trees is in the quality of the transitions. Of course I did put a big effort into making them as fast as possible. But many months of effort went into the transitions. So definitely compare the frame rates, but don’t forget to take a close look at the transitions that other packages on the asset store are giving you.

@magique For some reason, I didn’t get any email notification that you had posted more replies here. But anyway, In editor mode, the trees will look transparent only if you have ultra quality select (actually they’re made up of lots of little pixels in a checkerdboard pattern. This is because the post-processing effect required by Ultra quality doesn’t/can’t run while in editor mode.) As for your second and third issue, I’m very interested to hear if you’ve discovered any more specifics about what’s happening.

1 Like

And here’s a demo with just LushLOD Tree transitions, with a wind zone turned on:

Note that the trees use absolutely no “alpha blending” in the shader. This means that the trees are not going to act like transparent “particles”. They are only alpha clipped. And they act like geometry objects, like they should. And they fully use Z-ordering (which alpha blended objects can’t use), which means they don’t flicker. All of this is true for both the high quality tree models, and the billboards. All of the transparency seen in the transitions is created by a complex post-processing effect.

1 Like

Where exactly is this Ultra quality setting at? If you’re referring to the standard Unity graphics settings then I definitely did not have it in anything but just Good quality. If there is some specific setting in LushLOD Trees itself then I don’t know where to fix that.

No, I haven’t even tried yet. I was hoping you’d have some insight. Maybe if I can change the Ultra quality setting somehow then that might help things.

I seen a post where it said it worked well for mobile, or was built for such? or I’m I wrong?? also on the store page, it said it was for Desktop but was unsure of other platforms.

So my question how well or does this work for Android? If so, do you have an APK, where we can test it before buying ? If not maybe a quick video…the reason I ask is I bought to many tree assets in the past most in beta and they do not work for OPEN GL 2.0 at all… or work well for Android at all.

So this is why your asset interest me, as I been looking for a asset that works for larger terrains, with multi terrains, tiles etc. Is this possible…I also Stream my terrains in most of my games for Android, IOS, and other plat forms. So this is a must… Just making sure there isn’t anything there that can interfere with it that you know of.

Thanks for any info. Looks great by the way. You have my attention. and hope to buy if Android is supported.

PS: What I mean by Stream, I use tools such as World Streamer and my own custom tools, which work like World Streamer and work with it.

@recon0303 It has a “billboard only” mode, which is designed to be super fast. However, it’s never been tested by anyone (apparently) yet whether it works on mobile. You might want to wait. I am sure someone eventually will test it on mobile and then we’ll all know if it works. One thing I can say is that almost all of the shaders were made with Shader Forge. So the real question might be, does Shader Forge produce shaders that work on mobile phones.

@magique There is documentation in PDF format that explains how to properly set up LushLOD Trees, and how to set up ultra quality setting. It doesn’t work right without a script that has to be attached to the main camera, and there is a setting for Ultra in the LushLOD Trees Manager.

In my initial test I wasn’t concerned with setting up the asset or any type of settings. I simply used the provided Gaia sample scene and tested that. So I assume it was set up correctly, but I don’t know what settings are used for that scene. I will have to investigate deeper.

depends how they where set up in Shader Forge, you can set them up for mobile or non mobile so depends. If you had an APK of a scene that would be the best way to test Android for others, most people won’t buy just for it to NOT work, unless they are doing mobile and Desktop .

But your choice if you decide to have an APK, I would be happy to test on Android, I have 2 tablets, and 6 Phones I can test on. Let me know if you decide to make an APK for others to test to make sure it works . If it works I will be happy to support the asset .

Thanks.

I am interested in this asset as I believe it could perform really well also with a very large number of trees using geometry batching, did you try creating a scene with > 100k trees and batching ?

1 Like

Also interested in instancing/batching. I would like to use this for a space-to-surface transition on a voxel planet (octree chunks).

It would be nice to have an ultra-low LOD that is just the top-view quads for view from high in the atmosphere. This will work with meshes, correct? And if it doesn’t support it yet, I should be able to easily modify it for use on a planet? (spherical normal alignment)

How does tree placement work for a mesh? Does it require a splat/texture? Can I procedurally generate tree chunks (aligned to my chunk normals) and feed it a list of vertices for positioning? Does it require colliders to use with a mesh?

Hi. Does you tree shaders support instancing?