Baking Terrain and Fixing Black Grass
Black grass usually appears when Unity terrain details, terrain materials, or baked lighting data disagree after a bake. Use the original akalink video for the Unity demonstration. The notes below focus on VRChat world checks before using the setup in a live project.
Test the grass fix in a duplicate scene, clear old bake data, then rebake only after the terrain and detail settings are understood.
- Start from a backed-up Creator Companion project.
- Confirm whether the black result is on the terrain surface, the grass detail texture, or a mesh detail.
- Clear stale lighting data and test a small bake before rebuilding the full scene lighting.
VRChat worlds usually benefit from baked lighting, but terrain details still need platform testing. What looks acceptable in the Unity editor can become too dark, too expensive, or visually different after upload.
Playlist Companion
Creator: akalink
Watch on YouTube: https://www.youtube.com/watch?v=ESGUg7SKmRU
Good Fit
Use this when Unity terrain details turn black or too dark after baking lighting and you need to isolate whether the issue is terrain material, detail mesh, or bake data.
Before You Start
- Confirm you are using the supported VRChat Unity version for the project.
- Open the project through VRChat Creator Companion when possible.
- Check for red Console errors before assuming the tutorial step is the problem.
- Make a backup or duplicate scene before changing terrain, lighting, material, or SDK settings.
What To Check First
| Symptom | Likely area to inspect | First safe test |
|---|---|---|
| Grass details are black, but the terrain surface is fine | Terrain detail settings or grass material/color | Edit one detail prototype and test a tiny bake |
| Terrain surface is black or blotchy | Lightmap data, terrain material, or lighting settings | Clear baked data and rebake a small scene copy |
| Everything is too dark in shadow | Environment lighting, indirect bounces, or ambient setup | Raise ambient/indirect test values in a duplicate scene |
| The editor looks fine but upload looks wrong | Build target, shader, or VRChat platform behavior | Upload a private test and compare in-world |
Black grass is not always one bug. Treat it as a lighting pipeline problem until you know whether the issue belongs to the terrain, the detail prototype, the shader/material, or the bake data.
Follow-Along Checklist
- Save the current scene and duplicate it for testing.
- Open Window > Rendering > Lighting and note the current bake settings.
- Clear old baked data if the scene has been through several failed bake attempts.
- Select the terrain and inspect the painted detail prototypes.
- Check whether the grass uses a texture detail, a mesh detail, or a custom material.
- Bake a small test scene or isolated copy before rebaking the production world.
- Upload a private VRChat test build if the fix depends on runtime behavior.
Terrain Detail Notes
Unity terrain can render grass and small details as textured quads or meshes. Detail meshes can use render modes such as Vertex Lit or Grass, and those modes respond differently to normals, wind, and lighting. If the black grass only affects one detail type, compare that detail's render mode, material, color settings, and texture alpha against a detail that still works.
For VRChat worlds, keep terrain grass practical:
- Use dense grass only where players will actually notice it.
- Prefer small test areas before painting grass across the whole terrain.
- Watch material count, overdraw, and platform target when grass uses transparency.
- Recheck lighting after changing terrain detail prototypes.
Help! The grass turns black only after generating lighting.
Duplicate the scene, clear baked data, then rebake a small test. If the problem returns, inspect the terrain detail prototype, material, render mode, and ambient/indirect lighting settings before rebaking the full world.
Help! The terrain surface is fine, but the grass is black.
Focus on the grass detail itself rather than the whole terrain. Check whether it is a texture detail or mesh detail, whether its alpha is valid, and whether its color or material settings are being multiplied too dark.
Help! The fix works in Unity but not in VRChat.
Upload a private test build and compare the same location in-world. Build target, shader support, lighting data, and platform restrictions can change what you see after upload.
Help! I want to apply this to a production world.
Rebuild the fix in a small copy first, then move only the confirmed terrain, detail, material, or lighting changes into the production scene. That keeps lighting experiments from becoming permanent project clutter.
Official References
- Unity Manual: Grass and other details
- Unity Learn: Configuring Lightmaps
- VRChat Worlds
- World Components
- Allowlisted World Components
- World Creation, Optimization, and Community Labs Tips
Related Docs
Topics: unity, terrain