You could take a look at the Textures constants page. If you scroll down to the Types
section, you’ll see that there are plenty of data types to choose from, including THREE.UnsignedByteType
. Not sure how this would affect the flocking/birds example, since I haven’t looked at its code, but it’s worth a shot!
Here’s a snippet from a project from 2017 where I needed to perform some GPGPU computation, and I ran into iOS Safari issues as well, so maybe it can be of some help.
if(/(iPad|iPhone|iPod)/g.test(navigator.userAgent)){
// iOS devices only support HalfFloatType
return THREE.HalfFloatType;
}else if(renderer.extensions.get("OES_texture_float")){
// Most devices support FloatType
return THREE.FloatType;
}else{
// Otherwise use UnsignedByte type
return THREE.UnsignedByteType;
}