direct x dreiech zeichnen



  • Ich check nicht, was in deinem Kopf abgeht. In deinem Beitrag kommen zwei Begriffe vor, um die es im Kern geht. Einer davon ist Uhrzeigersinn. Welcher der andere, wichtige Begriff ist, verrate ich nicht.

    Beide Begriffe (zusammen!) liefern in einer beliebigen Suchmaschine sofort Antworten und helfen dir auch, dein Problem zu beheben. Ich fürchte nur leider, dass diese Antwort dir kein bisschen weiterhilft, weil du offenbar nicht selbstständig denken kannst und bei einem weiteren, trivialen Problem (direct x vierech zeichnen?) sofort wieder angelungert kommst.



  • lolalter schrieb:

    Du bist so grandios an GDI+ gescheitert. Lass bitte einfach die Finger von DirectX, OpenGL und sonstigem Spielzeug für Erwachsene.

    Heißt das, ich bin erwachsen? *glotz augen glänzen*



  • Hacker schrieb:

    lolalter schrieb:

    Du bist so grandios an GDI+ gescheitert. Lass bitte einfach die Finger von DirectX, OpenGL und sonstigem Spielzeug für Erwachsene.

    Heißt das, ich bin erwachsen? *glotz augen glänzen*

    Erwachsene/Gewachsene/Erfahrene/Fähige Programmierer -> Nein.
    Du wirst mal gut in vielleicht 5 Jahren. Ich wäre nur froh, wenn Du bis dahin etwas stiller sein würdest. Deine Failrate dürfte so geschätzt bei 80% liegen. Das tut Deinem Ruf nicht gut. Es tut den Fragenden nicht gut. Es tut den Erfahrenen nicht gut. Es tut dem Forum nicht gut.
    Du bist sicher besser als viele andere es in Deinem Alter gewesen sind. Aber Du bist noch nicht so weit hier tagtäglich Fragen zu beantworten. Vielleicht beherzigst Du das ja mal.



  • blurry333 schrieb:

    Hallo,

    wieso zeichnet directx nur im Uhrzeigersinn.

    CustomVertex.PositionOnly[] verts = new CustomVertex.PositionOnly[]
                    {
                        new CustomVertex.PositionOnly(0.5f, 0.5f, 0),
                        new CustomVertex.PositionOnly(0f, 1, 0),
                        new CustomVertex.PositionOnly(-0.5f, 0.5f, 0)
                        
                    };
    

    Das Koordinatensystem entspricht dem was man in der Schule lernt.

    CustomVertex.PositionOnly[] verts = new CustomVertex.PositionOnly[]
                    {   
                        new CustomVertex.PositionOnly(0f, 1, 0),
                        new CustomVertex.PositionOnly(0.5f, 0.5f, 0),
                        new CustomVertex.PositionOnly(-0.5f, 0.5f, 0)
                        
                    };
    

    jetzt wirds gezeichnet. Weil es im Uhrzeigersinn ist.

    Ach, dazu: du weißt, dass DirectX "dreht", indem du das Dreieck transformierst? Mit einer Rotation wie bspw.

    D3DXMatrixRotationX(&deineMatrix, D3DXToRadian(10));
    

    drehst du es in die eine,

    D3DXMatrixRotationX(&deineMatrix, D3DXToRadian(-10));
    

    so (AFAIR!) in die andere Richtung. Also clock- und counterclock-wise.



  • Hacker, du hättest auf lolalter hören sollen.

    Aber mal zur Frage:
    DirectX benutzt die Punkte des Dreiecks um die Normale zu bestimmen. Die Normale wiederum wird verwendet um zu berechnen, ob das Dreieck in Richtung des Beobachters(=sichtbar) oder von ihm weg(=unsichtbar) zeigt. Schlussendlich ist diese Richtung der Normalen davon abhängig, in welcher Reihenfolge die Punkte angegeben werden.



  • Hacker schrieb:

    Ach, dazu: du weißt, dass DirectX "dreht", indem du das Dreieck transformierst? Mit einer Rotation wie bspw.

    D3DXMatrixRotationX(&deineMatrix, D3DXToRadian(10));
    

    drehst du es in die eine,

    D3DXMatrixRotationX(&deineMatrix, D3DXToRadian(-10));
    

    so (AFAIR!) in die andere Richtung. Also clock- und counterclock-wise.

    q.e.d.



  • Könnte man nicht theoretisch auch drehen, in dem man 360 - die anzahl der Grade, die gedreht werden sollen dreht (theoretisch)? Also ein Grad pro Sekunde counterclockwise = 359 Grad pro Sekunde clockwise?



  • da shat nichts mit dem Thema zu tun? Genau 0?



  • otze schrieb:

    da shat nichts mit dem Thema zu tun? Genau 0?

    Wieso? So wie's aussieht will er wissen, wieso directx nur im Uhrzeigersinn dreht.
    Deswegen hat dieser Vorschlag, wie er auch gegen den Uhrzeigersinn drehen kann, überhaupt nicht '0' mit dem Thema zu tun.



  • otze schrieb:

    ob das Dreieck in Richtung des Beobachters(=sichtbar) oder von ihm weg(=unsichtbar) zeigt.

    Und - kannst ja gern meckern wenn ich mich irre- ist das nicht ein Wert, der mit

    SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
    

    verändert werden kann - so das beide Seiten des Dreiecks gezeichnet werden.



  • Hacker schrieb:

    Wieso? So wie's aussieht will er wissen, wieso directx nur im Uhrzeigersinn dreht.

    Genau das will er nicht wissen. Er gibt einmal die Punkte im Uhrzeigersinn und einmal entgegen an und wundert sich, dass er nur das eine sieht.

    zu deinem nächsten Post: kann sein. Ich kenne das Interface von DirectX nicht. im Allgemeinen ist es aber besser, den Cullmode so zu verwenden wie er jetzt ist und ihn dafür zu verstehen. Culling auszuschalten ist wie die Handbremse ziehen.



  • otze schrieb:

    Hacker schrieb:

    Wieso? So wie's aussieht will er wissen, wieso directx nur im Uhrzeigersinn dreht.

    Genau das will er nicht wissen. Er gibt einmal die Punkte im Uhrzeigersinn und einmal entgegen an und wundert sich, dass er nur das eine sieht.

    Ahhhh.... ich verstehe seine "Ausdrucksweise" schlecht.. 😮


Anmelden zum Antworten