Unity海面效果——6、反射和高光

Unity引擎制作海面效果


??大家好,我是阿趙。
??上一篇的結束時,海面效果已經做成這樣了:
在這里插入圖片描述

??這個Shader的復雜程度已經比較高了:
在這里插入圖片描述

??不過還有一些美中不足的地方。
1、 海平面沒有反射到天空球
2、 在近岸邊看得到水底的部分,水底的砂石沒有變化,按道理應該是有水的折射,導致畫面會出現扭曲才對。
??我這個例子,其實是沒有做這兩點的。不過也可以分享一下思路。

一、 反射

??反射的做法有多種。
??如果是要實時真實的反射,可以參考Unity很早之前的水的例子,那個類似于鏡面反射的效果,其實是在正常攝像機上增加了一個相對計算出位置的攝像機,拍攝出反射應該出現的畫面,然后再通過RenderTexture賦予給材質球。由于是真的有個攝像機在拍攝,所以算是真正的實時反射,假如有個什么物體在水面上經過,也會倒影在水面上。
??但這樣做等于是把大部分的物體都渲染兩次,性能不是特別的好。所以如果不是想產生真實的倒影,只是想把天空的氛圍倒影在水面上,其實就比較簡單了,做一個Matcap的假反射,然后通過乘以一個強度,再疊加在漫反射顏色上面就可以了。
二、 折射
??如果需要折射,一般的做法是通過GrabTexture功能,抓取一張屏幕幀畫面,然后對其進行扭曲。ASE也自帶了這個節點。
在這里插入圖片描述

??需要注意的地方有幾點:
1、 如果想完全用扭曲代替后面的畫面,那么就不能用透明度混合,而要當他不透明物體渲染。不然會出現扭曲的畫面和正常的畫面同時出現。
2、 注意性能
??GrabTexture是抓取當前幀的畫面,性能其實不是很好的,如果不勾選CustomGrabPass,那么它就可能會抓取多次,性能就更不好了。
在這里插入圖片描述

??所以我們一定要勾選CustomGrabPass,這樣它會每幀只抓取一次,然后賦予給這張指定名字的貼圖,這樣性能稍微會好一些。
3、 UV
??所謂的對這張GrabTexture做扭曲,其實就是修改它的UV坐標而已。
在這里插入圖片描述

??獲取當前的UV坐標,可以用GrabScreenPosition節點來做。然后通過各種手段,比如疊加噪聲圖、法線圖來小范圍改變UV坐標。等

??關于這個反射和折射的問題,由于這個海面的例子沒做,所以我之后再找另外的例子來說明吧。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42616.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42616.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42616.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JVM調優:深入理解與實戰指南

引言 Java虛擬機(JVM)作為Java應用程序的運行環境,其性能直接影響到應用程序的響應速度、吞吐量和穩定性。JVM調優是Java開發者必須掌握的一項關鍵技能,它能夠幫助我們更好地利用系統資源,提升應用程序的性能。本文將…

一些關于C++的基礎知識

引言&#xff1a;C兼容C的大部分內容&#xff0c;但其中仍有許多小細節的東西需要大家注意 一.C的第一個程序 #include <iostream> using namespace std;int main() {cout << "hello world!" << endl;return 0; } 第一次看這個是否感覺一頭霧水…

數據挖掘——matplotlib

matplotlib概述 Mat指的是Matlab&#xff0c;plot指的是畫圖&#xff0c;lib即library&#xff0c;顧名思義&#xff0c;matplotlib是python專門用于開發2D圖表的第三方庫&#xff0c;使用之前需要下載該庫&#xff0c;使用pip命令即可下載。 pip install matplotlib1、matpl…

elasticsearch SQL:在Elasticsearch中啟用和使用SQL功能

?博主首頁 &#xff1a; 「碼到三十五」 &#xff0c;同名公眾號 :「碼到三十五」&#xff0c;wx號 : 「liwu0213」 ?博主專欄 &#xff1a; <mysql高手> <elasticsearch高手> <源碼解讀> <java核心> <面試攻關> ?博主的話 &#xff1a…

服務注冊Eureka

目錄 一、背景 1、概念 2、CAP 理論 3、常見的注冊中心 二、Eureka 三、搭建 Eureka Server 1、搭建注冊中心 四、服務注冊 五、服務發現 六、Eureka 和 Zooper 的區別 一、背景 1、概念 遠程調用就類似于一種通信 例如&#xff1a;當游客與景區之間進行通信&…

代碼隨想錄算法訓練營第六十三天 | prim算法、kruskal算法、復習

53. 尋寶 — prim算法 題目鏈接&#xff1a;https://kamacoder.com/problempage.php?pid1053 文檔講解&#xff1a;https://programmercarl.com/kamacoder/0053.%E5%AF%BB%E5%AE%9D-prim.html 思路 本題是最小生成樹的模板題&#xff0c;最小生成樹可以使用 prim算法&#xf…

bash shell 重定向輸入和輸出

shell 提供的重定向操作符 操作符作用>將命令的輸出發到一個文件中如果文件存在&#xff0c;則新的文件數據會覆蓋已經存在的文件>>將命令的輸出追加到一有文件如果文件不存在&#xff0c;則創建新的文件<將文件內容重定向到命令<<內聯輸入重定向(inline in…

Xubuntu24.04之設置高性能模式兩種方式(二百六十一)

簡介: CSDN博客專家,專注Android/Linux系統,分享多mic語音方案、音視頻、編解碼等技術,與大家一起成長! 優質專欄:Audio工程師進階系列【原創干貨持續更新中……】?? 優質專欄:多媒體系統工程師系列【原創干貨持續更新中……】?? 優質視頻課程:AAOS車載系統+AOSP…

蒼穹外賣--新增員工

代碼開發 package com.sky.controller.admin;import com.sky.constant.JwtClaimsConstant; import com.sky.dto.EmployeeDTO; import com.sky.dto.EmployeeLoginDTO; import com.sky.entity.Employee; import com.sky.properties.JwtProperties; import com.sky.result.Result…

Springboot各個版本維護時間

Springboot各個版本維護時間

MQTT教程--服務器使用EMQX和客戶端使用MQTTX

什么是MQTT MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一種輕量級、基于發布-訂閱模式的消息傳輸協議&#xff0c;適用于資源受限的設備和低帶寬、高延遲或不穩定的網絡環境。它在物聯網應用中廣受歡迎&#xff0c;能夠實現傳感器、執行器和其它設備…

【Linux】shell基礎知識點(updating)

1.輸出重定向2.多命令批量執行&#xff08;; 、&&、 ||&#xff09;3.腳本不同方式執行的區別&#xff08;source、bash、sh、./&#xff09;4.理解環境變量5.export6.引號的使用last.命令相關 1.輸出重定向 3種數據流&#xff1a; stdin&#xff1a;標準輸入&#xf…

jmeter持續學習之----性能初級一些概念和指標

服務端為什么要進行性能測試 大量用戶下&#xff0c;系統能否穩定運行&#xff08;比較多&#xff09; 用于硬件服務器的選型 用于軟件技術的選型 性能測試關注的點 用戶角度:響應時間 資源占用:并發用戶數,TPS,資源占用(cpu,內存,JVM) 性能測試策略 基準測試:單用戶測試,對…

去了字節跳動,才知道年薪40W的測試有這么多?

最近脈脈職言區有一條討論火了&#xff1a; 哪家互聯網公司薪資最‘厲害’&#xff1f; 下面的評論多為字節跳動&#xff0c;還炸出了很多年薪40W的測試工程師 我只想問一句&#xff0c;現在的測試都這么有錢了嗎&#xff1f; 前幾天還有朋友說&#xff0c;從騰訊跳槽去了字節&…

8.8.8.8 IP地址的作用

在跟著韋東山老師的學習手冊中看見了關于8.8.8.8 IP用于檢測網絡狀態&#xff0c;然后搜索了關于此IP的相關作用如下&#xff1a; 公共DNS服務&#xff1a;8.8.8.8是Google提供的兩個公共DNS服務器地址之一&#xff08;另一個是8.8.4.4&#xff09;。DNS&#xff08;域名系統&a…

代碼隨想錄訓練營第三十天 452用最少數量的箭引爆氣球 435無重疊區間 763劃分字母區間

第一題&#xff1a; 原題鏈接&#xff1a;452. 用最少數量的箭引爆氣球 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;先根據每個元素的第一個值進行排序&#xff0c;然后從第一個元素開始遍歷&#xff0c;這里要注意我們初始化結果值的時候直接初始化為1&#x…

強化基石,引領未來:完善配套設施與提升服務水平

完善配套設施與提升服務水平對于產業園運營具有重要意義。它們不僅能夠提升園區的硬件環境和整體形象&#xff0c;增強園區的吸引力和競爭力&#xff1b;還能夠優化營商環境&#xff0c;降低企業運營成本&#xff0c;提高運營效率&#xff1b;同時推動園區創新&#xff0c;形成…

基于Java技術的網吧管理系統

你好呀&#xff0c;我是計算機學姐碼農小野&#xff01;如果有相關需求&#xff0c;可以私信聯系我。 開發語言&#xff1a;Java 數據庫&#xff1a;MySQL 技術&#xff1a;Java技術&#xff0c;B/S結構 工具&#xff1a;MyEclipse&#xff0c;MySQL 系統展示 首頁 個人中…

PDF轉Markdown的開源工具解析

Marker&#xff1a;PDF轉Markdown的開源工具解析 Marker是一個由VikParuchuri在GitHub上開發的開源項目&#xff0c;其核心功能是將PDF文件轉換為Markdown格式。以下是對Marker項目的詳細解析&#xff1a; 項目概述&#xff1a; 項目鏈接&#xff1a;https://github.com/VikP…

【技術追蹤】DiffuMatting:使用摳圖級別注釋合成任意對象(ECCV-2024)

萬物生&#xff1a;Diffusion與綠幕摳圖&#xff0c;影視領域的福音~ 論文&#xff1a;DiffuMatting: Synthesizing Arbitrary Objects with Matting-level Annotation 代碼&#xff1a;https://github.com/HUuxiaobin/DiffuMatting &#xff08;即將開源&#xff09; 0、摘要 …