Finde den Fehler nicht



  • Hallo,
    ich bin gerade dabei die MSDN-Tutorials durchzuarbeiten, und bin jetzt bei Tutorial 4, was ich im Kern eigentlich nur leicht geändert habe, jedoch bekomme ich immer dieses Bild hier, was keineswegs dem gewünschten Würfel entspricht. Ich habe schon das ganze Programm und die Shader debugged, finde aber den Fehler nicht. Hier mal mein Projekt.
    Ich weiß, da sind noch einige Sachen drin, die man so nicht machen sollte (z.B. globale Variablen), jedoch war mir das fürs erste egal.



  • Hat es vor deiner Änderung funktioniert? Was genau hast du geändert? Was sagt die Debug Runtime (beim Device-erzeugen D3D11_CREATE_DEVICE_DEBUG übergeben und im Output-Window schauen)?



  • Also Änderungen habe ich nicht vorgenommen, ich habe es eben in mein bisheriges Projekt eingefügt, dass eben schon ein Fenster etc. erzeugt. Hier ist der Debug-Output, den ich aber nur so interpretiere, dass ich eine ganze Menge Sachen nicht freigebe, was im Moment ja auch noch stimmt.



  • Ok, schwer zu sagen was da faul ist ohne den Code zu sehen. Aber der komplette Code für das Beispiel liegt eh im SDK ((SDK root)\Samples\C++\Direct3D11\Tutorials\Tutorial04), du kannst dir den also einfach mal anschaun, evtl. fällt dir ja schnell auf was du vergessen/falsch gemacht hast. Dem Bild nach würd ich mal in Umgebung von VertexBuffer, ConstantBuffer, Shader suchen. Im Zweifelsfall liegt dem SDK auch PIX, ein D3D Debugger, bei.



  • dot schrieb:

    Ok, schwer zu sagen was da faul ist ohne den Code zu sehen.

    Ich hab doch mein Projektz verlinkt 🙂 Der größte Teil ist eigentlich in der window.cpp.

    dot schrieb:

    Aber der komplette Code für das Beispiel liegt doch eh dem SDK bei ((SDK root)\Samples\C++\Direct3D11\Tutorials\Tutorial04), du kannst dir den also einfach mal anschaun, evtl. fällt dir auf was du vergessen/falsch gemacht hast. Dem Bild nach würd ich mal in Umgebung von VertexBuffer, ConstantBuffer, Shader suchen.

    Hab ich ja schon gemacht, und alle relevanten Stellen eigentlich Copy&Paste eingefügt, und nur die Bezeichner etwas leserlicher gemacht.



  • Deprimiert schrieb:

    Ich hab doch mein Projektz verlinkt 🙂 Der größte Teil ist eigentlich in der window.cpp.

    Ok, das hab ich übersehen. Seh ich das richtig dass du die SDK libs und Header ins $(VCInstallDir) kopiert hast? Das is keine gute Lösung, verwend doch die VC++ Directories. Anyway, weil ich grad nett bin, dein Fehler: Du hast

    ID3D11Buffer* buffers[] = {
        vBuffer
      };
    
      UINT strides[] = {
        sizeof(SimpleVertex)
      };
    
      UINT offsets[] = {
        0
      };
      devcon->IASetVertexBuffers(0, 1, buffers, strides, offsets);
    

    vergessen.



  • Ne, in der window.cpp ab Zeile 322 steht das hier

    UINT stride = sizeof(XMFLOAT3);
    UINT offset = 0;
    devcon->IASetVertexBuffers(0, 1, &vBuffer, &stride, &offset);
    

    Aber das war auch der Fehler, das sizeof war hier noch falsch 🙄
    Naja danke für deine Hilfe 🙂 , ich glaub so schnell wäre das mir hier nicht aufgefallen...



  • Ah ok, ich hab mich eh schon gewundert wie das sein konnte dass überhaupt was angezeigt wird, aber eine Suche nach "IASetVertexBuffers" im Projekt lieferte bei mir keine Ergebnisse...vermutlich hab ich mich verklickt, egal, Problem ist ja nun gelöst 😉


Log in to reply