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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

29.01.2005, 01:30

Zitat

Es handelt sich um ein Rechteck 525 Pixel hoch und 700 Pixel breit


die erfahrung hat mich gelehrt, dass D3DXCreateTextureFromFileEx(), sofern du breite und höhe nicht extra angibst, bei recheckigen texturen die nächstgrößere quadratische power of 2 textur macht und das eigentliche bild da reintut. wenn das bild nicht genau passt, dann wird der rest schwarz gemacht...

laut doku macht die funktion das angeblich nur wenn die graka po2 texturen braucht, aber bei mir passierts andauernd ( Radeon 9600 XT, sollte eigentlich nichtmehr auf po2 texturen angewiesen sein oder ??? )

Der Dude

Treue Seele

  • »Der Dude« ist der Autor dieses Themas

Beiträge: 73

Wohnort: Elleringhausen-City

Beruf: ITA

  • Private Nachricht senden

12

29.01.2005, 10:55

Also ich habs schon so geschrieben wie du es meintest. Hier ist der Quellcode:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//Positionen festlegen

        g_aTriangle[iTriangle].SVertex[0].vPosition = tbVector3(0.0f,1.0f,0.0f);
        g_aTriangle[iTriangle].SVertex[1].vPosition = tbVector3( 1.0f, -1.0f, 0.0f);
        g_aTriangle[iTriangle].SVertex[2].vPosition = tbVector3(-1.0f, -1.0f, 0.0f);

        //Position der Texturen

        g_aTriangle[iTriangle].SVertex[0].vTexture = tbVector2(0.5f,0.0f);
        g_aTriangle[iTriangle].SVertex[1].vTexture = tbVector2(1.0f,1.0f);
        g_aTriangle[iTriangle].SVertex[2].vTexture = tbVector2(0.0f,1.0f);

        //Farben festlegen

        g_aTriangle[iTriangle].SVertex[0].D3D_Color = D3DCOLOR_ARGB(255, 255, 0, 0);
        g_aTriangle[iTriangle].SVertex[1].D3D_Color = D3DCOLOR_ARGB(255, 0, 255, 0);
        g_aTriangle[iTriangle].SVertex[2].D3D_Color = D3DCOLOR_ARGB(255, 0, 0, 255);
        

    }

        // Die Textur laden

    if(FAILED(hResult = D3DXCreateTextureFromFileEx(pD3D_Interface,     // Device

                                                    "Texture.bmp",      // Dateiname

                                                    700,                // Breite

                                                    525,                // Höhe

                                                    D3DX_DEFAULT,       // MIP-Maps

                                                    0,                  // Verwendungszweck

                                                    D3DFMT_UNKNOWN,     // Format

                                                    D3DPOOL_MANAGED,    // Speicherklasse

                                                    D3DX_FILTER_NONE,   // Filter

                                                    D3DX_DEFAULT,       // MIP-Map-Filter

                                                    0,                  // Color-Key

                                                    NULL,               // Unwichtig

                                                    NULL,               // Unwichtig

                                                    &g_pTexture)))      // Die Textur

    {
        MessageBox(NULL,"Die Textur konnte nicht geladen werden","Fehler",MB_OK);
    }

    // Und nun die Textur einsetzen

    pD3D_Interface->SetTexture(0, g_pTexture);


Sieht dort jemand noch was falsches?

Vielen Dank schonmal.
Der Tim
"Wenn ich morgens doppelt so schnell über den Flur laufe, kann ich 2 Minuten länger schlaften!" - leider war es ein Irrtum.

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

13

29.01.2005, 12:02

Probier's doch einfach mal mit einer quadratischen Textur. Also, ich meine, dass Deine Textur von Anfang an quadratisch ist, sie dann also von der D3DX-Funktion nicht "vermurkst" werden kann.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

29.01.2005, 13:54

also normalerweise sollte zumindest das laden der textur so funzen...

Der Dude

Treue Seele

  • »Der Dude« ist der Autor dieses Themas

Beiträge: 73

Wohnort: Elleringhausen-City

Beruf: ITA

  • Private Nachricht senden

15

30.01.2005, 10:43

Die Textur kann ich ja laden, wird aber nicht so angezeigt wie ich es gerne hätte. Meine Textur ist nach oben rechts verschoben, so dass einige Teile des Dreiecks einfach schwarz sind.
Eigentlich sollt nur die untere linke Texturecke auch unten links liegen. Die rechte Texturecke unten sollte beim Dreieck auch unten rechts liegen.
Ja und oben solle die Mitte der Textur liegen. Ich meine ich hätte das auch schonmal geschrieben. Leider liegt noch ein Fehler vor, da es verschoben ist.

Mfg
Der Tim
"Wenn ich morgens doppelt so schnell über den Flur laufe, kann ich 2 Minuten länger schlaften!" - leider war es ein Irrtum.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

16

30.01.2005, 12:29

von den texcoords her passts eigentlich...

speicher die textur nach dem laden mal in eine datei und schau sie dir an...

Der Dude

Treue Seele

  • »Der Dude« ist der Autor dieses Themas

Beiträge: 73

Wohnort: Elleringhausen-City

Beruf: ITA

  • Private Nachricht senden

17

02.02.2005, 18:23

Nach einigen Arbeiten... habe ich auch mal wieder Zeit für diese wunderbaren Texturen. Ich habe mal die Datei hochgeladen
http://web2.minden222.server4you.de/$der_tim/Privat/Texturen.rar Also vielleicht sieht man dort besser was ich meine, wenn man das Programm start.
Wie immer bin ich über jeden neuen Vorschlag dankbar.

Mfg
der Tim
"Wenn ich morgens doppelt so schnell über den Flur laufe, kann ich 2 Minuten länger schlaften!" - leider war es ein Irrtum.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

18

02.02.2005, 18:40

link geht nicht...

Der Dude

Treue Seele

  • »Der Dude« ist der Autor dieses Themas

Beiträge: 73

Wohnort: Elleringhausen-City

Beruf: ITA

  • Private Nachricht senden

19

02.02.2005, 18:45

Vielen dank für den schnellen Anwort an Dot. Der Link geht jetzt - war ein dot am Ende zuviel :)

Mfg
der Tim
"Wenn ich morgens doppelt so schnell über den Flur laufe, kann ich 2 Minuten länger schlaften!" - leider war es ein Irrtum.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

02.02.2005, 21:33

der link geht...

aber die datei scheint beschädigt zu sein.

Werbeanzeige