Qu'est-ce qu'une texture en virgule flottante?
Je suis en train d'envelopper ma tête autour de la virgule flottante textures, mais je trouve qu'il est difficile de trouver une bonne ressources de l'expliquer à moi.. j'ai essayé la lecture de l'OpenGL ARB_texture_float spec, mais je ne peux toujours pas l'obtenir dans ma tête..
Et comment est-à virgule flottante de données relatives à la normale de 8 bits par canal RVB ou RVBA de données à partir d'une image que je suis de chargement dans une texture?
Merci pour l'aide et tout type d'information relative à ma question!!
source d'informationauteur lokstok
Vous devez vous connecter pour publier un commentaire.
Ici est une lecture un peu ici à ce sujet.
Essentiellement à virgule flottante, la texture est une texture dans lequel les données sont de type à virgule flottante 🙂
C'est qu'il n'est pas serré. Donc, si vous avez 3.14 f dans la texture de vos cheveux vous permettra de lire la même valeur dans le shader.
Vous pouvez les créer avec un nombre différent de canaux. Aussi, vous pouvez cage 16 ou 32 bits textures, selon le format. par exemple,
où les données pourraient être comme ceci:
puis dans le shader, vous pouvez obtenir exactement le même (si vous utilisez FLOAT32 texture).
par exemple
Si vous étiez à l'aide de 16 bits format, dire GL_RGBA16F, alors à chaque fois que vous lisez dans les shader, vous aurez une conversion. Donc, pour éviter cela, vous pouvez utiliser half4 type:
half4 valeur = texture2D(my16BitTex, texcoord.xy);
Donc, en gros, la différence entre le normalisée 8bit point flottant et de la texture, c'est que dans le premier cas, vos valeurs seront portées à [0..1] et serrée, alors que dans ce dernier, vous recevrez vos valeurs, comme c'est ( sauf pour les 16<->32 conversion, voir mon exemple ci-dessus).
Pas que vous souhaiterez probablement de les utiliser avec des organisations confessionnelles comme une cible de rendu, dans ce cas, vous devez savoir que pas tous les formats peuvent être joints en tant que cible de rendu. E. g. vous ne pouvez pas joindre de Luminance et de l'intensité des formats.
Pas également tout le matériel prend en charge le filtrage de virgule flottante de textures, de sorte que vous devez vérifier d'abord pour votre cas, si vous en avez besoin.
Espère que cette aide.
FP textures ont un spécial désigné gamme de formats internes (RGBA_16F,RGBA_32F,etc).
Régulièrement des textures de stocker des données en virgule fixe, de sorte que leur lecture vous donne [0,1] plage de valeurs. Contraire, FP textures vous donner [-inf,+inf] plage de suite (pas nécessairement avec une plus grande précision).
Dans de nombreux cas (comme le rendu HDR), vous pouvez facilement procéder sans FP textures, tout en transformant les valeurs d'ajustement dans [0,1]. Mais il y a des cas comme le rendu différé lorsque vous souhaitez stocker, par exemple, de l'espace-monde coordonner sans se soucier de leur gamme.