mediump float
dans les shaders GLES est censé être suffisant pour les coordonnées de texture, mais est-ce suffisant pour les coordonnées de l'écran?Est-ce que le float médium GLES a suffisamment de précision pour mapper les coordonnées d'affichage?
Selon le this answer, mediump float
a une bonne quantité de portée - de -16384
à +16384
, mais la précision est seulement de 10 bits, ce qui signifie que ci-dessus +1024
ou au-dessous -1024
, la variable de flotteur peut être incrémenté seulement deux pixels à une temps, si je comprends bien, donc vous obtiendrez des erreurs de pixels et des coutures entre les textures à proximité des bords de l'écran. Avec la résolution d'affichage des téléphones modernes allant jusqu'à 3840x2160
, il semble que mediump ne soit pas suffisant pour spécifier des coordonnées d'écran pixel-parfait dans le vertex shader. Je suppose que les écrans 1920x1080
sont toujours bons, si vous utilisez le milieu de l'écran comme coordonnée zéro, et non le coin supérieur gauche ou inférieur gauche, et faites attention aux opérations arithmétiques que vous effectuez sur ces variables à ne jamais dépasser leur gamme -1024:+1024
sécuritaire.
Les fabricants de téléphones pourraient également augmenter la précision en virgule flottante dans leur matériel GFX au-dessus de la spécification, pour correspondre à leurs plus grands écrans, mais je doute qu'ils le feront.
Quelqu'un peut-il confirmer cela?