Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

xXSlayerXx

Treue Seele

  • »xXSlayerXx« ist der Autor dieses Themas

Beiträge: 111

Beruf: Technischer Produktdesigner

  • Private Nachricht senden

1

10.01.2014, 19:48

C++ DirectX9 eine Farbe als Textur erstellen

Hallo Leute,

ich möchte eine Farbe als Textur erstellen.
Mein Ziel ist es, keine Externe Textur zu nutzen, sondern eine aus dem "Speicher" zu nehmen.

Ich dachte da so an die funktion D3DXCreateTextureFromFileInMemory.
Ich habe gehört, dass damit sowas möglich sein soll, jedoch finde ich dazu nichts in google und komme selber auch nicht weiter.
Kennt sich da jemand aus?
Bräuchte erstmal simple farben wie rot, grü, blau und evtl. auch weiß oder schwarz.

Ich hoffe hier ist jemand, der das schonmal gemacht hat.

Grüße
xXSlayerXx
Bestes Zitat aus einem Quellcode :D

C-/C++-Quelltext

1
2
3
4
5
6
7
8
/** 
Once you are done trying to ‘optimize’ this routine, 
and have realized what a terrible mistake that was, 
please increment the following counter as a warning 
to the next guy: 

total_hours_wasted_here = 11 
*/

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

2

10.01.2014, 22:26

Mit CreateTextureFromFileInMemory hast du grundsätzlich recht. Du kriegst die Textur irgendwie in den Speicher und holst sie damit.

FSA

Community-Fossil

  • Private Nachricht senden

3

10.01.2014, 23:14

Prinzipiell brauchst du ein Array aus float/int Werten, sowie die Größe davon.
Ein Beispiel, welches mir jetzt gerade so in den Kopf kommt (Achtung ungetestet und nur zum Zeigen. Sollte nicht so verwendet werden, klar oder? ;) ):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
Texture* CreateTexture()
{
LPDIRECT3DTEXTURE9 tex;
// wir nutzen D3DFMT_R8G8B8 also 3x float und 1x1 Pixel also: 3*(1*1) Werte
float* val = new float[3];
val[0] = 1.0f; // R
val[1] = 0.0f; // G
val[2] = 0.0f; // B

int length = 3 * (1 * 1)  *  sizeof(float);

    D3DXCreateTextureFromFileInMemoryEx(pD3DDevice, val , length, 1/*1Pixel*/, 1/*1Pixel*/, 0, D3DUSAGE_DYNAMIC, D3DFMT_R8G8B8 , D3DPOOL_MANAGED, D3DX_FILTER_LINEAR, D3DX_FILTER_LINEAR, 0, NULL, NULL, &tex); 
}

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

xXSlayerXx

Treue Seele

  • »xXSlayerXx« ist der Autor dieses Themas

Beiträge: 111

Beruf: Technischer Produktdesigner

  • Private Nachricht senden

4

10.01.2014, 23:48

ah ok.

vielen dank :D
Das bringt mich doch ne ganze ecke weiter.
Danke für das Anwendungsbeispiel.
Bestes Zitat aus einem Quellcode :D

C-/C++-Quelltext

1
2
3
4
5
6
7
8
/** 
Once you are done trying to ‘optimize’ this routine, 
and have realized what a terrible mistake that was, 
please increment the following counter as a warning 
to the next guy: 

total_hours_wasted_here = 11 
*/

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

11.01.2014, 00:01

Nur mal eine rein prinzipielle Frage: Wieso genau brauchst du eine einfarbige Textur?

xXSlayerXx

Treue Seele

  • »xXSlayerXx« ist der Autor dieses Themas

Beiträge: 111

Beruf: Technischer Produktdesigner

  • Private Nachricht senden

6

11.01.2014, 00:18

Habe ne kleine Anwendung, in welcher ich ein kleines modell anzeige.
Die farben des Modells sollen abwechselnd blinken in verschiedenen Farben.
Dazu wollte ich keine extra Texturen erstellen, sondern die Farben dirrekt aus dem Speicher erstellen.
Bestes Zitat aus einem Quellcode :D

C-/C++-Quelltext

1
2
3
4
5
6
7
8
/** 
Once you are done trying to ‘optimize’ this routine, 
and have realized what a terrible mistake that was, 
please increment the following counter as a warning 
to the next guy: 

total_hours_wasted_here = 11 
*/

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

11.01.2014, 01:01

Dafür brauchst du doch keine Textur!? Musst doch nur in deinem Shader die entsprechende Farbe ausgeben, bzw. halt eine entsprechende Materialfarbe setzen...

Werbeanzeige