认识图形渲染中的各向异性

一、物理材料中的各向异性

各向异性是指材料的性质会因为方向的不同呈现不同的特性,最常见的就是半导体,在反方向上几乎不导电;

物理性质可以在不同的方向进行测量。如果各个方向的测量结果是相同的,说明其物理性质与取向无关,就称为各向同性。如果物理性质和取向密切相关,不同取向的测量结果迥异,就称为各向异性。造成这种差别的内在因素是材料结构的对称性。在气体、液体或非晶态固体中,原子排列是混乱的,因而就各个方向而言,统计结果是等同的,所以其物理性质必然是各向同性的。而晶体中原子具有规则排列,结构上等同的方向只限于晶体对称性所决定的某些特定方向。所以一般而言,物理性质是各向异性的;晶体是各向异性的,非晶体是各向同性的,在渲染中使用各向异性时,我们主要指光学各向异性;

二、渲染中材质的各项异性

各项异性表面从表面上细致的纹理、槽或丝缕来获得它特有的外观,比如拉丝金属、CD的闪光面。当使用普通的材质进行光照时,计算仅考虑表面的法线向量、到光源的向量、及到相机的向量。但是对于各向异性表面,没有真正可以使用的连续的法线向量,因为每个丝缕或槽都有各种不同的法线方向,法线方向和槽的方向垂直。

其实在渲染中来实现各向异性光照时,并不是让每一个顶点在不同的方向都拥有不同的法线信息,它的计算是基于片元着色器的;如果是各项同性,我们只需要通过插值得到各个片元的法线信息即可,而对于各向异性来说,我们需要在片远着色器中根据法线扰动规则重新计算法线,这样,虽然看起来是一个平面,但它上面的像素却会因为法线扰动而形成一些纹理、凹槽的效果,从而展示出更多的细节表现,而且,法线的扰动通常是有规律的,所以在不同的方向上,表现出的效果可能会不一样,从而表现出所谓的光学各向异性;

这个法线扰动规则可以是一个公式,也可以是一张纹理;

各向异性的头发渲染:https://chengkehan.github.io/Anisotropic.html,该文章对各向异性的阐述最为清晰;

三、各项异性的实际使用

各向异性照明:http://www.bluevoid.com/opengl/sig00/advanced00/notes/node159.html

Unreal ngine 各向异性光照:https://docs.unrealengine.com/udk/Three/AnisotropicLightingCH.html

毛发及眼球的渲染技术:https://blog.uwa4d.com/archives/1898.html

各向异性拉丝金属:https://docs.arnoldrenderer.com/pages/viewpage.action?pageId=118227110

版权声明:本文为CSDN博主「莫之」的原创文章,
遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36383623/java/article/details/105141773

最新文章