This is a small Blender script for trees, 3d-grass, spectator, sky-boxes (or tree-trunks if you use them), dont apply to other geometries.
It makes all normals of all selected objects point up, so shadows look better with this; althought it would be better to have bottom vertices of trees not pointing up. I should note that it only works for all vertices you selected before in edit mode, but script works in object mode for all selected objects. So if you select all the top-vertices only before using the script, the bottom vertices are not changed.
Just paste into Blenders python console and hit enter; tested with Blender 2.79 and the new 2.8 too.
Code:
import bpy
objs = bpy.context.selected_objects
for o in objs:
me = o.data
me.use_auto_smooth = True
# Normal custom verts on each axis
me.normals_split_custom_set([(0, 0, 0) for l in me.loops])
# Set normal for selected vertices
normals = []
for v in me.vertices:
if v.select:
normals.append((0, 1, 0))
else:
normals.append(v.normal)
# make csn's all face up.
me.normals_split_custom_set_from_vertices(normals)
proof after that: violet "split normals" indicator do point up in edit-mode (turn on in overlay menu, Blender2.8):