This patch adds a first WIP version of an UDIM node.
Essentially, UDIM is just a standard that extends the UV area beyond the unit square by assigning an ID to each square and storing each tile in its own file.
Therefore, this node is essentially a Multi-Image-Texture node that automatically figures out which tiles are needed, loads them and then uses the correct one in the kernel.
There are three limitations currently:
- No OSL support. Would be fairly easy to add, just didn't do it yet.
- No UV input socket, instead the user directly selects the UV map in the node. The reason for that is that the host code needs to know which tiles will be needed, and if the shader tree is doing some funky things to the UVs, there's no way of predicting it. By directly selecting an UV map, the sync code can loop over all UVs and check which tiles are needed.
- No support for packed files - could be added by just searching the Image datablocks for one that has the correct name, but that brings up the question of how to handle UDIM in Blender outside of Cycles, so I've just not added any builtin image support for now.
Final note before Hype happens: This is a first WIP patch that I hacked together within one day, so expect things to be broken. Not ready for general use yet. This also does NOT mean that UDIM support will necessarily come soon, or even at all.