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

JossBoss

Treue Seele

  • »JossBoss« ist der Autor dieses Themas

Beiträge: 182

Wohnort: Luxemburg

  • Private Nachricht senden

1

11.11.2005, 19:49

Wie kann man das Zielobjekt für Texturen ändern?

Hallo ich bins mal wieder (leider) :rolleyes:
Also diesmal hab ich ein Problem mit den Texturen... also, wie kann man den Compiler mit D3DX9 anweisen, welchem Objekt er welche Textur geben soll??? also z.b ein dreieck und ein Quadratt, woher weiss der Compi welches objekt welche Textur bekommt??? SetTexture ist doch dann ein bisschen karg oder?? den ich hab grad versucht, eine SkyBox zu "baun", und darin ein Dreiech mit 3 Vertizes zu setzen.

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
if(FAILED(hResult = g_pD3DDevice->Clear(0,
                                            NULL,
                                            D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,
                                            D3DCOLOR_XRGB(0, 0, 63),
                                            1.0f,
                                            0)))
    {
        // Fehler beim Leeren!

        MessageBox(g_hWindow, "Fehler beim Leeren der Puffer!",
                   "Fehler", MB_OK | MB_ICONEXCLAMATION);
        TB_ERROR_DIRECTX("g_pD3DDevice->Clear", hResult, TB_STOP);
    }

    // Szene beginnen

    g_pD3DDevice->BeginScene();


g_pD3DDevice->SetRenderState(D3DRS_ZENABLE,FALSE);
    g_pD3DDevice->SetRenderState(D3DRS_ZWRITEENABLE,FALSE);


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


    g_pD3DDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_MODULATE);
    g_pD3DDevice->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_CURRENT);
    g_pD3DDevice->SetTextureStageState(0,D3DTSS_COLORARG2,D3DTA_TEXTURE);
    
    g_pD3DDevice->SetTextureStageState(1,D3DTSS_COLOROP,D3DTOP_ADDSIGNED2X);
    g_pD3DDevice->SetTextureStageState(1,D3DTSS_COLORARG1,D3DTA_CURRENT);
    g_pD3DDevice->SetTextureStageState(1,D3DTSS_COLORARG2,D3DTA_TEXTURE);

    g_pD3DDevice->SetTextureStageState(1,D3DTSS_TEXTURETRANSFORMFLAGS,D3DTTFF_COUNT2);


    g_pD3DDevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);
    g_pD3DDevice->SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_ANISOTROPIC);

    g_pD3DDevice->SetSamplerState(1,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);
    g_pD3DDevice->SetSamplerState(1,D3DSAMP_MINFILTER,D3DTEXF_ANISOTROPIC);


    // -------------------------------------------------------------


    
    g_pD3DDevice->SetTexture(0,g_Environment);
    g_pD3DDevice->SetTexture(1,NULL);

    g_pD3DDevice->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST
                                         ,0
                                         ,8
                                         ,12
                                         ,g_aSkyBoxIndex
                                         ,D3DFMT_INDEX16
                                         ,g_aSkyBoxVertex
                                         ,sizeof(SBox));

    g_pD3DDevice->SetRenderState(D3DRS_ZENABLE,TRUE);
    g_pD3DDevice->SetRenderState(D3DRS_ZWRITEENABLE,TRUE);

// Nun das Dreieck zeichnen

     g_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST,  // Dreiecksliste

                                                      1,                    // 1 Dreieck

                                                      g_aTriangleVertex,    // Vertexdaten

                                                      sizeof(SVertex)); // Vertexgröße

    // Szene beenden

    g_pD3DDevice->EndScene();


Auf dem 3eck sind 2 andere Texturen mit MultiTexturing aufgebracht. Wenn ich das nun compiliere, bekomm ich zwar die skybox, und das 3eck erken ich auch, doch nun hat es eine andere textur. und zwar, eine verzerrte skyboxtextur...

Kann auch sein dass es was mit dem ZBuffer zu tun hat... weiss blos nit was... :crying: :rolleyes:

Ok thx mal wieder :rolleyes: :)

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

2

11.11.2005, 20:19

nachdem die skybox gerendert wurde stellst du die textur nich mehr um.
kann sein, dass da dein code etwas durcheinander geraten is, denn bevor du die skybox renderst werden irgendwelche texturen eingestellt und danach gleich wieder rückgängig gemacht
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

JossBoss

Treue Seele

  • »JossBoss« ist der Autor dieses Themas

Beiträge: 182

Wohnort: Luxemburg

  • Private Nachricht senden

3

11.11.2005, 20:33

Thx fü die hilfe, aber es war doch der verdammte ;) Z-Buffer. Ich hab die 2 Renderstates felöscht und jetzt fuinzt es. Zudem hab ich noch alles ein bissl verschoben.. versammt ich hätte dafür überhaupt keinen neun treat öffnen müssen... sry leute... :rolleyes:
Aber wie auch immer BYE!! :huhu:

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

4

12.11.2005, 10:36

Zitat von »"JossBoss"«

versammt ich hätte dafür überhaupt keinen neun treat öffnen müssen... sry leute... :rolleyes:
ich denke der server wirds verkraften ;) und irgendwer wird das prob auch noch mal haben und dann dankbar drüber sein, dass er hier ne lösung findet...
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

5

12.11.2005, 10:45

wenn derjenige die Suche nutzt....
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

JossBoss

Treue Seele

  • »JossBoss« ist der Autor dieses Themas

Beiträge: 182

Wohnort: Luxemburg

  • Private Nachricht senden

6

12.11.2005, 11:38

lol :rolleyes:

Werbeanzeige