! Computes fresnel coefficient for conductor medium with complex * refraction index (eta,k). The cosine has to be positive. */
| 66 | /*! Computes fresnel coefficient for conductor medium with complex |
| 67 | * refraction index (eta,k). The cosine has to be positive. */ |
| 68 | inline Vec3fa fresnelConductor(const float cosi, const Vec3fa& eta, const Vec3fa& k) |
| 69 | { |
| 70 | const Vec3fa tmp = eta*eta + k*k; |
| 71 | const Vec3fa Rpar = (tmp * (cosi*cosi) - 2.0f*eta*cosi + Vec3fa(1.0f)) * |
| 72 | rcp(tmp * (cosi*cosi) + 2.0f*eta*cosi + Vec3fa(1.0f)); |
| 73 | const Vec3fa Rper = (tmp - 2.0f*eta*cosi + Vec3fa(cosi*cosi)) * |
| 74 | rcp(tmp + 2.0f*eta*cosi + Vec3fa(cosi*cosi)); |
| 75 | return 0.5f * (Rpar + Rper); |
| 76 | } |
| 77 | |
| 78 | // ======================================================= |
| 79 | struct FresnelConductor { |
no test coverage detected