Texturieren & kacheln mit einem Texturset

Lamda1977

Grünschnabel
Hallo

ich bin dabei Objekte für ein Spiel in 3dsmax 2008 zu basteln, dabei bin ich auf ein Problem gestoßen worauf ich trotz intensiver Internetsuche keine Lösung gefunden habe.

Speziell geht es ums Texturieren.
Ich habe eine Scheune, die Seitenflächen habe ich mit Unwrap gemappt, für das Dach wollte ich eine Schindeltextur gekachelt drauflegen. Das Ganze soll aber in einem Texturset vorliegen (sh. scheune1.jpg) . Das Problem ist, das er beim exportieren in .X Format (panda exporter) die zuschnittkoordinaten des ausschnittes "vergisst" und die gesamte Texturdatei kachelt (sieht aus wie im Bild Scheune2.jpg wobei ich der einfachhalber nur den haken bei "Anwenden" entfernt habe). Ich versuchte das ganze probehalber auch in das Autodesk eigene Format (fbx) zu exportieren, da ist es beim wieder importieren genau das Gleiche. Gibt es dafür eine Lösung, bzw. Alternative ohne die Dachtextur als seperate Datei zu verwenden?

vielen Dank für jede Anwort
 

Anhänge

  • Scheune1.jpg
    Scheune1.jpg
    79,7 KB · Aufrufe: 45
  • Scheune2.jpg
    Scheune2.jpg
    108,2 KB · Aufrufe: 53

cycovery

Erfahrenes Mitglied
Damit du nur einen bestimmten Teil eines textursets über ein objekt kacheln kannst, musst du in deiner 3D engine erstmal einen entsprechenden shader explizit programmieren, der sowas kann. Z.b. müssten die zuschnittkoordinaten an den pixelshader übergeben werden und dann die texturkoordinaten entsprechend transformiert.
Sowas macht aber niemand (deshalb wird das von panda auch nicht exportiert). Speichere texturen, die gekachelt werden sollen, als einzelne texturen ab.
 

Lamda1977

Grünschnabel
Danke für die Antwort,

Ansich funktioniert das ganze beim UVW unwrap ja genau so, nur dass ich das nicht kacheln kann. diese dachtextur ist ja eigentlich nicht das problem. Ich baue eine Strecke für ein Rennsportspiel, wo es ein straßennetz, ein straßenrandnetz und dann noch umgebungstexturen. die sind teilweise sehr verschieden und ich fürchte, dass sich durch die verwendung von einzeltexturen bei allen gekachelten sachen, die ladezeiten um ein vielfaches erhöhen. jene die sich an anderen strecken versucht haben (und auch fertig gestellt), benutzten UVW Unwrap und copy paste, was mir gerade bei höhenunterschieden eine zu große fummellei erscheint.

hier unsere Seite
hier unsere Seite
 

cycovery

Erfahrenes Mitglied
Es ist relativ simpel:

Falls die kachelungsübergänge exakt auf edges zwischen polygonen fallen (also z.b. wenn dein dach exakt so viele polygone hat wie du kacheln haben willst und die edges dieser polygone genau dort liegen, wo die kachelungsübergänge liegen sollen), kannst du einfach die UV koordinaten der entsprechenden polygone auf diesen Bereich der textur mappen.

Falls dies nicht der fall ist, bräuchtest du einen entsprechenden pixelshader in deiner 3D engine der das mapping auf pixelebene vornimmt. In dem fall solltest du aber lieber die zu kachelnden texturen separat speichern.

Wenn die engine sauber programmiert ist, solltest du keinen overhead beim laden von vielen kleinen texturen (anstatt wenig grossen) haben.
 

Lamda1977

Grünschnabel
Danke cycovery!

wir werden jetzt für die zu kachelnde Flächen seperate *.dds Dateien erstellen. Das funktioniert auch mit dem folgenden Exportierungsschritt. Ich hoffe das das Spiel in der Beziehung gut programiert ist und sich nicht so zickig wie beim restlichen modden ist.

Ich hoffe dass wir insgesamt vor Weihnachten fertig werden.

mal noch eine Frage zu einem anderen Thema gibt es irgendwo fertigtexturierte Objekte, die für die Spiele integration geeignet sind (Häuser,Zäune what ever), die ich in max auch texturiert importieren kann? ich habe gesehen, dass es für diverse Eisenbahnsimulatoren genau solche Objekte gibt, allerdings in Formaten die für 3dsmax ungeeignet sind.

Lamda