WebGL ne prend pas en charge le fonctionnement par bits. Donc, je convertis mon uniforme int
en float
. Ensuite, utilisez la division et mod pour extraire chaque octet.Comment décompresser chaque octet d'un uniforme int de 4 octets dans WebGL GLSL?
Toutefois, en raison du problème de précision, la conversion int
en float
perd de la précision si mon int
est trop grand. Y a-t-il une solution élégante pour faire face à cela? Actuellement, mon idée ne stocke que 3 octets dans mon uniforme int
de 4 octets.
Je souhaite passer un tableau de 1 octet au GPU mais WebGL ne prend pas en charge l'uniformité 1 octet. Je veux donc l'emballer dans un uniforme de 4 octets et le décompresser dans le shader. –
Juste le passer comme un flotteur directement. Si c'est beaucoup d'octets, passez-le comme une texture. Vous pourriez passer 2 octets par uniforme flottant, mais je ne compterais vraiment pas dessus. Vous ne pouvez pas faire plus de 2 octets précisément car les flotteurs ont seulement 23bit de mantisse. – starmole