Texturen-Problem



  • Meine Texturen der Skybox sehen auf dem Screen immer so pixelhaft aus.

    Was kann ich alles dagegen machen?

    Benutze DirectX 8



  • Erhöhe die Auflösung.



  • Also wenn Du die Bildschirmauflösung meinst...

    Nein die kann ich nicht weiter erhöhen



  • er meint die auflösung der texturen...
    außerdem könntest einen texturfilter verwenden, falls du das noch nicht machst.



  • Das war das Stichwort "Texturfilter" 🙄

    Danke 👍



  • RTFM, da stehen diese Stichwörter nämlich drin.

    Bye, TGGC (Keine Macht den Dummen)



  • glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR );
    		glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR );
    

  • Mod

    Anfaenger2003 schrieb:

    Benutze DirectX 8

    Cpp_Junky schrieb:

    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR );
    		glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR );
    

    hoe?

    rapso->greets();



  • rapso schrieb:

    Anfaenger2003 schrieb:

    Benutze DirectX 8

    Cpp_Junky schrieb:

    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR );
    		glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR );
    

    hoe?

    ➡

    void glTexParameteri(DWORD tex, DWORD filter, DWORD value)
    {
        D3DSAMPLERSTATETYPE Type;
        DWORD Value;
    
        if(filter == GL_TEXTURE_MIN_FILTER)
            Type = D3DSAMP_MINFILTER;
        else if(filter == GL_TEXTURE_MAG_FILTER)
            Type = D3DSAMP_MAGFILTER;
    
        if(value == GL_LINEAR)
            Value = D3DTEXF_LINEAR;
    
        g_HR = m_pDevice->SetSamplerState(tex, Type, Value);
    }
    

    🤡 👍



  • Okay, ich seh grad - das könnte auch auf mein Problem so halb zu treffen.

    Auch ich möchte eine Skybox darstellen, und wenn die Skybox ausschließlich die Kantenlängen 1 hat, funktioniert das auch wunderbar. Wenn ich die Skybox jetzt aber in einer realistischen Größe (500 bzw 2000 Einheiten) darstellen will, akzeptiert Direct3D die V-Koordinaten der Textur nicht mehr. Das heißt, in der BREITE werden die Texturen immer noch korrekt dargestellt, aber in der Höhe sind die Texturen einfach nur verzerrt.

    Und nur zur Info: Ich programmiere schon ein wenig länger mit DirectX und noch vieles länger C++, ich habe mit verschiedensten Stichwörtern versucht die Documentation, msdn2 und google sowie sogar Wiki zu befragen, hat alles nichts gebracht. Ich hab auch schon die Minification/Magnification/Mipmapping Filter usw. versucht, aber nichts bringt wirklich etwas.

    Falls also jemand eine Idee hat, soll er am besten bescheid sagen (Als kleiner Hinweis: Mit besonders großen Cubes die man texturieren will, tritt genau dieses Problem sogar im RavenShield Editor auf, d.h. in der Unreal Engine)

    Greetings,
    Chaos

    P.S.: Vielleicht hilft es: Ich verwende 6 verschiedene Vertexbuffer, für jede Seite des Würfels eine, die Textur ist für alles das selbe.



  • Die Groesse der Skybox ist doch ehh Scheiss egal, so lange die Seiten zwischen near und far plane liegen. f'`8k

    Autocogito

    Gruß, TGGC (making great games since 1992)



  • Okay, danke für die beiden Stichworte [near und far plane] - werd gleich mal nachgucken 😉

    Greetings,
    Chaos

    EDIT: Ich hab den Fehler, es war einfach nur eine Variable, die in meinem FVF gefehlt hat [Ich war bisher davon ausgegangen, dass D3DFVF_TEX1 auch eine Color-Value beinhalten würde -> Falsch]



  • TGGC schrieb:

    Die Groesse der Skybox ist doch ehh Scheiss egal, so lange die Seiten zwischen near und far plane liegen.

    Wär's eigentlich möglich, zuerst bei einer Einheits Model/View/Projektionsmatrix eine Skybox mit ausmaßen von -1 bis 1 je bei x,y und z zu zeichnen und anschließend den Rest der Szene?



  • Genau davon sprach ich, ob das jetzt 1,1,1 oder 100,100,100 gross ist, man sieht doch ueberhaupt keinen Unterschied wenn man im Ursprung steht. f'`8k

    Gruß, TGGC (making great games since 1992)


Anmelden zum Antworten