Mapping in world space in Cycles- without UV

I would like to project a texture on an object in a standard way (i.e. cube/box, sphere, cylinder) and have it be part of the material data, not the object data. So I can assign the same material to another object without doing an unwrap. I know it’s easy enough to do in the UV editor, but I am thinking procedurals here mostly.
Is this not yet (being positive here!) implemented in Cycles? Am I missing some dialog that contains this option?

For global space coordinates, use a texture coordinate node and object data node, then connect the object output of the texture coordinate node and the location* output of the object data node into a vector math node set to add. When you plug it into the vector input of the texture node, the texture will appear to be swimming through space when the object is moved just like in BI.

    • I keep forgetting if the object data node has the output labeled as ‘position’ or ‘location’, either way it does the same thing.

Thanks Ace! Is there a node to specify how the texture is mapped to world space, or is the default (looks like z-projection) the only option?

Procedural textures (like you mentioned in your first post), should be able to wrap around using all three axes by default. For Image textures though, just change the mapping type to ‘Box’ and set the blend parameter to something like 0.5 or 1.

Thanks for the tip about blend, Ace. There’s always some new thing staring me in the back of the head! In this case it was that at the bottom of the textures properties there are some options about remapping axes that are not in the mapping node and might be what I was looking for - if not now then some other time.

I was searching for world space mapping and came here, the method you describe @Ace_Dragon works but only as @DruBan suspected in just one axis, not the three, do you know how to fix to that?

I don’t think the built-in box mapping can have the axes remapped (at least I have not found a way to do so).

You will have to construct your own solution if you want to do that (with a combination of normal data, mapping nodes, and masking).

Im trying to create some parametric materials for building a Roman Fort, but I don’t want to UVW unwrap the majority of it and I’m looking for a way to use world space mapping, where you define the materials with parametric textures and they get applied to lots of buildings, maintaining size over all of them, but I’m lost. I’ve managed to use the “object” coordinate and it kind of works but It breaks apart with the brick texture, do you have any clue how could I do it @Ace_Dragon ?

Is this what you where suggesting @Ace_Dragon?

The normal socket of the geometry node would be fed through a separate RGB node and the data used as a mask for the texture node’s object coordinates rotated in different directions using the mapping node.

By default, the object coordinates allow a 2D texture to appear in perfect condition on the Z axis, the masking and rotating is so the texture can also appear intact on the X and Y axis.

each of the RGB outputs goes to a mapping node? I’m a bit lost here

And by mask you mean the factor input of a mixRGB node?

@Ace_Dragon what’s next? three mapping nodes with different rotations connected each to the RGB outputs?

The brick texture generator is a 2D generator, not a 3D generator like noise or voronoi. You need to use several brick textures and normal masks to blend them, perhaps a special case for the angled wall if you want persistent brick sizes.

For the cylindrical tower, you need to calculate some cylindrical coordinates. Without UVs, all towers will have to be their own object so that object origin can be used to calculate cylindrical coordinate.

I have made a 3D tile generator (not bricks) using nodes, but it was kind of tricky to setup and even use despite being a much simpler setup than a brick would be.

I’d suggest you go find some kind of triplanar mapping node setup for this. You only need one without any boxblending so it should be simpler and faster. That will cause angled walls to have stretched bricks though, and probably won’t work well for a tapered cylindrical object.

The scene I posted is just a crude sample, no the actual scene I’m working on but you really have clarified much obscure information there was in my head. All in all, I think it would be better after all to just unwrap things. I was dreaming of a perfect world where I could effortlessly map volumetric textures onto surfaces following the normals on the faces, but it seems too complicated and still would have issues. Thank you @CarlG!