3d Gebäude - mit kleiner Fehler darstellung

  • GM 7
  • 3d Gebäude - mit kleiner Fehler darstellung

    Hier ist mein Problem. Wenn ich weit raus zoom kommt es zu häsliegen kannten Bildung bei meinem Gebäuden.
    Sie sind keine Models sondern sind hand programmiert. Also block/wall/ Dreiecke Funktionen
    Hier ist mal ein bild


    Kann man da was machen oder nicht. Leider geht ja sowas wie Kanten glättung und Anisotropische Filterung und dieganzen Grafik spielerein nicht im GM
    danke im voraus
    Meine Signatur hat kein Visum für das GM Forum erhalten.
  • Ich hatte auch oft mit solchen Problemen zu kämpfen. Mir ist aufgefallen, dass es auftritt, wenn die Darstellung große Dimensionen einnimmt. Anstatt z.b. ein Haus in der Größe eines kompletten Rooms zu erstellen, ist es ratsam das Haus (im Room Editor) auf wenige Pixel zu beschränken. Dadurch kannst du es aus viel größerer Distanz sauber darstellen. Du kannst es auch dann natürlich aus nächster Nähe betrachten. Bei 3D Arbeiten hängt das Größenverhältnis glücklicherweise von dir ab.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Hat einer eine Ahnung, woran das liegen könnte?
    Wieso macht der GM das falsch, wenn Directx das eig. richtig macht?
    "das war meine letzte flamewar PM an dich ."
  • blubberblub schrieb:

    Hat einer eine Ahnung, woran das liegen könnte?
    Wieso macht der GM das falsch, wenn Directx das eig. richtig macht?

    Der GM macht das nicht "falsch" so machen das eigentlich alle 3d engines.
    Dieser Effekt tritt auf, wenn die Textur im Verhälltnis zur Darstellung verkleinert angezeigt wird, zwei unverbundene Polygone eines objekts (oder mehrerer Objekte mit gleicher depth) aneinander stoßen und die Funktion d3d_set_culling (das polygone auch von der rückseite sichtbar sind) aktiviert ist. Letztere Funktion zeichnet jedes Polygon im Raum nocheinmal, aber rückwärts. Da dem GM anscheinend keine 3d depth Werte vorgegeben wurden zeichnet er die polys einfach der reihe nach und auch polygone die eigentlich gar nicht zu sehen sind werden gezeichnet. Diese Dopplung von polys an einer Stelle verursacht diesen Effekt.
    Man kann das verhindern, in dem man das d3d_set_culling einfach ausstellt. Das kann man auch selektiv, also nur für einzelne polys innerhalb eines objekts.
    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
  • WIN schrieb:

    Der GM macht das nicht "falsch" so machen das eigentlich alle 3d engines.
    Dieser Effekt tritt auf, wenn die Textur im Verhälltnis zur Darstellung verkleinert angezeigt wird, zwei unverbundene Polygone eines objekts (oder mehrerer Objekte mit gleicher depth) aneinander stoßen und die Funktion d3d_set_culling (das polygone auch von der rückseite sichtbar sind) aktiviert ist. Letztere Funktion zeichnet jedes Polygon im Raum nocheinmal, aber rückwärts. Da dem GM anscheinend keine 3d depth Werte vorgegeben wurden zeichnet er die polys einfach der reihe nach und auch polygone die eigentlich gar nicht zu sehen sind werden gezeichnet. Diese Dopplung von polys an einer Stelle verursacht diesen Effekt.
    Man kann das verhindern, in dem man das d3d_set_culling einfach ausstellt. Das kann man auch selektiv, also nur für einzelne polys innerhalb eines objekts.

    Ich glaub, das stimmt nicht ganz, denn dieser Treppeneffekt tritt auch an großen Flächen auf, die eigentlich nur aus 2 Polygonen bestehen. Auch beim Nichtzeichnen der Rückseiten (durch d3d_set_culling) besteht dieses Problem. Es muss also eine andere Ursache haben.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Da dem GM anscheinend keine 3d depth Werte vorgegeben wurden zeichnet er die polys einfach der reihe nach und auch polygone die eigentlich gar nicht zu sehen sind werden gezeichnet. Diese Dopplung von polys an einer Stelle verursacht diesen Effekt.

    Leuchtet mir nicht ganz ein, da sich die Polys doch gar nicht komplett überdecken, und der Z-Buffer in der richtigen Reihenfolge zeichnet. Höchstens einzelne Pixel direkt bei der Überschneidung haben die gleichen depth-Werte, was doch aber eig gar nicht bzw kaum sichtbar sein sollte?
    "das war meine letzte flamewar PM an dich ."
  • Hab das Problem selber raus gefunden

    Es ist ganz einfach wenn man das dach zu erst Programmiert und dann erst die Wände darunter kommt es zu solchen Fehlern.
    Da ja der Programm ablauf immer von oben nach unten geht versucht er etwas in der rein volgle späteres zu Zeichnen welches aber durch ein früheren befehl in Konflikt kommt.
    Das heist man muss gebäude von unten nach oben bauen oder von innen nach außen. Es gibt natürlich auch fälle in dennen man es nich vermeiden kann. Wie im falle meines Sees im meine Spiel. Dort ist die Wasser oberfläche genau in der mitte und zudem noch halb transparent. da kann man es drehen wie man will.

    Aberan sonsten ist das Problem web.
    Meine Signatur hat kein Visum für das GM Forum erhalten.
  • Mmmhm.. gibt es einen allgemeinen Namen für dieses Problem? Ich kann mir das nämlich nicht so ganz vorstellen, da jeder Pixel in der Renderpipeline letztendlich auf seinen depth-Wert geprüft wird, somit sind nur die vordersten Pixel zur Kamera sichtbar. Natürlich kann sich das überschneiden, wenn 2 Pixel am selben Ort den selben Depth-Wert haben, aber das ist doch hier gar nicht der Fall, oder??

    :O
    "das war meine letzte flamewar PM an dich ."