Einfärben von Sprites/Texturen - DirectX (C++)

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Xethoras
Beiträge: 36
Registriert: 05.03.2008, 21:56

Einfärben von Sprites/Texturen - DirectX (C++)

Beitrag von Xethoras »

Mag mir jemand eben erklären, wie ich eine Textur einfärbe oder eine Farbe mit einer anderen ersetze? bzw. mir eine link geben, der zu einer Seite führt, auf dem besagtes erklärt wird?^^
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Einfärben von Sprites/Texturen - DirectX (C++)

Beitrag von kimmi »

Gibt es bei D3D nicht die Moeglichkeit, die Plaette zu setzen? So ala IDirect3DDevice9::SetCurrentTexturePalette? Einfach mal die D3D-Dokumentation zu Rate ziehen. Ansonsten wuerde ich das wohl per Pixelshadeer machen. Da koennen dir die Anderen aber besser helfen.

Gruss Kimmi
Xethoras
Beiträge: 36
Registriert: 05.03.2008, 21:56

Re: Einfärben von Sprites/Texturen - DirectX (C++)

Beitrag von Xethoras »

hmm... Paletten hören sich net so gut an^^

Es geht um eine Bitmapfont, die möglich beliebig anfärbbar sein sollte... Da jedesmal ne Palette zu erstellen/laden scheint mir wenig optimal. In OGL isses ganz einfach >_>, aber hab kA wie ich dass in DX machen soll....
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Einfärben von Sprites/Texturen - DirectX (C++)

Beitrag von Aramis »

Paletten und die FFP, mit der es ebenfalls ginge, sind veraltet, du solltest dich also in Shader einarbeiten. Dann hast du volle Flexibilität und willst nie wieder von ihnen weg. In der DX-Doku hat's ein paar Tutorials zu (Pixel)Shadern, ansonsten wirst du im Internet fündig :-)
Benutzeravatar
Schrompf
Moderator
Beiträge: 4858
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Einfärben von Sprites/Texturen - DirectX (C++)

Beitrag von Schrompf »

Mach den Font weiß mit der Fontausprägung im Alphakanal. Also Alles weiß, die sichtbaren Pixel weiß mit Alpha, die unsichtbaren weiß ohne Alpha. Danach kannst Du ganz banal über die Vertexfarbe mit Modus Modulate (sprich: Multiplikation) jede beliebige Farbe erreichen
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Xethoras
Beiträge: 36
Registriert: 05.03.2008, 21:56

Re: Einfärben von Sprites/Texturen - DirectX (C++)

Beitrag von Xethoras »

So weit, so logisch, bloß wie?^^ Wenn ich jetzt i-welche Vertices mit Texturen oder so hätte, wäre dass ja net so dass problem.. aber ich hab in dem fall halt nen sprite und keinen plan, welcher befehl meinen Wunscheffekt bewirkt :P
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Einfärben von Sprites/Texturen - DirectX (C++)

Beitrag von Aramis »

Guck dir mal ID3DXSprite::Draw an. Da hat's sogar schon einen 'Color'-Parameter.
Xethoras
Beiträge: 36
Registriert: 05.03.2008, 21:56

Re: Einfärben von Sprites/Texturen - DirectX (C++)

Beitrag von Xethoras »

Ok, dass hätte ich vllt selber mal ausprobieren sollen >_>. :roll: Ich dachte, damit würde man eine Farbe bestimmen, die Transparent erscheinen soll...
Danke
Antworten