Get texture to never distort or change scale without manual unwrapping To clarify things, as most of the firsts answers suggest I need a better wording:


I'm looking for something like the "smart UV Project" unwrapping method but real time (like a node or mix of node in the material or a projection mode in the texture property or a modifier, whatever adapt to changing meshes)
Why real time and not through unwrapping ? Because most of our objects are parametric, most of the geometry comes from modifiers for ease of management, memory efficiency and many other reason which makes applying those modifier impossible without involving 10x time the workload for the project. So we sometime have only 2D meshes, the rest is an animated modifier stack. As our objects are mostly not organic, stretching is not wanted. Another reason are big meshes (more than a million polygons, really hard to unwrap).


Original Version:

I would like my texture to always keep a scale and be orthogonally projected following the ngon's normal it's projected on, without unwrapping, so that textures never get distorted, whatever modifications are made to the mesh in edit or object mode. (so if you look at an ngon with orthogonal view mode, facing the ngon, the texture looks exactly like in the image editor)

I Tried "box" projection mode in texture panel. It works to some extent on a plane with "texture coordinates" set to "object". I can move edges and scale, but if I rotate the mesh on the x or y axis, it starts to distort because the projection is in object coordinate instead of following the ngon normal.

The solution should work on complex meshes.
If you don't want to unwrap, the only way I know how to achieve what you are asking for is by using 3D procedural texture shaders. You can achieve some very impressive results if you learn how to work with them and or code them yourself. Blender has some built in that you can layer up on top of each other, though it will likely take you a lot longer than unwrapping UVs and painting to make look nice.

Note that with procedural textures, you will lose a lot of control. With procedural textures you are trying to emulate a texture using math. So getting a dent or scratch right where you want it is difficult, getting an image like a decal is nearly impossible - or will still require unwrapping UVs and a good ol' fashioned texture. So basically procedural textures are really good if you have a repeating natural pattern such as landscapes, dirt, rock, metal, wood, cement, but not for highly controlled images/decals.

If you need your model to deform, you need to use refP or whatever the Blender equivalent is (relatively new to Blender myself.) Essentially, because you are using vertex positions as the coordinates (world space or object space) instead of UVs, if the vertex positions change or morph, your texture will swim unless you are using a static reference position/frame as your texture coordinate.

So moral of the story, if you have a deforming object or an object which needs a high amount of control and or decals/images, you are stuck with UV unwrapping. Honestly UV mapping is relatively painless in Blender with their seams. I prefer this method to all other solutions I have seen.

I know Disney came up with some form of mapping which made it so you don't have to unwrap or mess with UVs called Ptex, you just paint directly on the faces and each face stores its own image map of sorts (texels). But Blender obviously does not have that in their toolset. Here's the reference on that:
http://ptex.us/