I'm modelling a scene that is supposed to look like a real life model, not something realistic but something that actually looks like a model. And part of the scene includes this fake grass. enter image description here

It's a fake grass mat but with a lot of colour changes throughout the scene. I've looked up grass tutorials but they all show how to make natural grass with just a uniform colour. The kind of colour palette I'm going for goes from light green (as seen here) to a light-blueish brown with several darker shades of green in between.

  • $\begingroup$ Does it have to be a model (made of complex polygons), or are you open to "faking it" with a bump mapped texture? $\endgroup$ – Christopher Bennett Oct 20 '20 at 23:36
  • $\begingroup$ I'm open to both options, I'm not too experienced with making grass. $\endgroup$ – DieselD261 Oct 20 '20 at 23:53

You could try something like this (bump mapped material option).


I just used a couple of noise textures mixed together to make a randomly patchy surface. I used a mapping node to stretch (scale) it a bit to make it longer like grass. I used the mix as the basis for a bump map. The reason I ran them through a MixRGB mixed with white first, is to soften the contrast, which would give to strong of a "bump effect" otherwise. Even after doing this, I still had to reduce the "distance" on the Bump Node. I also used a third noise texture which I used as a mix factor for the "main grass colors". You can control the mix by sliding the sliders on the ColorRamp.


I used an Ambient Occlusion node to give extra dark (shaded) patches, as well as to add a bit of a darker blue accent color. This can also be controlled by the ColorRamp. Usually, when using an Ambient Occlusion node, you should enable "Ambient Occlusion" in the render properties panel to get the full effect, but in this case, the "full effect" comes out too dark without further manipulation, so I left it unchecked. The node itself still provides values that can be used.


Lastly, I turned up the roughness and turned down the specular reflections to make it less "shiny". These may need to be adjusted to better suit your "model".

This is just a simple approximation of a grass shader, you can get much more detailed if necessary, this is just a starting example. I'll include the .blend file so you can play around with it without having to set it all up again yourself. Hopefully you can manipulate it successfully to your liking.

File is here -

  • $\begingroup$ This is really helpful! Just one thing though, is there a way to have more than 2 colours for the grass? And thank you so much for the help. $\endgroup$ – DieselD261 Oct 21 '20 at 0:39
  • $\begingroup$ Yeah, you can have as many as you want (technically I have 3 there). You can either add multiple sets of two colors (like the ones I have there) by adding more MixRGB nodes and mixing them together using different noise textures - OR - you can plug the value I used as a mix factor for the two colors (the fac input) and plug that into a ColorRamp instead. you can change the color the "sliders" represent by clicking the box at the bottom, and you can add more sliders by pressing the plus button. You can add as many colors as there are "grayscale stages" if you want. $\endgroup$ – Christopher Bennett Oct 21 '20 at 0:45
  • $\begingroup$ How would I go about doing either? I'm sorry for being a bother I'm just not very experienced with the node editor. $\endgroup$ – DieselD261 Oct 21 '20 at 0:53
  • $\begingroup$ Sorry, I'm a bit busy right now so I don't have time for a detailed answer - I'll try to come back later. You add nodes using the add button above the graph. MixRGB is under color. What it does is mix two colors of your choosing optionally with a mix factor. the idea is to pick 2 colors, and then use a Noise Texture (add under "Texture") which is a random pattern as your mix factor to make the two colors combine in a "blotchy" fashion. If you have 2 or more of these mixes, you can then mix those together the same way, using a third Noise Texture. Do this as often as you need. $\endgroup$ – Christopher Bennett Oct 21 '20 at 1:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.