I finally found out why object populations aren't showing when multiple surface layers are in effect in shaders. The objects sit on the main terrain, but each surface layer adds a small amount of displacement upwards. With enough surface layers, it will eventaully submerge your objects, and they will not show up.
What I had to do was change displacement multiplier to 0 and change the displacement direction to "lateralize normal" so if it adds it, it will only go sideways and not up. I tried just "0" and this still didn't work, so it required the "lateralize normal".
Anyway, what a pain it was to find this out. I spent days trying to find out why my populations weren't showing up, only to find out they were submerged by the multiple surface layers. It wasn't an object or population issue as I first suspected.
thanx for the heads up...good find...
Unfortunately, I might be wrong. All of the sudden, the problem is back, even with those settings.
Ok, I had "intersect underlying" checked on some of the surface layers. I removed the check, and all seems fine.
Wow. What an education. Thanks. :)
Actually, I think you can get the populations to sit on any selected surface or subsurface. (There still seem to be issues with really large displacements, though.) Lets say you have a 'soil' layer sitting on top of rock, then a 'grass' layer sitting on the soil. Let's also say that all the layers have some displacement. Let's say you want grass clumps to sit on top of the top-most layer, the grass. Create a 'Compute Terrain' node. Connect the output of the 'grass' shader to the input of the new compute terrain node, and the output of the compute terrain to the 'terrain shader' input of the grass clumps. This should cause it to sit on top of the grass layer.
Thanks, Harvey. That couldn't be any clearer.
Let me tell ya, I struggled with that.
;)