GDI3D - 3D auch ohne DirectX

    • Beta

    Es gibt 92 Antworten in diesem Thema. Der letzte Beitrag () ist von Quadsoft.

      Endlich mal wieder ein richtig ordentliches Projekt hier!
      Würde mich freuen wenn du am Ball bleibst ;)

      Edit: Netter Bewertungsdurchschnitt. Respekt.

      Gruß
      To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

      At some point in time, you recognize that knowing more does not necessarily make you more happy.
      Hi,

      Hätte ich nich gedacht das das das so geht.
      Um in blender eine .obj zu erstellen, macht ihr folgendes:

      1. Irgendwas modellieren
      2. Auf File (ganz oben) klicken, dann auf Export und dann Wavefront (.obj)
      3. Den Speicherpfad angeben
      4. Jetzt speichern! :)

      Bei mir funktioniert das.
      Schaut klasse aus ^^

      Hab nur eine Frage
      Wenn du GDI benutzt könnte es doch bei einem Spiel z.B. zu Problemen kommen welche sich dann in Form von ruckeln oder sehr sehr sehr langsamen aufbau von Scenen zeigt

      Wie willst du dem vorbeugen?
      zwar funktioniert es bei mir nicht
      • Ist die Dll importiert?
      Wenn du GDI benutzt könnte es doch bei einem Spiel z.B. zu Problemen kommen welche sich dann in Form von ruckeln oder sehr sehr sehr langsamen aufbau von Scenen zeigt
      Genau. (aber mit Doublebuffering sollte das klappen) ^^ Und wie ich leider doch feststellen muss, ist die Performance von GDI im untersten Keller. Zur Zeit (neue Variante mit Shadern) muss jeder Pixel eines Polygons einzeln gezeichnet werden. Dazu GDI zu benutzen?...
      Also kam ich zu Lockbits. Aber auch hier bin ich sehr unzufrieden.

      Platzierung für Zeichnen-Geschwindigkeit:
      1. Zeichnen eines Polygons mit "Fillpolygon()"
      2. Zeichnen jeder Pixel eines Polygons mit Lockbits
      3. Zeichnen jeder Pixel eines Polygons mit GDI

      Ich versteht ehrlichgesagt nicht, wieso Fillpolygon schneller ist als Lockbits. Leider ist diese Methode ungeeignet für GDI3D mit Shadern.

      yeti2078 schrieb:

      Zitat


      zwar funktioniert es bei mir nicht
      • Ist die Dll importiert?


      wenn ich das machen will steht bei .Net Framework-Komponenten:

      in "C:\Users\Name\VisualBasic2008\GDI3D.dll"sind keine Komponenten vorhanden,
      die in der Toolbox positioniert werden können.


      und wenn ich das bei COM-Steuerelementen machen will:

      Die Typbibliothek "C:\Users\Name\VisualBasic2008\GDI3D.dll" konnte nicht geladen werden

      yeti2078 schrieb:


      Genau. (aber mit Doublebuffering sollte das klappen) ^^ Und wie ich leider doch feststellen muss, ist die Performance von GDI im untersten Keller. Zur Zeit (neue Variante mit Shadern) muss jeder Pixel eines Polygons einzeln gezeichnet werden. Dazu GDI zu benutzen?...
      Also kam ich zu Lockbits. Aber auch hier bin ich sehr unzufrieden.Auch da seh ich

      Auch da seh ich technische lücken und zwar wirst du wahrscheinlich den doublebuffer wie mit gdi gewohnt als Bitmap (oder ähnliches) im hintergrund zeichnen lassen und sobald es fertig ist anzeigen, aber wenn wir ,so als beispiel, 1 000 000 Polygone (bei einem spiel gar nicht so unwahrscheinlich) haben wird sich der Buffer höchst wahrscheinlich genau so aufhängen als ob du es direkt ohne Buffer zeichnen würdest, da gdi einfach für solch große sachen zu langsam ist
      @MrTheMake:
      Es sollen ja auch keine Com- oder Toolbox-Objekte importiert werden.
      Sieh mal hier.

      @Madd Eye:
      Das Doublebuffering bringt der Rechenleistung natürlich nichts, ja. Da habe ich dich wohl falsch verstanden. Ich dachte es ging um das alt bekannte "Flackern".
      Und zu den 1.000.000 Polygonen... Hättest du Lust auf, mal geschätzte, 0,02 fps? Zum Spiele-Rendern ist GDI3D wirklich nicht gedacht.
      wenn ja wär das fast ein wenig schade den da könnte man noch großen Potential rausholen ^^
      Die "alte", aber noch hier die aktuelle, Methode arbeitet einfach mit Fillpolygon.
      Das Problem dabei ist, dass so nur eine Farbe pro Polygon möglich ist.

      Um das zu ändern arbeite ich gerade an einer neuen Methode, nämlich die Pixel einzeln zu zeichnen. Und hier brauche ich einen Rat.
      Ich finde keine "schnelle" Möglichkeit Pixel einzeln zu zeichnen. Sogar Lockbits ist extrem langsam, da der Zugriff auf die Array-Daten einfach zu lange dauert.

      Hilfe! ^^
      also er zeigt kein Fehler an bis:
      Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Typ "GDI3D.Graphics3D" in der Assembly "GDI3D, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" konnte nicht geladen werden..

      der kommt bei Debuggen

      weiß jemand wa man da machen kann

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