介绍
头发的渲染有很多方法,主要有分基于法线的(STRAND BASE)和基于多边形面片的(PolygonBase)。而头发的渲染其实也是各向异性的一种线像。我们会在以下章节介绍一下相关的技术基础,包括了:
-
各向异性v.s.各向同性
-
Kajiya-Kay模型 (基于经验)
-
Marschner’s (R/RR/TRT) (基于物理)
-
LUT Marschner’s模型(基于物理,近似)
-
Strand Based, Single Scattering & Multi Scattering模型(基于物理)
-
基于发线
-
基于多边形面片
各向异性v.s.各向同性
各向异性着色是在垂直于表面上的纹理或凹槽的方向上延伸反射。如果把各向异性渲染与更常见的各向同性渲染进行对比的话。各向同性渲染在所有方向上均匀地散射光,而各向异性头发在不同的方位角及跟据表面颗粒形状的纹理而改变,一般在拉丝钢,CD光盘,头发,等划痕表面产生垂直于纹理方向的高光。
这是因为在这些表面微观细看,我们会发现微观上是有一根一根的划痕的东西。
各向异性的BRDF有以下的: f ( ω o , ω i , θ i , θ o ) ≠ f ( ω o − ω i , θ i , θ o ) f(\omega_o, \omega_i, \theta_i,\theta_o) \ne f(\omega_o - \omega_i, \theta_i,\theta_o) f(ωo,ωi,θi,θo)=f(ωo−ωi,θi,θo)
各向同性的BRDF有以下的: f ( ω o , ω i , θ i , θ o ) = f ( ω o − ω i , θ i , θ o ) f(\omega_o, \omega_i, \theta_i,\theta_o) = f(\omega_o - \omega_i, \theta_i,\theta_o) f(ωo,ωi,θi,θo)=f(ωo−ωi,θi,θ