In teh tangent space vertex attributes why is the bitangent (aka binormal) provided as an attribute instead of calculated?
If the three vectors of the tangent space must be perpendicular then the bitangent can be calculated as the cross-product of the other two vectors. There are technically two perpendiculars here, but surely we could consistently calculate the one we want, even if it requires a boolean marker to negate it.
Similarly the bitangent itself doesn't need a full vector to be represented. From the normal alone we know the plane on which the tangent must reside. In theory a simple angle would be enough to calculate the tangent vector.
Given that GPU memory is at a premium why do we provide the full vectors for these values rather than calculating them (with reduced data input)? Or am I wrong in assuming the tangent space must be a cartesian system?