最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)境映射的評論 (共 條)

分享到微博請遵守國家法律
闽侯县| 阿图什市| 昭苏县| 吉林省| 巴塘县| 馆陶县| 保靖县| 鸡西市| 栾川县| 保山市| 平泉县| 新建县| 南宁市| 武定县| 河北区| 集安市| 萍乡市| 平湖市| 成安县| 永嘉县| 抚州市| 开原市| 新郑市| 河源市| 鲁甸县| 荣昌县| 黔西县| 上虞市| 德安县| 富蕴县| 乳源| 长岛县| 句容市| 丽江市| 东乡县| 招远市| 清涧县| 新兴县| 宜兴市| 磴口县| 阜平县|