AN8 to D3D

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • hallo
    ich habe wieder einmal ein problem. ich habe ein script(eigentlich 3) geschrieben um AN8 dateien
    in gamemaker models umzuwandeln. leider hab ich das problem dass ab 6 faces die punkte nicht mehr stimmen und ich keine ahnung habe wieso(6 faces=würfel - funktioniert noch fehlerfrei)
    vielleicht kann irgend jemand der sich in gml und auch im fileaufbau des animator(anim8or) helfen....ich wäre sehr dankbar.......
    ich werden den code(wenn entlich ohne fehler) veröffentlichen und ein credit eintrag machen...
    Dragoon
    Dateien
    • an8tod3d.zip

      (3,4 kB, 315 mal heruntergeladen, zuletzt: )
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • ich kenne mich mit dem .an8 format leider nicht aus. ich vermute jedoch, das die informationen ähnlich wie in den gänigen 3d formaten gespeichert werden.
    der game maker jedoch hat etwas extrawagante 3d funktionen. man kann z.b. keinen multipolygonalen körper erstellen, der eine geschlossene form bildet. natürlich kann man es so einstellen, das es so aussieht als wär er geschlossen. aber methematisch ist er das nicht. die funktionsweise der extended privitve objects habe ich hier schon einmal ausführlich erklährt. ich würde dich bitten das vorher durchzulesen, damit du weisst was ich hier laber. zusätzlich gibt es noch die die standart primitive objects (floor, wall, box etc.).

    nun zu deinem problem: du wirst warscheinlich probleme dabei haben das .an8 in funktionsfähigen d3d code umzuschreiben. als beispiel nehmen wir diese eine kugel:

    es handelt sich um einen gelschlossenen, mehrpolygonalen (320 an der zahl) körper. für einen solchen körper gibt es zwar einen fertigen code, aber das soll uns grad nicht interessieren (ansonsten wäre das ratsamer!).
    nun hast du folgende möglichkeiten, den körper in gml darzustellen:

    1. du verwendest die draw primitive einstelleung "pr_trianglelist" und setzt an baust den ganzen körper mit einzelen polygonen nach. das bedeutet aber, das dort wo im moment 1 vertex ist, nun 5 erstellt werden müssen.

    2. du verwendest die draw primitive einstelleung "pr_trianglestrip" und baust nun die fläche des körpers spiralförmig um sein volumen auf. ein gutes beispiel ist der apfel, der in einem stück geschält wird.

    3. du verwendest die draw primitive einstelleung "pr_trianglefan" und baust den köper nun aus vodefienierten fünfecken zusammen, die die sich natürlich auch aus polygonen zusammensetzten. hier ein bild:


    4. du kombinierst diese möglichkeiten, und erstellst den körper so.

    5. du denkst dir was eigenes aus und erzählst mir dann davon... :D

    EDIT: fehler
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von WIN ()

  • Quellcode

    1. points {
    2. (-10 -10 -10) (-10 -10 10) (-10 10 -10)
    3. (-10 10 10) (10 -10 -10) (10 -10 10)
    4. (10 10 -10) (10 10 10) }
    5. faces {
    6. 4 4 0 -1 ( (0 0) (4 4) (6 6) (2 2) )
    7. 4 4 0 -1 ( (1 1) (3 3) (7 7) (5 5) )
    8. 4 4 0 -1 ( (0 0) (2 2) (3 3) (1 1) )
    9. 4 4 0 -1 ( (4 4) (5 5) (7 7) (6 6) )
    10. 4 4 0 -1 ( (2 2) (6 6) (7 7) (3 3) )
    11. 4 4 0 -1 ( (0 0) (1 1) (5 5) (4 4) )
    Alles anzeigen

    so sieht ein würfel als an8 format aus(gekürzt)
    zuerst werden die punkte definiert und später werden sie zu flächen zusammengesetzt

    leider weis ich immer noch nicht wieso es fehler gibt sobald ich mehr flächen als ein würfel benutze(12 dreieckige-polygone)
    Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • poste bitte mal den code, den dein converter ausspuckt. in der version, die du hochgelden hast ist ein fehler drinn.
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x