众所周知,头发模拟和渲染特别具有挑战性,实际上很少有人提出游戏中提出可信头发的示例。很难想象实际模拟大量的纤维并模拟这么多股纤维之间可能发生的各种散射事件有多困难,更不用说每个纤维都是半透明的事实了。

有人可以规范化头发渲染的主要挑战是什么,尤其是对于实时场景而言?最新技术如何克服这些问题?是否使用了一些实际的标准理论模型?

澄清一下,我并不是实时地指游戏环境。

#1 楼

对不起,我的回答质量不好。我目前无法使用计算机,并且无法通过手机进行编辑。我特别希望能够粘贴图像。

我要说的是,模拟头发的主要挑战是:


复制它们对照明的特殊反应(作为一种材料)
复制它们体积属性(作为几何形状)
以逼真的方式对其进行动画处理


这是我在主题上收集的参考列表,按时间顺序排列(主要是关于渲染部分) :


JAMES T. KAJIYA,TIMOTHY L. KAY,具有三维纹理的渲染毛皮,1989年
JEROME LENGYEL,EMIL PRAUN,ADAM FINKELSTEIN,HUGUES HOPPE,实时任意表面的皮毛,2000年
STEPHEN R. MARSCHNER,HENRIK WANN JENSEN,Mike CAMMARANO,人发纤维的光散射,2003
ARMIN BRUDERLIN,SU尼尔HADAP,TAE-YONG KIM,NADIA MAGNENAT-THALMANN, ULRICH NEUMANN,Yizhou Yu,STEVE WORLEY,逼真的头发建模,动画和渲染,Siggraph 2003课程
THORSTEN SCHEUERMANN,头发渲染和着色,ShaderX3,2004年
THORSTEN SCHEUERMANN,头发渲染和着色,ATI / GDC 2004
THORSTEN SCHEUERMANN,实用实时头发渲染和着色,ATI / Siggraph 2004
THORSTEN SCHEUERMANN,实用实时头发渲染和着色,ATI / Siggraph 2004(幻灯片)
MARTIN KOSTER,JORG HABER,HANS-PETER SEIDEL,使用可编程图形硬件的人发实时渲染,2004年
HUBERT NGUYEN,WILLIAM DONNELLY,Nalu的头发动画和渲染演示,GPU Gems 2(第23章),2005年
LENA PETROVIC,MARK HENNE,JOHN ANDERSON,头发的模拟和渲染的体积方法,Pixar 2006年
CHRISTOPHE HERY,RAVI RAMAMOORTHI,来自反射的重要采样皮克斯(Pixar)2007年头发纤维
SARAH TARIQ,LOUIS BAVOIL,GPU上的实时头发渲染,Siggraph2008。
ARNO ZINKE,CEM YUKSEL,ANDREAS WEBER,JOHN KEYSER,头发中快速多重散射的双重散射近似,Siggraph 2008,
IMAN SADEGHI,HEATHER PRITCHETT,HENRIK WANN JENSEN,RASMUS TAMSTORF,艺术家友好的头发着色系统,2010
EUGENE D'EON,GUILLAUME FRANCOIS,MARTIN HILL,JOE LETTERI,JEAN-MARIE AUBRY,节能的头发反射率模型,2011年,
轩YU,杨子扬,贾斯汀·亨斯利,原田孝弘,俞静怡,渲染头发复杂散射效果的框架,2012年
贾维薇,冯F,PARASHAR KRISHNAMACHARI,FABIO PELLACINI ,ISHair:用于头发散布的重要采样,2012年
SARAH INVERNIZZI,基于物理的头发渲染,2013年,
WOLFGANG ENGEL,《古墓丽影》中的头发渲染,2013年, JOHANNES HANIKA,基于物理的头发纤维模型的重要性抽样,2013年
TIMOTH Y MARTIN,WOLFGANG ENGEL,NICOLAS THIBIEROZ,JASON YANG和JASON LACROIX,TressFX:高级实时头发渲染,GPU Pro 5,2015年
LEONID PEKELIS,CHRISTOPHE HERY,RYUSUKE VILLEMIN,JUNNYI LING,数据驱动皮克斯2015年头发的光散射模型

我还没有阅读所有这些材料,但我记得其中的一些内容(我对实时解决方案更感兴趣):


Kajiya-kay为逼真的头发/毛发渲染奠定了基础
Marschner提出了一种改进的模型,并指出头发具有两个不同的镜面高光(一个是白色,由于直接反射,由于毛发纤维内部的反射而产生的其他颜色和闪闪发光)
Scheuermann提出了一种近似方法来模拟Marschner描述的行为,这种近似方法适合于实时(使用技巧,例如两个单独的镜面高光,艺术家设计的镜面偏移和指数,噪声纹理)。他还建议使用多边形的三个渲染通道(不透明,透明的背面和正面)来模拟头发的“体积”质量。我听说过的大多数游戏似乎都使用Scheuermann方法进行头发着色。但是,这不是节能解决方案。尽管如此,我认为d'Eon试图在2011年的论文中解决此问题。
另一个有趣的话题是镶嵌细分的使用,最近也被用于替代多边形方法并单独模拟发束。

离线渲染世界试图解决更高级的挑战。我认为其中大多数已在上面的参考文献中进行了描述。