Pixelgenaue Texturierung mit D3D9 fehlerhaft
-
Hi,
ich möchte einen 2D-Fensterrahmen aus Teilstücken pixelgenau texturieren (muss ja, damit alles passt). Soweit kein Thema. Allerdings verschiebt D3D9 die gekachelten Fensterrandtexturen manchmal(!) um einen Pixel, wenn ich die Fenstergröße etwas änder. Der Code ist mehrfach geprüft und sicher korrekt.
Hier ein Bild zu meinem Problem:
http://img7.imageshack.us/img7/918/fehler.jpgDanke!
-
Fütterst du den Rasterizer mit vorberechneten Pixelcoordinaten oder mit "World-Space" Koordinaten?
Mit vorberechneten Pixelcoordinaten hab' ich solche Probleme nämlich noch nicht gehabt.Der Code ist mehrfach geprüft und sicher korrekt.
Aha.
Ich rechne richtig aber mein Ergebnis ist falsch. Hm. Vielleicht ist aber auch deine Logik falsch?
-
Ich benutze vortransformierte Vertices (D3DFVF_XYZRHW). Und der Effekt tritt wirklich völlig unabhängig vom Code auf.
-
Ohne Texturen sind die Rechtecke übrigens immer pixelgenau angeordnet.
-
Hat jemand ne Idee, wie ich das umgehen/beheben kann?
Die Texturkoordinaten ändern sich übrigens auch nie.
Wenn ich zB. den untersten Vertex eines Dreiecks um einen bestimmten Wert auf der y-Achse verschiebe, verschiebt sich die Textur um genau einen Pixel auf der x-Achse nach rechts.
-
Is doch voll beschissen. Da änder ich weder x der Vertices, noch die Texturkoordinaten und trotzdem verschiebt D3D die Textur ein Stück nach rechts. Und jetzt???
-
Vielleicht ist das Problem ein Rundungsfehler.
Gibst du die Vertex-Koordinaten als x, y, x+w, y+h an, oder als x-0.5, y-0.5, x+w-0.5, y+h-0.5?
Wenn du die erste Variante verwendest versuch mal die zweite.
-
Und?
Problem gelöst oder aufgegeben und PS3 gekauft?