INNER CODE UNIT · Python
cos_theta
SedulousWorks/SedulousEngine · Scripts/generate_brdf_lut.py:79
cos_theta = np.sqrt((1.0 - xi2_all) / (1.0 + (a2 - 1.0) * xi2_all))
sin_theta = np.sqrt(np.maximum(1.0 - cos_theta * cos_theta, 0.0))
phi = 2.0 * np.pi * xi1_all
# H in tangent space (N = Z-up).
Hx = np.cos(phi) * sin_theta
Hy = np.sin(phi) * sin_theta
Hz = cos_theta
# Geometry k for IBL: k = a / 2 (a = roughness^2).
k = a * 0.5
# NdotV values for this row (all x values).
ndot_v = np.maximum(np.arange(1, SIZE + 1, dtype=np.float64) / SIZE, 0.001)
# V in tangent space where N = (0,0,1): V = (sqrt(1 - NdotV^2), 0, NdotV).
Vx = np.sqrt(1.0 - ndot_v * ndot_v)
Vz = ndot_v