Textur auf ein Vertex



  • Hallo Forum, ich habe mal wide ein problehm. Ich will nun eine Textur auf ein einzelnes Vertex zeichen, aber das will nicht klappen, mir wird bloß das blanke Vertx angezeigt ohne textur!!!???

    Ich vermute mal das der fehler da drinne liegt:

    ein teil der Render_FRame:

    d3ddev->SetStreamSource(0, t_buffer, 0, sizeof(CUSTOMVERTEX));
    d3ddev->SetTexture(0, texture_1);
    d3ddev->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);
    

    Und die ganze Grafik lade geschichte mit den Vertex etc ...

    void init_graphics(void)
    {
    
        D3DXCreateTextureFromFile(d3ddev,
                                  "metal.png",
                                  &texture_1);
    
        CUSTOMVERTEX t_vert[] =
        {
            { 3.0f, -3.0f, 0.0f, 0xffffffff, 0 },
            { 0.0f, 3.0f, 0.0f, 0xffffffff, 0 },
            { -3.0f, -3.0f, 0.0f, 0xffffffff, 0 },
        };
    
        d3ddev->CreateVertexBuffer(3*sizeof(CUSTOMVERTEX),
                                   0,
                                   CUSTOMFVF,
                                   D3DPOOL_MANAGED,
                                   &t_buffer,
                                   NULL);
    
        VOID* pVoid;    
    
        t_buffer->Lock(0, 0, (void**)&pVoid, 0);
        memcpy(pVoid, t_vert, sizeof(t_vert));
        t_buffer->Unlock();
    
        return;
    }
    

    Also auf den Viereck kann man zeichnen, aber warum gehts net auf nen dreieck???

    PLZ HELP ME!



  • Löl habs hinbekommen, sieht aber grad nen wenig merkwürdig aus^^

    CUSTOMVERTEX t_vert[] =
        {
            { 3.0f, -3.0f, 0.0f, 0xffffffff, 1, 0 },
            { 0.0f, 3.0f, 0.0f, 0xffffffff, 0, 1 },
            { -3.0f, -3.0f, 0.0f, 0xffffffff, 1, 0 },
        };
    

    Könnte mir aber jemand mal den code da mal genau erklären plz?

    Die ersten 3 werte sind ja die Positionswerte, damit hbe ich chon mehr als genug ausprobiert, aber die letzten 2, die schecke ich noch nicht ganz. Aufjeden fall glaube ich das mit der Textur zu tun hat, wo ie anfängt und wo sie aufhört richtig?



  • 1. Dein Schreibstil/Deutsch ist eine Zumutung
    2. zu Fragen was der Code beim Anlegen eines CUSTOMVERTEX Arrays bedeutet, aber den Code von CUSTOMVERTEX nicht mit angeben ist nicht gerade clever. Wie auch immer, das sieht nach einem POS/Diffuse/Texture Vertex aus. Die letzten 2 Koordinaten sind also Texturkoordinaten. Was genau das ist, steht in jedem Einsteigertutorial (von denen du ja bereits genügend illegal runtergeladen hast)



  • hmm, habe da aber ne andere frage, also, ich habe mir jetzt ganz viele beispiel terrain maps angesehen, aber eines weiß ich noch nicht!

    aso der Code unterteilt, also das man jeden Wert einzelnd definiert würde ja so aussehen:

    t_Vert[x + y * (TERRAIN_X + 1)].fX = (float)x;
    t_Vert[x + y * (TERRAIN_X + 1)].fY = (float)y;
    t_Vert[x + y * (TERRAIN_X + 1)].fZ = (float)aHeightMap[x][y] / 15.0f;
    t_Vert[x + y * (TERRAIN_X + 1)].dwColor = 0xffffffff;
    

    wenn ich dies nun auch für die letzten twei machen will also so einzelnd, wie müsste das dann aussehen, also was muss hinter den Punkt?

    Das nekomme ich einfach nicht raus...



  • Die Antwort wurde darauf breits in deinem anderen Thread gegeben.

    Ansonsten würde ich raten, dir mal ein paar Minuten für deine Postings Zeit zu nehmen und versuchen deine Frage in einigermaßen korrektem Deutsch zu formulieren. Dass was du im Moment hinrotzt ist ziemlich dreist und man hat nicht wirklich Lust dir zu helfen.



  • Okay, werde mich bessern!

    Welchen Thread meinst du denn? Ich habe mir die anderen beiden Threads nochmal angesehen, aber da finde ich die Antwort nicht!

    { 3.0f, -3.0f, 0.0f, 0xffffffff, 1, 0 },
    

    Die letzten zwei Werte möchte ich genauso wie hier setzen:

    t_Vert[x + y * (TERRAIN_X + 1)].dwColor = 0xffffffff;
    

    Aber wie mache ich das?

    In dem letzten Code heißt der Bezeichner für die Farbe "dwColor", aber wie würden die heißen für die letzten zwei Werte aus dem ersten Code?

    EDIT:

    Oder könntest du mir sagen wie ich dort eine Schleife einbauen kann?

    CUSTOMVERTEX t_vert[] =
        {
            { 320.0f, 50.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(0, 0, 255), },
        };
    

    Also das das beispielsweise so aussieht:

    CUSTOMVERTEX t_vert[] =
        {
    for (int i = 0; i < 9; i++)
    {
            { 320.0f, 50.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(0, 0, 255), },
    }
        };
    

    Das Funktioniert ja aber so leider nicht xD



  • Dazu musst du doch nur die Struktur CUSTOMVERTEX anschauen. Vermutlich heißen sie fu und fv oder so ähnlich.

    Du hast offensichtlich viel zu wenig Programmierkenntnisse. Beschäftige dich lieber noch einige Zeit mit C++, bevor du dich Dingen wie DX widmest.



  • lol hast recht, voll nicht dran gedacht, danke! xD



  • So, ich habe mir jetzt mal dieses Buch gekauft:

    3d spiele programmierung mit directx und c++,

    bei dem was ich hatte war noch ein "in 21 tage" dahinter ... ^^

    Auf jeden fall steht da ganz kurtz in 10 zeilen beschrieben was ne heightmap ist, super empfehlung... xD

    Ich bin bereits auf seite 189 und hat mir noch net mehr gezeigt als ich eh schon wusste ...


Anmelden zum Antworten