Texture Anzeigefehler???



  • Hi

    Ich entwickle gerade eine kleine 3D Engine mit DirectX 9 und C++ und bin auf folgendes Problem gestoßen.
    Ich kann Texturen von verschiedernen Fileformaten laden und daraus eine Texture erstellen. Bei meinen Beispielprogramm (wo ich einfach die Textur auf ein Dreieck gebe) zeigt er mir das Dreieck immer nur in der Farbe des ersten Pixels der Texture an. Er zeigt es mir in der Farbe des Pixels an auch wenn ich die Texture im FVF Format nicht aktiviert habe.

    Ich habe das Laden auch schon mit der D3DXCreateTextureFromFileEx Funktion probiert allerdings hat das auch nicht anders funktioniert.

    Was ich mich frage ist was kann man falsch machen dass er immer nur die das erste Pixel der Texture nimmt??

    Danke schon im vorraus.



  • Ich hatte das Problem auch mal. Kann mich aber nicht mehr 100%ig dran erinnern, woran es lag.
    Probier mal IDirect3DDevice9::SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2); aufzurufen. Das gibt an, dass du 2 dimensionale Textur Koordinaten verwendest.



  • Ich tippe mal auf falsch gesetzte Texturkoordinaten.

    cya
    liquid



  • godlikebot schrieb:

    Probier mal IDirect3DDevice9::SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2); aufzurufen. Das gibt an, dass du 2 dimensionale Textur Koordinaten verwendest.

    Das wäre mir neu.

    Ich denke mal LiquidAcid liegt richtig.

    Bye, TGGC \-/



  • TGGC schrieb:

    Das wäre mir neu.

    Das, was ich jetzt sage wollte ich schon immer mal sagen. *Räusper*. >>Dann schau mal in die SDK Doku<<. Da steht:

    Microsoft DirectX 9.0 Doku -- D3DTEXTURETRANSFORMFLAGS Enumerated Type schrieb:

    D3DTTFF_COUNT2
    The rasterizer should expect 2-D texture coordinates.

    Boaaahrr, tut das gut! 😃 :p



  • Ich habe das mit dem
    SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);
    ausprobiert und es hat sich nichts geändert. Ich denke ausserdem das es standartmäßig auf 2 Dimensionale Texturen gestellt ist.
    Die Texturekoordinaten stehen (genau wie die Koordinaten) auf:

    0,0 1,0
    _____
    |....../
    |...../
    |..../
    |.../
    |../
    |./
    |/
    0,1

    Ich denke ausserdem das normalerweiße ohne etwas umzustellen mit Texturen rendern kann.



  • godlikebot schrieb:

    Dann schau mal in die SDK Doku<<.

    Dann versteh mal die SDK Doku.

    Bye, TGGC \-/



  • TGGC schrieb:

    Dann versteh mal die SDK Doku.

    😕 Kannst du das genauer erklären 😕

    EDIT: ohama, versuch mal im fvf D3DFVF_TEX1 zu schreiben, wenn du's nicht eh schon so hast.



  • Danke für den Tipp. Wäre ich nie darauf gekommen. Finde ist etwas unlogisch warum es ein D3DFVF_TEX0 gibt wenn es eh nicht funktioniert. Aber egal.
    Vielen dank.



  • Klar funktioniert das, es gibt an, das du 0 Texturkoordinaten hast. Das hätten die Debugruntimes aber auch gemerkt. 12:0 oder so mittlerweile.

    DXSDK Doku schrieb:

    D3DTSS_TEXTURETRANSFORMFLAGS: Member of the D3DTEXTURETRANSFORMFLAGS enumerated type that controls the transformation of texture coordinates for this texture stage. The default value is D3DTTFF_DISABLE.

    Es für die Transformation der Texturkoordinaten zuständig. Wird hier nicht benötigt => auf Standardwert lassen.

    Boaaahrr, tut das gut!

    Bye, TGGC \-/



  • TGGC schrieb:

    Es für die Transformation der Texturkoordinaten zuständig. Wird hier nicht benötigt => auf Standardwert lassen.

    Ohhh, schade... Und ich hatte mich sooo gefreut, dich anklugscheissen zu können ;). Jetzt werd ich erstmal nachlesen, was das genau bedeutet. 🙂



  • TGGC OR BUST!! 😃 🤡 😉 👍


Anmelden zum Antworten