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

05.05.2010, 21:46

Textur wird fehlerhaft dargestellt (DirectX)

Hi,

also wenn ich eine Textur render dann verzieht sich alles.

(Link)


soll aber so aussehen:


(Link)


Licht ist aus, Culling auch, Vertexformat ist XYZRHW | DIFFUSE | TEX1.
Wird mit nem Quad dagestellt ( soll:D )

2

05.05.2010, 22:47

Mh, ich rate mal... Vielleicht liegts an deiner Grafikkarte... Oder dein Monitor ist kaputt... keine Ahnung... :D
Ne poste mal die entsprechende Code Stelle dazu und beschreib was du da versuchst, dann können wir dir auch besser helfen.
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

3

05.05.2010, 23:08

Also hier ist die cpp der Sprite Klasse:

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
40
41
42
43
44
45
46
Sprite::Sprite( const std::string& Filename )
    {
        D3DXCreateTextureFromFileEx(g_pGraphics->GetDevice(),
                                    Filename.c_str(),
                                    D3DX_DEFAULT, D3DX_DEFAULT,
                                    D3DX_DEFAULT,
                                    0,
                                    D3DFMT_UNKNOWN,
                                    D3DPOOL_MANAGED,
                                    D3DX_FILTER_NONE,
                                    D3DX_DEFAULT,
                                    0,
                                    &m_TextInfo,
                                    NULL,
                                    &m_pTexture);
        assert(m_pTexture);
    }

    Sprite::~Sprite()
    {
        SafeRelease(m_pTexture);
    }

    void Sprite::Render( const Vector2& vPosition, const D3DCOLOR Color )
    {
        Vertex Quad[4];

        Quad[0].vPosition = vPosition;
        Quad[1].vPosition = vPosition + Vector2((float)m_TextInfo.Width, 0.0f);
        Quad[2].vPosition = vPosition + Vector2(0.0f, (float)m_TextInfo.Height);
        Quad[3].vPosition = vPosition + Vector2((float)m_TextInfo.Width, (float)m_TextInfo.Height);

        Quad[0].vTexPosition = (0.0f, 0.0f);
        Quad[1].vTexPosition = (1.0f, 0.0f);
        Quad[2].vTexPosition = (0.0f, 1.0f);
        Quad[3].vTexPosition = (1.0f, 1.0f);

        Quad[0].z = Quad[1].z = Quad[2].z = Quad[3].z = 0.0f;
        Quad[0].rhw = Quad[1].rhw = Quad[2].rhw = Quad[3].rhw = 1.0f;
        Quad[0].Color = Quad[1].Color = Quad[2].Color = Quad[3].Color = Color;

        g_pGraphics->GetDevice()->SetFVF(VertexFVF);
        g_pGraphics->GetDevice()->SetTexture(0, m_pTexture);

        g_pGraphics->GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, Quad, sizeof(Vertex));
    }


Dann hab ich halt ganz einfach

C-/C++-Quelltext

1
Sprite TestSprite( "Test.png" )

und halt das Rendern:

C-/C++-Quelltext

1
TestSprite.Render( (200.0f, 200.0f), D3DCOLOR_XRGB(255, 255, 255) )


Sollte alles selbst erklärend sein :P

Gotbread

Alter Hase

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

4

06.05.2010, 01:30

wie sieht die vertexstruktur aus? (hab da nen verdacht ^^ )
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

5

06.05.2010, 09:33

wie sieht die vertexstruktur aus? (hab da nen verdacht ^^ )

Hab auch so einen Verdacht: Du schläfst zu wenig!? ;)
Sonst hattest du nächtens um halb zwei das vermutlich gelesen:

Zitat von » .:!Batzer!:. «

Vertexformat ist XYZRHW | DIFFUSE | TEX1


.:!Batzer!:.
Glaube, mit deinen Texturkoordinaten stimmt was nicht...
fka tm

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

6

06.05.2010, 15:53

C-/C++-Quelltext

1
2
3
4
Quad[0].vTexPosition = (0.0f, 0.0f); 
Quad[1].vTexPosition = (1.0f, 0.0f); 
Quad[2].vTexPosition = (0.0f, 1.0f); 
Quad[3].vTexPosition = (1.0f, 1.0f); 


Der Fehler liegt an falschen Texturkoordinaten. Vermutlich hast du hier einfach nur den Vektorkonstruktor vergessen, also nix mit grafikkarte kaputt, monitor kaputt etc. (wieso das nicht so ist sollte eig. leicht zu begründen sein)

7

06.05.2010, 16:06

..., also nix mit grafikkarte kaputt, monitor kaputt etc. (wieso das nicht so ist sollte eig. leicht zu begründen sein)
Das war doch nurn Scherz Oo
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

8

06.05.2010, 16:54

Ja die Texturkoordinaten warens.
Musste den Vektorkonstruktor benutzen :P
Danke.

Gotbread

Alter Hase

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

9

06.05.2010, 18:35

wie sieht die vertexstruktur aus? (hab da nen verdacht ^^ )

Hab auch so einen Verdacht: Du schläfst zu wenig!? ;)
Sonst hattest du nächtens um halb zwei das vermutlich gelesen:

Zitat von » .:!Batzer!:. «

Vertexformat ist XYZRHW | DIFFUSE | TEX1


.:!Batzer!:.
Glaube, mit deinen Texturkoordinaten stimmt was nicht...

ich habe vertexstruktur geschrieben, das is das teil was meist mit struct anfängt. wenn das falsch aufgebaut is, bringt ihm n richtiges format auch nix.
schlaf, pff, das is längt überholt.
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

Werbeanzeige