Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Mal eine Frage an die Auskenner,
wie stellt man es am besten an, dass der Spieler sich eigene Farben für z.B. Strategiespiele aussuchen kann.
Mir fallen ein paar Methoden ein, die aber alle Nachteile haben.
1. Verschiedene Texturen.
Ich kann mir nicht vorstellen, dass alle Texturen mehrfach verfügbar sind, nur weil einige Bereiche anders gefärbt sind.
Außerdem müssten dann bei echten "Custom Farben", die Texturen extra neu erstellt werden.
2. Die entsprechenden Bereiche mit einer KeyColor zeichnen und im Shader ersetzen.
Das geht bestimmt, und vermutlich auch fix. Damit die KeyColor erkannt wird im Shader, darf der Bereich aber nicht geshaded werden (gebogene Oberflächen, Schatten usw.). D.h. die per Shader ersetzten Flächen sehen immer Flach aus.
3. Mehrere Modelle.
Es gibt ein Basismodell (inkl. Texturen) und es gibt einen zweiten Mesh, welcher komplett weis ist, und die einzufärbenden Flächen enthält. Die werden dann per glColor einfach passend eingefärbt.
Abgesehn vom Aufwand fallen mir nicht so viele Gegenargumente ein.
Aber nun die Frage an die Pros bzw. die dabei sind es zu werden: Wie macht man es richtig?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
mir käme da noch ne idee das du die gesamte figur einfärbst und die textur mit alpha drüberlegst (an den stellen die gefärbt werden sollen lässtes dann durchsichtig. hab aber keine ahnung ob das auch klappt. - schau dir doch mal wc3 an vielleicht kommst du da hinter des rätsels lösung (am besten im editor)
Wenn für jedes team eigene texturen nicht in Frage kammen, sollte man eine variable farbe im alpha kanal codieren. Am einfachsten geht es wenn man diesen dazu nutzt die textur mit einer festen Farbe mischt. Blending ist dabei nicht notwendig, mit enem shader geht es am einfachsten. Bei designen der textur sollte es auch keine probleme geben, da man einfach einen farbigen (Layer als) Hintergrund nehmen kann.
Wenn das zu engeschränkt ist kann man auch jeder grundfarbe eine neue Farbe zuweisen. Dabei wird quasi eine Farbmatrix mit einem Farbvektor multipliziert. Stat 4 grundfarben hab man nun 4 Farben, die man für betimmte zweche verwenden kann, aber auch nach belieben gemischt werden können. Wenn dies nicht reicht kann eine zweite textur weitere 4 material kanäle liefern.
Du könntest jede Textrur ganz normal erstellen und die Bereiche, die später Teamfarbe sein sollen, eine bestimmte Farbe zuweisen oder Weiß lassen. Dann erzeugst du eine Bitkarte (evtl. musst dur zum schönen ausfärben auch mehr als ein Bit nehmen), die genau bestimmt, welche Teile des Bildes zur Teamfarbe gehören oder Du gibst an, welche Farbbereiche in dieser Textur als Teamfarbe verwendet werden. Fer Rest ist dann nur noch geschickte Farbraummanipulation - Bereiche erkennen und Hue entsprechend anpassen.. Steht in etwa im Farbraumartikel im Wiki wie man das machen kann, ist sogar ein Besipiel dabei, wo die Blüte rot gefärbt wird.. Das alles geht auch recht schnell, wenn man also feststellt, daß plötzlich eine weitere Teamfarbe benötigt wird, kann man die Texturen beim Verlust von ein paar Frames erzeugen.. Naja und durchgängig neue Teams/Farben werden schon nicht auftauchen?
Der größte Vorteil an dieser Idee ist natürlich, daß ich mir einfach jede Farbe aussuchen kann und nicht auf eine Vorgegebenen Menge beschränkt bin. Zweifarbige Trikots kannst Du im Prinzip mit dem Gleichen Trick aber anderen Bereichsdefinitionen auch sofort einfärben
Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.