无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

22.Shader-CubeMap環(huán)境映射

2023-06-17 21:09 作者:機(jī)智的小草yns  | 我要投稿

目錄

1.生成Cubemap

2.環(huán)境映射

??? 2.1反射

??? 2.2折射

??? 2.3菲涅爾反射


1.生成Cubemap

官方的文檔中的生成CubeMap代碼, Copy就行

https://docs.unity3d.com/cn/2023.1/ScriptReference/Camera.RenderToCubemap.html

生成步驟:

1.在Assets目錄中, 右鍵 Create/Legacy/Cubemap ?

到一張空白CubeMap

2.打開菜單欄GameObject/Render into Cubemap

拖拽填上拍攝位置和CubeMap, 渲染,即可生成

這個(gè)CubeMap在后面的步驟會用到

2.1CubeMap反射

隨視角變換看到不同的圖形

反射方向:Reflect(- 視角方向,法線方向)

使用? texCUBE(_CubeMap,反射方向), 對_CubeMap采樣

與漫反射混合

理解

CubeMap將相機(jī)在球位置上的各個(gè)方向看到結(jié)果都保存起來

texCUBE()函數(shù)可以由方向反推得到顏色

于是, 球的表面頂點(diǎn)的反射結(jié)果為, 視角反射方向, 對應(yīng)在CubeMap上的顏色


核心代碼(Texture_uv.shader上修改)

完整代碼Texture_uv_cubeMap.shader

2.2折射

斯涅爾定律 ?η1sinθ1=η2sinθ2

透射比 η2/η1 ?(出射/入射)

而在Unity中, 使用Refact計(jì)算即可

折射方向 Refact(-viewDir,worldNormalDir,_RefractRatio) ?

核心代碼

使用refract代替reflect, 將反射改為折射

折射

2.3菲涅爾反射

入射角大,反射效果強(qiáng)而清晰,入射角小,反射效果弱而模糊的現(xiàn)象

引用: https://www.cnblogs.com/AEMShana/p/16837367.html

理論

當(dāng)光線照射到物體表面時(shí),一部分反射或者折射,一部分進(jìn)入了物體內(nèi)部。被反射的光和入射光之間存在一定的比率關(guān)系,這個(gè)比率和你觀察物體表面的角度有關(guān)。 ?

主要使用的近似公式有兩種 ?

Schlick菲涅爾反射公式

Fs = F0 + (1-F0)(1-v· n)^5

F0是反射系數(shù)(反射強(qiáng)度),v是視角方向,n是表面法線。 ?

Empricial菲涅爾反射公式

Fe = saturate( bias+scale*(1-v· n)^power )

其中bias,scale,power是控制項(xiàng)。

兩個(gè)公式不需要理解, 是根據(jù)現(xiàn)實(shí)材質(zhì)反射模擬的近似函數(shù), 現(xiàn)實(shí)的各種材質(zhì)的反射規(guī)律又各有不同。?

核心代碼

完整代碼 Texture_cubeMap_schlick.shader

在工程中效果不明顯

左菲涅爾反射, 右普通反射

當(dāng)_ReflectAmount調(diào)為0時(shí),邊緣會有反射

完整代碼: https://github.com/smartgrass/MyCodes/tree/main/ShaderLearning

下一篇: 渲染紋理 和 玻璃效果和GrabPass

22.Shader-CubeMap環(huán)境映射的評論 (共 條)

分享到微博請遵守國家法律
阜南县| 乡城县| 武川县| 阿拉尔市| 墨竹工卡县| 鲁甸县| 六盘水市| 衡南县| 宜丰县| 金山区| 永济市| 大埔区| 蒙山县| 张家港市| 台南县| 易门县| 遂川县| 天津市| 西昌市| 肥西县| 五家渠市| 文水县| 怀集县| 东丽区| 博罗县| 武清区| 杭锦后旗| 新丰县| 宽甸| 常熟市| 迭部县| 新巴尔虎右旗| 桐梓县| 河间市| 湖口县| 绍兴县| 潮安县| 乐安县| 荆门市| 巫山县| 蒙自县|