Cubic Bezier profile: B0(u)=(1-u)^3 B1(u)=3u(1-u)^2 B2(u)=3u^2(1-u) B3(u)=u^3 z(u)=Σ B_i(u) z_i r(u)=Σ B_i(u) r_i z'(u)=Σ B_i'(u) z_i r'(u)=Σ B_i'(u) r_i Surface of revolution: S(u,θ) = ( r(u) cosθ, r(u) sinθ, z(u) ) S_u = ( r'(u)cosθ, r'(u)sinθ, z'(u) ) S_θ = ( -r(u)sinθ, r(u)cosθ, 0 ) N = S_u × S_θ = ( -z'(u) r(u) cosθ, -z'(u) r(u) sinθ, r(u) r'(u) ) Ray–surface intersection: R(t)=O + t D x(t)=Ox + t Dx, y(t)=Oy + t Dy, z(t)=Oz + t Dz f(t) = x(t)^2 + y(t)^2 - ( r(z(t)) )^2 = 0 f'(t)= 2(x Dx + y Dy) - 2 r(z) r'(z) Dz Newton: t_{k+1} = t_k - f(t_k)/f'(t_k) Invert profile: solve z(u)=z_p for u (cubic solve via Newton) Refraction (vector Snell): I = incident unit dir, n = unit normal outward, η = n1 / n2 cosθi = - n · I k = 1 - η^2 (1 - cosθi^2) if k < 0 => total internal reflection else T = η I + ( η cosθi - sqrt(k) ) n Reflection: R = I - 2 (I·n) n Fresnel (Schlick): R0 = ((n1 - n2)/(n1 + n2))^2 R(θ) ≈ R0 + (1-R0) (1 - cosθ)^5 See more