DirectX 10 - Direct 3D - Allgemeine Fragen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von jvbsl.

    DirectX 10 - Direct 3D - Allgemeine Fragen

    Nabend,

    Ich bin ja im Moment mit DirectX unterwegs und versuch mir ein Bild davon zu machen, nun bin ich dabei
    auf etwas gestoßen was ich mir nicht so ganz erklären kann.

    Ist das normal das man nur ein Vertex in einen VertexBuffer laden kann?

    Ich habe versucht ein zweites Vertex in den Buffer zuladen und es wurde am ende nur das 2. gezeichnet.
    Bin mir jetzt nicht sicher ob mein Code einfach nur falsch ist oder ob der Buffer max. nur eine Vertex Struktur "halten" kann.

    (Ich weiß die überschrift ist recht Allgemein gehalten, bin mir aber sicher das da noch mehr dazukommt :D )
    Nein ein VertexBuffer kann viel mehr Vertices enthalten...xD

    Außerdem DirectX 10? Machst du das dann über XNA oder über SlimDX?
    MDX geht ja nur bis 9.0c :P
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Gute Frage!
    Wirklich gute Frage!

    Ich habe mir den SDK gezogen und verwiesen.
    Jetzt versuche ich mit allem was ich nur irgendwie im Internet finde funktionierenden Code
    zusammen zu kopieren und zu verstehen was man alles braucht und wofür dies und jenes überhaubt gut ist.

    Eine Gute durchlaufende Referenz mit .Net Code habe ich leider noch nicht gefunden.
    Den ganzen C++ kram verstehe ich leider nicht.

    Da steht dan zwar "Das Device wird .... und jetzt tut das Device ..." aber um ein Device dies und das machen zu lassen brauche ich hier und da den Code.
    Extrem nützlich ist hier die Intellisense :) aber manchmal reicht es nicht.

    Also eig. hab ich k.A. was genau ich da machen, es fügen sich Minute für Minute mehr Puzzelteile zum Bild zusammen aber es fehlen noch tausende...

    :D

    Und ne ich mache es nicht über XNA es soll reines DX (in Vb) werden.
    und hier mal der Code von dem ich gesprochen habe:


    VB.NET-Quellcode

    1. Dim vertex As CustomVertex.PositionColored() = _
    2. CType(VertexBuf.Lock(0, LockFlags.None), CustomVertex.PositionColored())
    3. vertex(0) = New CustomVertex.PositionColored(0, 1, 0, Color.Blue.ToArgb)
    4. vertex(1) = New CustomVertex.PositionColored(1, -1, 0, Color.Red.ToArgb)
    5. vertex(2) = New CustomVertex.PositionColored(-1, -1, 0, Color.Green.ToArgb)
    6. VertexBuf.Unlock()


    Diese Daten im Buffer (VertexBuf) werden vom dem hier "wohl" (k.A. ob wirklich) überschrieben:

    VB.NET-Quellcode

    1. Dim cube As CustomVertex.PositionColored() = CType(VertexBuf.Lock(0, LockFlags.None), CustomVertex.PositionColored())
    2. ' Die obere Seite
    3. cube(0) = New CustomVertex.PositionColored(-1, 1, 1, Color.Blue.ToArgb)
    4. cube(1) = New CustomVertex.PositionColored(1, 1, 1, Color.Red.ToArgb)
    5. cube(2) = New CustomVertex.PositionColored(-1, 1, -1, Color.Blue.ToArgb)
    6. cube(3) = New CustomVertex.PositionColored(1, 1, -1, Color.Red.ToArgb)
    7. cube(4) = New CustomVertex.PositionColored(-1, 1, -1, Color.Blue.ToArgb)
    8. cube(5) = New CustomVertex.PositionColored(1, 1, 1, Color.Red.ToArgb)
    9. ' Die untere Seite
    10. cube(6) = New CustomVertex.PositionColored(-1, -1, -1, Color.Blue.ToArgb)
    11. cube(7) = New CustomVertex.PositionColored(1, -1, 1, Color.Red.ToArgb)
    12. cube(8) = New CustomVertex.PositionColored(-1, -1, 1, Color.Blue.ToArgb)
    13. cube(9) = New CustomVertex.PositionColored(1, -1, 1, Color.Red.ToArgb)
    14. cube(10) = New CustomVertex.PositionColored(-1, -1, -1, Color.Blue.ToArgb)
    15. cube(11) = New CustomVertex.PositionColored(1, -1, -1, Color.Red.ToArgb)
    16. ' Die linke Seite
    17. cube(12) = New CustomVertex.PositionColored(-1, 1, -1, Color.Blue.ToArgb)
    18. cube(13) = New CustomVertex.PositionColored(-1, -1, -1, Color.Blue.ToArgb)
    19. cube(14) = New CustomVertex.PositionColored(-1, 1, 1, Color.Blue.ToArgb)
    20. cube(15) = New CustomVertex.PositionColored(-1, 1, 1, Color.Blue.ToArgb)
    21. cube(16) = New CustomVertex.PositionColored(-1, -1, -1, Color.Blue.ToArgb)
    22. cube(17) = New CustomVertex.PositionColored(-1, -1, 1, Color.Blue.ToArgb)
    23. ' Die rechte Seite
    24. cube(18) = New CustomVertex.PositionColored(1, 1, -1, Color.Red.ToArgb)
    25. cube(19) = New CustomVertex.PositionColored(1, 1, 1, Color.Red.ToArgb)
    26. cube(20) = New CustomVertex.PositionColored(1, -1, -1, Color.Red.ToArgb)
    27. cube(21) = New CustomVertex.PositionColored(1, -1, 1, Color.Red.ToArgb)
    28. cube(22) = New CustomVertex.PositionColored(1, -1, -1, Color.Red.ToArgb)
    29. cube(23) = New CustomVertex.PositionColored(1, 1, 1, Color.Red.ToArgb)
    30. ' Die Rückseite
    31. cube(24) = New CustomVertex.PositionColored(-1, 1, -1, Color.Blue.ToArgb)
    32. cube(25) = New CustomVertex.PositionColored(1, 1, -1, Color.Red.ToArgb)
    33. cube(26) = New CustomVertex.PositionColored(-1, -1, -1, Color.Blue.ToArgb)
    34. cube(27) = New CustomVertex.PositionColored(1, -1, -1, Color.Red.ToArgb)
    35. cube(28) = New CustomVertex.PositionColored(-1, -1, -1, Color.Blue.ToArgb)
    36. cube(29) = New CustomVertex.PositionColored(1, 1, -1, Color.Red.ToArgb)
    37. ' Die Vorderseite
    38. cube(30) = New CustomVertex.PositionColored(1, 1, 1, Color.Red.ToArgb)
    39. cube(31) = New CustomVertex.PositionColored(-1, 1, 1, Color.Blue.ToArgb)
    40. cube(32) = New CustomVertex.PositionColored(-1, -1, 1, Color.Blue.ToArgb)
    41. cube(33) = New CustomVertex.PositionColored(-1, -1, 1, Color.Blue.ToArgb)
    42. cube(34) = New CustomVertex.PositionColored(1, -1, 1, Color.Red.ToArgb)
    43. cube(35) = New CustomVertex.PositionColored(1, 1, 1, Color.Red.ToArgb)
    44. VertexBuf.Unlock()


    Zeichnen

    VB.NET-Quellcode

    1. Dev.DrawPrimitives(PrimitiveType.PointList, 0, 1)


    Mit dem Würfel wird nur der Würfel gezeichnet, ohne ihn (auskommentiert) nur das Dreieck.
    Dev.DrawPrimitives(PrimitiveType.PointList, 0, 1)

    Überlege mal genau was der letzte Parameter macht...

    Edit: Achja...

    XNA ist reines DirectX und genauso ein Wrapper wie MDX, nur dessen Weiterentwicklung, warum mans umbenannt hat -> Frag mich nicht...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Hatte mich nur vertippt.

    VB.NET-Quellcode

    1. Dev.DrawPrimitives(PrimitiveType.PointList, 0, 12)


    Gleiches Phänomen wie oben beschrieben.

    Edit: Sorry schon wieder :cursing: jetzt passt es.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Eistee“ ()