So, while building my own grass surface material, I came up with this very neat trick outlined by Graphisoft's own site:
"Tips and Tricks for Using Grass
If you want to let grass grow on a plane with a green material assigned to it, the Density setting, which can greatly influence render speed, can be reduced without affecting the overall look very much.
Grass that is thicker and longer than real-world grass helps simulate fuller growth without having to increase the Density value too much.
If the grass surface is very far from the camera you should consider using a texture instead of grass (for much faster rendering).
* Use a 3D Density gradient within the camera space in order to let 3D grass gradually fade into a simple grass texture with distance. This is the best way to reduce the number of unnecessary 3D grass blades.""
This is a great trick. Problem is, the coordinates don't work. The camera space just doesn't work like it should (put its own zero on the camera itself). And this only doesn't work in the grass. In other characteristics (like, say, diffuse), it works perfectly, and I can build a smooth gradient whose zero is the exact camera coordinate.
In the image attached, I have two slabs. One with only the grass attribute turned on (all the neat pictures and all the other effects turned off), and the other with only a diffuse effect turned on. As a way to help visualize things, I have the gradients on repeat (the final effect is supposedly without this repeat, of course).
In the black/white slab, the diffuse has a gradient effect with a 3D sphere type, coordinates 0,0,0, with a radius of 3.
The grass slab has a gradient effect on its grass attribute, with the same 3D sphere type, coordinates 0,0,0 camera space, with a radius of 1.
Moreover, if I move the camera, the underneath slab changes accordingly, while the above slab's grass maintains its exact shape.
This has been happening in all recent builds of Archicad, since 19 IIRC. I have never tried this before, so it's well possible that this has never worked at all.
Can you replicate this issue on your end, anyone? This is so weird, and forces me to have small patches of terrain so the render actually renders the grass (once you have too much of an area, the render simply decides to not even render the grass attribute, which is a clever way to avoid problems I guess).
I used to do what you describe: make little patches of extra 3D grass terrain close to camera.
In the end I just went 'sketchy' look and got rid of even the texture and just render out a nice shade of green and do watercolour effects in photoshop with the colour image and overlay sketch.
Even the grass texture adds huge render time, just because if you want a reasonable looking terrain, it will be very huge very quickly.
Netherlands (where we are) is very flat terrain, so I generally have a large flat circle shape terrain so I get an (almost) straight horizon line in 3D. Projecting grass on this takes up a lot of render time.
You can also add grass in postproduction a lot quicker if you would like to have realistic grass.
Of course, there are a bunch of different solutions and I do use many of them. If I could somehow solve this little issue, then at least the more silly solutions (like building patches, etc.), would just go away, it would all be automated and it wouldn't even be costly in terms of CPU (I'd have the cutoff near the cameras).
I'm asking whether if anyone else can replicate this problem, if it is a problem and not some misuse on my end, and if it is a bug, how has it been completely ignored for years on end?
It's possible, for instance, that it is a problem only existing on POR versions.
If I'm not asking too much, could you (or anyone reading this) quickly try to replicate this issue? It's very easy to setup:
First, create a new surface material, go to the grass attribute, put it on, etc., and add in the density the gradient effect. Then change its type to 3D Sphere, change the setup to Camera Setup and see if it renders correctly? I'd appreciate this a lot.
I checked it out, and it seems like it is a bug in the CineRender Engine. It worked fine in the version we used in ARCHICAD 18, but in the new engine it doesn't work anymore. We have let MAXON know, and hopefully we will get a fixed engine from them.
The issue is very specific: the 3D methods don't work properly for grass when the space is set to anything but "object". This means the workaround is either patching the grass surfaces, or using 2D methods instead (the latter may be a bit more elegant, but harder to set up).
Daniel Alexander Kovacs
Professional Services Consultant
For Troubleshooting and useful Tips & Tricks visit