Hey dear community, is there any way to improve the look of grass assets, like adding a bit of gloss or normal map? Because in the grass paint options you can only add the texture and some settings. I dont know why, but it looks pretty crappy Maybe because there is no variation in it, but can you add gloss or normal maps on it or any other suggestions? Sincerly, ElGreco
What shader are you using? Normal mapping might help to simulate the curvature the of leaves. Right now they look like they're part of a flat plane (because they are).
TRy creating a shader with two grass textures and use 1 alpha channel 2 blend them together. Then use a normal map and a rim light . And youre done.
If you want to improve your grass, you can use other shader like you said, but I suggest you to look at some modeling tutorial. It's not hard and you could improve your rendering. As you can see in this tutorial. The grass is not in one flat plane, you need to create multiple rounded planes (not so much, I think you care about performances). You can follow this tutorial on Unity until step 7), next is for creating grassmaps. PolyCount Grass Crydev
this is a example of how i use grass these are the settings and this is the code Code (csharp): Shader "MMWizard/Rim/Terrain" { Properties { _MainColor ("Main Color", Color) = (0.5,0.5,0.5,0.0) _MainTex ("Main(RGB)", 2D) = "white" {} _SeconTex ("Second(RGB)", 2D) = "white" {} _MaskTex ("Mask(A)", 2D) = "white" {} _BumpMap ("Bumpmap(RGB)", 2D) = "bump" {} _RimColor ("Rim Color", Color) = (0.26,0.19,0.16,0.0) _RimPower ("Rim Power", Range(0.5,20.0)) = 5.0 } SubShader { Tags { "RenderType" = "Opaque" } CGPROGRAM #pragma surface surf Lambert struct Input { float2 uv_MainTex; float2 uv_SeconTex; float2 uv_MaskTex; float2 uv_BumpMap; float3 viewDir; }; float4 _MainColor; sampler2D _MainTex; sampler2D _SeconTex; sampler2D _MaskTex; sampler2D _BumpMap; float4 _RimColor; float _RimPower; void surf (Input IN, inout SurfaceOutput o) { half4 main = tex2D (_MainTex, IN.uv_MainTex); half4 sec = tex2D (_SeconTex, IN.uv_SeconTex); half4 mask = tex2D (_MaskTex, IN.uv_MaskTex); o.Albedo = lerp(main.rgb, sec.rgb, mask.a); o.Albedo *= _MainColor; o.Normal = UnpackNormal (tex2D (_BumpMap, IN.uv_BumpMap)); half rim = 1.0 - saturate(dot (normalize(IN.viewDir), o.Normal)); o.Emission = _RimColor.rgb * pow (rim, _RimPower); } ENDCG } Fallback "Diffuse" }
The color of your grass is way to dark compared to the terrain, either darken your terrain texture or lighten your grass detail to match either one, this will make a much more realistic blend. Think of it as not trying to make your grass look like a separate asset, your trying to give you terrain more depth. What you can also do is use crossover planes for a detail mesh instead of bill boarding a single plane, this will add a lot more depth.
Sorry to bring this post back up, but, Ben, what is a "crossover plane"? I've tried to find this phrase elsewhere and haven't gotten any good leads.
I think he meant something like what's shown at figure 7-4 at http://http.developer.nvidia.com/GPUGems/gpugems_ch07.html
Sure do, I've updated my post I case anybody els is having trouble. Most design elements in unity are quite universal in the software world so it's good to do some research on other engines as well.
Disabling billboard option should do the joba isn't? billboard grass is evil btw.....if you looking for realistic grass style