| 155 | } |
| 156 | |
| 157 | Vector3 Screen(const Vector3& ambient, const Vector3& tint) |
| 158 | { |
| 159 | float luma = Luma(tint); |
| 160 | auto multiplicative = ambient * tint; |
| 161 | auto additive = ambient + tint; |
| 162 | |
| 163 | return Vector3( |
| 164 | Lerp(multiplicative.x, additive.x, luma), |
| 165 | Lerp(multiplicative.y, additive.y, luma), |
| 166 | Lerp(multiplicative.z, additive.z, luma)); |
| 167 | } |
| 168 | |
| 169 | Vector4 Screen(const Vector4& ambient, const Vector4& tint) |
| 170 | { |