Minor comment:  in public interfaces, we do not use abbreviations like `min` and `mix`, but they are fine for private and local identifiers.

More importantly, we should change this function signature.  It is not consistent with the getter.  This takes four arguments; the getter returns an array.  Two Cartesians, as you alluded to, may be reasonable, but it may also be reasonable to introduce a new type with four members, since I image we would use the same thing for labels and for billboard/label translucency based on distance, e.g., it would have:
```javascript
{
nearDistance : 0,
nearValue : 1,
farDistance : 1,
farValue : 0.5
}
``` 
This could also scale to have interpolation functions (ugh that would be a pain to implement per-billboard, better to have it per collection) or extra parameters to overshot as we discussed.