Hallo,
ich habe mir einen Boden aus 2 Dreiecken (= 6 Vertices) gebastelt. Jedes Vertex hat die Y-Koordinate von 0.
Soweit so gut.
Danach habe ich einen ganz normalen Quader darauf gestellt. Der steht bündig auf dem Boden (Y = 0) und da habe ich mir die 8. Seite des Quaders gespart (nämlich den Boden). Wenn ich jetzt aber das Ergebnis betrachten will, sehen die Texturen darauf sehr seltsam aus.
Ich habe dafür ein Bild angefügt, um euch das mal zu veranschaulichen.
Hoffentlich kennt sich jemand mit diesem Problem aus.
PS: Culling ist auf NONE gestellt! (Liegt's daran?)
Sieht für mich aus, als sei kein Z-Buffer aktiv. Wie sehen deine PresentParameters aus?
MfG VizOne
Ich habe mal folgendes eingefügt:
device.RenderState.ZBufferEnable = true;
device.RenderState.ZBufferWriteEnable = true;
Leider sieht die Szenerie dann noch schrecklicher aus und ich habe ne Menge vertikaler Streifen auf dem Bildschirm.
Hier noch meine presentParameters.
Du musst einen Z-Buffer erstellen, am einfachsten, indem du EnableAutoDepthStencil auf true und AutoDepthStencilFormat auf ein gültiges Depth/Stencil-Format setzt, z.B. DepthFormat.D16.
MfG VizOne
Gut, also ich habe jetzt folgendes eingestellt:
pres.AutoDepthStencilFormat = DepthFormat.D16;
pres.EnableAutoDepthStencil = true;
Leider ändert sich an der Ausgabe rein garnichts. Auch nicht, wenn ich die "ZBufferEnable" und "ZBufferWriteEnable"-Werte hinzunehme.
Fehlt da vielleicht noch eine Einstellung?
Löschst du den ZBuffer auch nach jedem Frame?
Ist die Orientierung deiner Polygone OK (CCW vs. CC)?
I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.
Löschen des ZBuffers ... wie genau?
Culling hab ich auf NONE gestellt, von daher sollte es doch mit CCW und CW kein Problem geben oder doch?
Alle klar, es geht jetzt 🙂
Es war wirklich wegen der Orientierungslosigkeit einer meiner Flächen! Nach der Verbesserung und Culling = Clockwise funktioniert es jetzt endlich.
Danke
Jetzt habe ich ein ähnliches Problem sobald ich mehrere Meshes auf einmal in der Szene habe.
Die Gebilde überdecken sich in einer bestimmten Position alle gegenseitig.
Während auf Bild 1 noch alles in Ordnung ist, sieht man nach leichtem Drehen der Weltperspektive sowas wie in Bild 2.
Trotz dem ich folgendes eingefügt habe:
pres.AutoDepthStencilFormat = DepthFormat.D16;
pres.EnableAutoDepthStencil = true;
Mit folgendem Code hab ich noch mehr grafische Probleme, also hab ich den ganz rausgelassen:
device.RenderState.ZBufferEnable = true;
device.RenderState.ZBufferWriteEnable = true;
Ich lösche auch jedes Mal nach dem Rendern die ganze Szene mit
device.Clear(ClearFlags.Target, Color.Bisque, 1.0F, 0);
Z-Buffer kannst du mit ClearFlags.ZBuffer löschen. ClearFlags.Target löscht nur den Pixelbuffer.
I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.