2016-12-14 1 views
2

Je déclare une texture en métal dans Swift avec le format .bgra8Unorm. Maintenant, dans le calcul de métal kernel j'y accède en utilisant le type de données half (je crois qu'un exemple Apple l'a fait de cette façon).Formats de texture en métal

texture2d<half, access::sample> inTexture [[ texture(0) ]] 

Est-ce que l'accès à une texture bgra8Unorm cette façon (via un échantillonneur) et/ou l'écrire Dosseret automatiquement et décompressez half valeurs et de 8 entiers de bits? Que se passe-t-il lorsque j'écris une valeur half négative à la texture?

+0

Eh bien, avec 'access :: sample', vous ne pouvez pas écrire sur la texture. –

+0

Oui. Il y a un autre paramètre de texture avec 'access :: write' qui n'est pas listé ici. Désolé pour la confusion. –

Répondre

3

Yes. Lors de l'écriture dans une texture avec des composants entiers normalisés non signés, les valeurs sont effectivement fixées à [0, 1], puis mises à l'échelle par la valeur maximale du format (255, dans ce cas).