The only fly in the ointment is that there seems to be a bug in the state node such that its UV1 output doesn't actually match UV1 output (you can verify this by building a simple image -> diffuse material then adding a state node and feeding its UV1 into the texture's position -- very odd.
I've reported this to Martin (it's causing the seams you can see in some of the bricks, which should not be there).
The problem doesn't affect sampling of tiling or procedural textures as badly, but it's a problem nonetheless since the whole point of this approach is to sample non-tiling bitmaps to create tiling patterns.
And yes, you get artifacts which may enhance OR detract from the quality of the material. If you use very high resolution sampling bitmaps the artifacts are pretty much negligible.
The blue part of the UV coordinates is just garbage (I guess they're actually UVW and W is always 1 or something).
i think putting a spatial gradient into a position is basically scaling.
like when you are walking in a slow train at the same speed, the velocities ad up, the speed doubles.
when you walk the other way they cancel and you stay in place related to the outside.
so when you put the state's uv into a node's position you do a scaling x2.
when you invert the uv you freeze the node, it will show the origin's pixel color all over.
i see that red means u and green v but have not yet figured out why the uv colors are always blueish like normal maps (put the uv into the diffuse of the pig material). maybe blue means height and is set to one by default ?
No, it's sampling. An RGB color is a 3d vector on [0,1]. A UV coordinate is a 2D vector on
R which wraps onto [0,1] when sampling bitmaps — but C3D passes around UV coordinates as 3d vectors (UVW). So think of each pixel in the "sampling" map as a UV coordinate encoded as Red and Green — it's the location of the pixel you want from the next image map along (hence "indirection").
So the identify sampler maps uvs onto themselves. To create your own samplers, simply grab regions of the identify map and build your own collage. You can rotate them too (but don't do funky things like blur them as this will have very weird effects).
Finally — the reason for the artifacts is that when you get to a boundary in the collage you're suddenly interpolating between arbitrary coordinates instead of neighboring coordinates. (This is also why blurring, etc., tends to be a bad idea. It's not doing what you might think it's doing.)