Subsurface Scattering(SSS次表麵散射)介紹
維基百科: Subsurface Scattering,簡稱SSS,中文翻譯為次表麵散射。在真實世界中許多物體是有點半透明的,比如皮膚、玉、蠟、大理石、牛奶等。這些半透明的材質受到數個光源的透射,物體本身就會受到材質的厚度影響而顯示出不同的透光性,光線在這些透射部分也可以互相混合、幹涉。說得簡單一些就是:光射進表麵,在材質裏散射,然後從與射入點不同的地方射出表麵。
SSS使照明的整體效果變得柔和,一個區域的光線會滲透到表麵的周圍區域,而小的表麵細節變得看不清了。光線穿入物體越深,衰減和散射就越嚴重。我們拿皮膚為例,在照亮區到陰影區的銜接處,散射也往往引起微弱的傾向紅色的顏色偏移,這是由於光線照亮表皮並進入皮膚,接著被皮下血管和組織散射和吸收,然後從陰影部分離開。
散射效果在皮膚薄的部位更加明顯,比如鼻孔和耳朵的周圍。如下圖所示:
一、散射基本原理
一個光源發射出來的光線碰到物體,一部分光被反射,還有一部分光會穿透物體。
穿透物體的光線,由於物理原因他會在物體內部不停的反彈而改變方向。而這個過程中光線也會有衰減,直到消失。
光的衰減程度與物體內部的透光率有很大的關係。
每一束光線會以表麵的進入點(P),而形成一個衰減的半徑範圍(D)。
在三維軟件裏麵模擬的時候,光線進入物體的點的多少會對模擬SSS效果的精度有直接影響。
二、使用Houdini Point Clouds製作SSS效果
我們在Houdini裏麵製作次表麵散射效果其實隻需要兩步就可以了。
第一步
進入物體裏麵,給你要做SSS效果的物體添加一個sss_pcloud節點,這個節點可以根據物體的表麵生成Point Clouds點。調整點的數目並選擇存儲的目錄後就可以點渲染輸出了。
輸出的時候記得物體的法線要正確。當然也可以調整法線來輸出Point Clouds。一次正常法線的,然後利用revese節點翻轉法線後再輸出一遍,翻轉法線後的Point Clouds可以模擬暗麵的透光效果。
第二步
在shop中創建一個Material Shader材質。進入這個材質並找sssMultiple節點。用multisss節點的Color連接surface_outputs的Surface。
在multiSSS節點的pointcloud File處選擇我們輸出的Point Clouds文件。並把材質添賦予物體。就可以測試渲染了。
•Subserface Intensity:表麵強度
•Subserface Color:表麵顏色
•Evaluate RGB Separately:評估RGB,打開後RGB每個波長的光將被單獨計算。
•Pointcloud File:從這裏選擇Point Clouds文件
•Pointcloud Sample:Point Clouds采樣
•Scattering Distance:散射距離,主要靠這個參數來調節散射距離並配合表麵強度來調節
•Bounce Attenuation:反彈衰減
下麵這個材質,連接方法非常簡單。調整兩個法線不同的SSS Multiple材質來add疊加出SSS效果。然後用mix混合一點oglass的反射。加上點高光就歐了。
這是我用SSS做的一個蝸牛的材質
蝸牛材質的連接:
蝸牛殼子的連接: