2016-12-14 5 views
2

Ich erkläre eine Metall Textur in Swift mit Format .bgra8Unorm. Jetzt in der Metall-Compute kernel Ich greife darauf unter Verwendung der half-Datentyp (ich glaube, ein Apple-Beispiel hat es so gemacht).Metall Textur Formate

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

Wird Zugriff auf eine bgra8Unorm Textur auf diese Weise (über einen Sampler) und/oder das Schreiben automatisch wieder einpacken und half Werte zu und von 8-Bit-Integer auspacken? Was passiert, wenn ich einen negativen half Wert in die Textur schreibe?

+0

Nun, mit 'access :: sample' können Sie nicht in die Textur schreiben. –

+0

Ja. Es gibt einen anderen Texturparameter mit 'access :: write', der hier nicht aufgeführt ist. Entschuldigung für die Verwirrung. –

Antwort

3

Yes. Beim Schreiben in eine Textur mit normalisierten vorzeichenlosen ganzzahligen Komponenten werden die Werte effektiv auf [0, 1] geklammert und dann mit dem Maximalwert des Formats skaliert (in diesem Fall 255).