Problem mit 2D Rendern in DirectX 10/11



  • Ich stehe Momentan vor einem ziemlich Kniffligen Problem beim 2D zeichnen unter DirectX 11. Ich hab mir über FreeType 2 ein Font gerendert und auf eine Textur gepackt. Die gesammte Textur am Stück zu rendern liefert auch die erwarteten ergebnisse, aber das Rendern einzellner Teile nicht. Ich habe bereits, wie ichs bereits unter DX9 gemacht habe, de Positionsangaben in 2D und die Texturkoordinaten mit einem Korrekturwert versehen, aber trotz alledem sind nur etwa 50% der einzelln gerenderten Buchstaben 1:1 Abbilder der Textur, eigentlich sollten aber alle 1:1 Ausgaben sein.

    Den Ausgleichswert für die Position mache ich hiermit, wegen den Rasterization Rules.

    //Up/Left Coordinates:
        position/screenSize //wird abgezogen
    //Down/Right Coordinates:
        (screenSize-position)/screenSize //wird aufaddiert
    

    Die Texturkorodinaten errechne ich so, der Ausgleichswert der eingerechnet wird muß rein da die Texturteile sonst gequetscht aussehen.

    //Up/Left Coordinates:
        (coordinate-(coordinate*(1.0f/textureSize)))/textureSize
    //Down/Right Coordinates:
        (coordinate+((textureSize-coordinate)*(1.0f/textureSize)))/textureSize
    

    Meine Frage wäre jetzt ob ich hier irgendwas übersehen habe (das ganze hat unter DX9 wunderbar funktioniert) oder ob jemand nen ganz anderen Ansatz dafür hätte?


Anmelden zum Antworten