I’m not sure if making terrain in a 3D editor is a good way to go. Seems like the Panda’s terrain generators are better for performance, with LOD and stuff. But then, I’m not into terrain much, so I might be completely wrong or missing something.
In any case, you can obviously do this stuff manually if you model in a 3D editor, sure. Obviously, you have to remember that each decal made this way (manually or not, doesn’t matter) adds to the overall mesh count, so you will want to flatten those that have the same textures, materials and offset settings.
That all depends on your camera settings, I guess. The usual rules apply, if you add many decals with distant camera clipping planes, you will get z-fighting and other problems.
What you’re talking about is what I was initially doing with my decals, before I found out about depth offset, but that’s not what depth offset is about. It’s more dynamic and intelligent. Offsetting manually will fail once you move away from the surface, resulting in z-fighting caused by the distance between the polygons being too little to be accounted for in the buffer. Depth offset takes that into consideration and offsets rendered polygons accordingly.
Obviously, as stated above, if you put many decals on top of each other (with many “depth offset layers”), the topmost decals may effectively be rendered on top of stuff they’re not supposed to be seen though.
Here’s the decal code from my editor (with all editor-specific code removed):
dl.dropbox.com/u/196274/decal.py
Also, please remember, that this won’t work for dynamic things, like flashlights. It will only work for adding detail to your scenes, and it does a really good job at that.