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

1

22.11.2003, 19:46

Verzogene Textur

Ich mach hier grad meine ersten Schritte nach dem Lesen von Davids Buch und habe leider ein kleines Problem. Ich habe im Menu neben einem Hintergrundbild und der Schrift noch einen kleinen Hintergrund, in dem das Menu ist hinzufügen wollen. Das ganze habe ich so angestellt :

Quellcode

1
2
3
4
5
6
7
8
#define MENU_FVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1)
struct SMenuVertex
{
    tbVector3   vPosition;
    float       fRHW;
    D3DCOLOR    Color;
    tbVector2   vTex0;
};

und dann in der render funktion

Quellcode

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
...
    SMenuVertex     aVertex2[4];
    tbDirect3D::SetFVF(MENU_FVF);
    tbDirect3D::SetTexture(0, m_pMenuTex);
    tbDirect3D::SetRS(D3DRS_ZENABLE, D3DZB_FALSE);
    
    //Links unten
    aVertex2[0].vPosition = tbVector3(tbDirect3D::GetScreenSize().x / 2 - 128, tbDirect3D::GetScreenSize().y / 2 + 256, 0.4f);
    aVertex2[0].fRHW = 1.0f;
    aVertex2[0].Color = tbColor(1.0f,1.0f,0.8f);
    aVertex2[0].vTex0 = tbVector2(0.0f,1.0f);

    //Links oben
    aVertex2[1].vPosition = tbVector3(tbDirect3D::GetScreenSize().x / 2 -128, tbDirect3D::GetScreenSize().y / 2 - 256, 0.4f);
    aVertex2[1].fRHW = 1.0f;
    aVertex2[1].Color = tbColor(1.0f,1.0f,0.8f);
    aVertex2[1].vTex0 = tbVector2(0.0f,0.0f);

    //Rechts unten
    aVertex2[2].vPosition = tbVector3(tbDirect3D::GetScreenSize().x / 2 + 128, tbDirect3D::GetScreenSize().y / 2 + 256, 0.4f);
    aVertex2[2].fRHW = 1.0f;
    aVertex2[2].Color = tbColor(1.0f,1.0f,0.8f);
    aVertex2[2].vTex0 = tbVector2(1.0f,1.0f);

    //Rechts oben
    aVertex2[3].vPosition = tbVector3(tbDirect3D::GetScreenSize().x / 2 + 128, tbDirect3D::GetScreenSize().y / 2 - 256, 0.4f);
    aVertex2[3].fRHW = 1.0f;
    aVertex2[3].Color = tbColor(1.0f,1.0f,0.8f);
    aVertex2[3].vTex0 = tbVector2(1.0f,1.0f);

    tbDirect3D::GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, aVertex2, sizeof(SMenuVertex));
...


der Hintergrund und die Schrift werden dabei korrekt angezeigt, aber der Menuhintergrund hat eine kleine Macke.
Aber guckts euch am besten selbst an :
http://www.moonland.de/fun/fehler.jpg
Der Sig-Dieb ist wieder da !

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

22.11.2003, 20:01

aVertex[2] und aVertex[3] haben dieselben Texturkoordinaten, das ist der Fehler.

3

22.11.2003, 20:09

och nee.. und darum prökel ich so lange rum ... danke da hatte ich wirklich ein brett vorm kopf gehabt, ich such den fehler nämlich schon seit gestern abend :wirbel:
Der Sig-Dieb ist wieder da !

Werbeanzeige