24 double dDT = vUV.
Dot(n);
25 double dDiscriminant = 1.0 - (NiOverNt * NiOverNt * (1 - dDT * dDT));
26 if (dDiscriminant > 0) {
27 refracted = NiOverNt * (vUV - (n * dDT)) - (n * sqrt(dDiscriminant));
48 #endif // DIELECTRIC_H virtual double MatFuzz() const
Definition: dielectric.h:40
virtual bool Scatter(const Ray &r_in, const HitRecord &rec, Vector3D &attenuation, Ray &scattered) const
Definition: dielectric.cpp:3
Definition: dielectric.h:7
double Dot(const Vector3D &v2)
Return dot product (double) of two Vector3D.
Definition: vector.h:60
Dielectric(double ri)
Definition: dielectric.h:15
virtual double MatRef() const
Definition: dielectric.h:43
virtual int MatType() const
Definition: dielectric.h:34
static bool Refract(const Vector3D &v, const Vector3D &n, double NiOverNt, Vector3D &refracted)
Definition: dielectric.h:22
double m_dRefId
Refractive index of Dielectric. Air = 1.0; Glass = 1.3 - 1.7; Diamond = 2.4.
Definition: dielectric.h:46
virtual Vector3D MatColor() const
Definition: dielectric.h:37