@Scherzmittel: Du kannst eine Textur aus mehreren zusammenbauen.
Nehmen wir mal diese Textur. Stelle Dir einfach vor, dass die farblichen Bereiche Mauerwerk, Ziegel, Holz usw. darstellen sollen. Alles in einer einzelnen Textur.
Jetzt ist es natürlich so, dass Du schon beim modellieren darauf achten solltest, wo welcher Texturteil angebracht werden soll. So sieht z.B. meine Wand aus, da ich 3x3 Textur-Teile anbringen möchte.
Als nächstes musst Du eine sog. UV-Map erstellen. Das geht in Programmen wie z.B. Blender recht schnell. Jetzt ist es so, dass es zu jedem Polygon ein UV-Polygon in der UV-Map gibt. Hier haben wir z.B. 9 Polygone, entsprechend hat man auch 9 UV-Polygone. Im folgenden Bild siehst Du links die UV-Map und rechts das texturierte Modell. Die weissen Kästchen auf der linken Seite sind übrigens diese UV-Polygone.
Wie man erkennen kann, wurde nichts gekachelt, da kein Bereich der Textur von mehr als einem UV-Polygon "bedeckt" wird.
Und jetzt wird gekachelt. Wie Du am unteren Bild sehen kannst, habe ich jedes einzelne UV-Polygon angefasst und dessen Position auf der Textur verändert.

Wundere Dich bitte nicht, warum jetzt nur 4 UV-Polygone zu sehen sind. Die anderen 5 werden durch diese nur verdeckt.
Mit dieser Methode kann man recht raffinierte Sachen machen. So ist es z.B. möglich, ein ganzes Haus mit nur einer Textur zu versehen.
In dieser einzigen Textur hätte man Dinge wie: Mauermerk für die Wände, Ziegel für das Dach, Metall für die Dachrinne, Holz für die Blumenkästen usw. ...
Nochwas: Die Textur in diesem Beispiel hat 4 farbliche Bereiche. Die müssen aber nicht immer die gleiche Größe haben. Zum Beispiel würde der Texturbereich für das Mauerwerk eher quadratisch aussehen, der Bereich für die Treppe eher rechteckig.
Edit:
Nicht wundern, wenn Du beim verschieben, skalieren oder drehen der UV-Polygone für dessen Punkte keine genauen Pixelangaben machen kannst.
Der UV-Bereich ist von 0.0f bis 1.0f definiert. Für diverse Textureffekte kann der Wertebereich auch größer sein, wie z.B. 0.0f bis 4.0f ...
Der Grund, warum es diesen Wertebereich gibt ist der, dass man damit unterschiedliche Texturgrößen verwenden kann, ohne dass man die UV-Map neu aufbauen muss. Das ist besonders bei MipMaps nützlich, da diese ja in unterschiedlichen Größen vorliegen.