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

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

11

28.06.2003, 23:13

Natürlich ist sie wichtig. Denn woher soll Direct3D bzw. die Grafikkarte sonst wissen, wo die Daten liegen? Das wäre ja allein aus dem FVF-Bezeichner nicht erkennbar. In Deinem Fall hat Direct3D die Daten dann einfach falsch interpretiert.

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

12

28.06.2003, 23:45

ja, stimmt, ich hatte nie den Gedanken, dass bei der Vertex-Struktur etwas falsch sein könnte, im Nachhinein ist es mir jetzt aber klar :)

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

13

29.06.2003, 18:26

Habe leider schon wieder ein Problem mit der 2D-Grafik, diesmal geht es um Texturen. Also ich habe zwei Vierecke und beide sollen eine verschiedende Textur bekommen. Bei den Globalen Veribalen steht deshalb:

Quellcode

1
PDIRECT3DTEXTURE9   g_pTexture[1] ; // Die Textur

Nun werden beide Texturen über die D3DXCreateTextureFromFileEx Funktion geladen, Bild1 in &g_pTexture[0] und Bild2 in &g_pTexture[1]

Anschließend werden die zwei Vierecke gemalt:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
.....
for(int iTriangle = 0; iTriangle < g_iNumTriangles; iTriangle++)
    {

    
        g_pD3DDevice->SetTexture(0, g_pTexture[iTriangle]);

    if(FAILED(hResult = g_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,// Dreiecksliste
 2,// 2 Dreieck
g_aTriangle[iTriangle].aVertex, // Vertexdaten
sizeof(STransformedVertex))))   // Vertexgröße
        {
....
.....


Was könnte diesmal der Fehler sein, es wird nämlich nur die erste Textur gemalt!
Danke

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

14

29.06.2003, 18:27

Zitat von »"Stefan"«


PDIRECT3DTEXTURE9 g_pTexture[1] ;

Hmmm...
Wie viele Elemente hat dieses Array wohl? Und wie viele benutzt Du? :rolleyes:

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

15

29.06.2003, 18:31

Danke für die schnelle Antwort, leider aber habe ich zwei auch schon probiert und die Textur wird nicht gemalt, jetzt weiß ich zum Glück schon mal das zwei stimmt ;)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

16

29.06.2003, 18:35

- Hat das zweite Dreieck korrekte Texturkoordinaten?
- Erscheint die 2. Textur, wenn Du sie auf das 1. Dreieck legst?
- Lädst Du beide Texturen?
- Gibt es einen Eintrag in der Logbuchdatei?
- Heute schonmal Zähne geputzt? ;)

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

17

29.06.2003, 18:47

Die ersten drei Punkte wären alle in Ordnung, auch Zähne geputzt hätte ich heute Früh ;D
Also die Log File gibt follgenden Fehler aus:

FEHLER: Der Aufruf von D3DXCreateTextureFromFileEx verursachte den DirectX-Fehler D3DERR_INVALIDCALL! Beschreibung: Invalid call

Die Funktion sieht so aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    if(FAILED(hResult = D3DXCreateTextureFromFileEx(g_pD3DDevice,       // Device
                                                    "EnvMapLeft.bmp",       // Dateiname
                                                    D3DX_DEFAULT,       // Breite
                                                    D3DX_DEFAULT,       // Höhe
                                                    D3DX_DEFAULT,       // MIP-Maps
                                                    0,                  // Zweck
                                                    D3DFMT_UNKNOWN,     // Format
                                                    D3DPOOL_MANAGED,    // Speicherklasse
                                                    D3DX_FILTER_NONE,   // Filter
                                                    D3DX_DEFAULT,       // MIP-Map-Filter
                                                    0,                  // Color-Key
                                                    NULL,               // Unwichtig
                                                    NULL,               // Unwichtig
                                                    &g_pTexture[1])))       // Die Textur

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

18

29.06.2003, 18:49

Gibt es die Datei denn überhaupt bzw. in welchem Ordner befindet sie sich? So wie es jetzt da steht, müsste sie sich im Projektordner befinden.

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

19

29.06.2003, 18:53

ja, ich kann auch beim Laden die gleiche Textur angeben, wie in der anderen Ladefunktion und es tritt der selbe Fehler auf!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

20

29.06.2003, 18:54

Poste mal den gesamten Quelltext bitte.

Werbeanzeige