Dégradation de la qualité de rendu avec Qt Quick 2
Bonjour à tous,
Je refléchis au passage à Qt5 mais certains points me posent problèmes comme le rendu OpenGL.
A mes début sur Qt Quick 1, j'avais choisi le rendu soft plutôt qu'OpenGL.
Mais maintenant avec Qt Quick 2, OpenGL devient un passage obligé.
Malheureusement il y a une dégradation du rendu.
Pour du texte, on peut encore forcer le rendu soft avec "renderType: Text.NativeRendering".
Observer la différence de rendu avec cet exemple ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
| import QtQuick 2.0
Rectangle {
width: 1200
height: 1000
// scale: 4
Row {
anchors.centerIn: parent
spacing: 20
Column {
Repeater {
model: 56
Text {
text: qsTr("But while the distance fields have many advantages, ") + (8.0 + index/10)
font.family: "Arial"
font.pointSize: 8.0 + index/10
}
}
}
Column {
Repeater {
model: 56
Text {
text: qsTr("But while the distance fields have many advantages, ") + (8.0 + index/10)
font.family: "Arial"
font.pointSize: 8.0 + index/10
renderType: Text.NativeRendering
//antialiasing: true
}
}
}
Column {
spacing: 30
Rectangle {
x: 25; y: 25
width: 50; height: 50
border.width: 1
Text {
anchors.centerIn: parent
text: "Box"
}
}
Rectangle {
x: 25; y: 25
width: 50; height: 50
border.width: 1
antialiasing: true
Text {
anchors.centerIn: parent
text: "Box"
}
}
Rectangle {
x: 25; y: 25
width: 50; height: 50
border.width: 1
smooth: true
Text {
anchors.centerIn: parent
text: "Box"
}
}
Rectangle {
x: 25; y: 25
width: 50; height: 50
border.width: 1
antialiasing: true
smooth: true
Text {
anchors.centerIn: parent
text: "Box"
}
}
Rectangle {
x: 25; y: 25
width: 50; height: 50
rotation: 45
border.width: 1
Text {
anchors.centerIn: parent
text: "Box"
}
}
Rectangle {
x: 25; y: 25
width: 50; height: 50
rotation: 45
border.width: 1
antialiasing: true
Text {
anchors.centerIn: parent
text: "Box"
}
}
Rectangle {
x: 25; y: 25
width: 50; height: 50
rotation: 45
border.width: 1
smooth: true
Text {
anchors.centerIn: parent
text: "Box"
}
}
Rectangle {
x: 25; y: 25
width: 50; height: 50
rotation: 45
border.width: 1
antialiasing: true
smooth: true
Text {
anchors.centerIn: parent
text: "Box"
}
}
}
}
} |
Je trouve le rendu OpenGL est plus homogène mais le rendu soft me semble plus nette surtout pour les petits caractères.
Pour le reste comme un rectangle par exemple, on peut utiliser "antialiasing: true".
Le rendu du rectangle diffère avec Qt4 mais le problème me semble moins important et moins génant.
Est-il possible d'améliorer le rendu du texte ?
J'ai le souvenir d'avoir lu qu'on pouvait augmenter la résolution du rendu OpenGL mais je n'arrive pas à remettre la main dessus.
Cette augmentation est-elle possible ? Si oui, est-elle efficace ?
Merci
Environnement : Windows 7 64b, Qt 5.0.1 Mingw