Merge pull request #15594 from AndreaCatania/p4
Fixed graphic artifact caused by anisotropic filter
This commit is contained in:
commit
ec7a8e7d63
1 changed files with 2 additions and 2 deletions
|
@ -904,7 +904,7 @@ float G_GGX_anisotropic_2cos(float cos_theta_m, float alpha_x, float alpha_y, fl
|
||||||
float sin2 = (1.0-cos2);
|
float sin2 = (1.0-cos2);
|
||||||
float s_x = alpha_x * cos_phi;
|
float s_x = alpha_x * cos_phi;
|
||||||
float s_y = alpha_y * sin_phi;
|
float s_y = alpha_y * sin_phi;
|
||||||
return 1.0 / (cos_theta_m + sqrt(cos2 + (s_x*s_x + s_y*s_y)*sin2 ));
|
return 1.0 / max(cos_theta_m + sqrt(cos2 + (s_x*s_x + s_y*s_y)*sin2 ), 0.001);
|
||||||
}
|
}
|
||||||
|
|
||||||
float D_GGX_anisotropic(float cos_theta_m, float alpha_x, float alpha_y, float cos_phi, float sin_phi) {
|
float D_GGX_anisotropic(float cos_theta_m, float alpha_x, float alpha_y, float cos_phi, float sin_phi) {
|
||||||
|
@ -913,7 +913,7 @@ float D_GGX_anisotropic(float cos_theta_m, float alpha_x, float alpha_y, float c
|
||||||
float r_x = cos_phi/alpha_x;
|
float r_x = cos_phi/alpha_x;
|
||||||
float r_y = sin_phi/alpha_y;
|
float r_y = sin_phi/alpha_y;
|
||||||
float d = cos2 + sin2*(r_x * r_x + r_y * r_y);
|
float d = cos2 + sin2*(r_x * r_x + r_y * r_y);
|
||||||
return 1.0 / (M_PI * alpha_x * alpha_y * d * d );
|
return 1.0 / max(M_PI * alpha_x * alpha_y * d * d, 0.001);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue