主頁 >  其他 > UE5 材質 雨滴shader

UE5 材質 雨滴shader

2023-05-17 07:34:52 其他

潮濕效果

物體表面是如何變濕的?

  • 物體表面吸水使顏色變深
  • 潮濕的顏色會變得暗淡且飽和

實作

  • 增加飽和度且變暗

    image-20230513173223191

潮濕的物體表面的特點

  • 當水作用在材質表面,材質表面的specualr會略微變弱且粗糙度會大幅降低
  • 對于積水的表面,我們設定它的roughness = 0.07, specualr = 0.3,一個value = https://www.cnblogs.com/chenglixue/p/1用于控制潮濕程度,最后進行lerp即可

實作

  • 潮濕程度為1的效果
    image-20230513181608801

  • 潮濕程度為0的效果
    image-20230513181639602

  • 加入多孔性

    多孔性也就是吸水性,多孔性越高,顏色越暗
    image-20230516101041004

表面水珠(Rain Drop)效果

本節展示如何實作雨滴效果

雨滴紋理

為了實作表面水珠,我們需要一個雨滴紋理,它的RG通道表示雨滴法線;B通道表示時間偏移mask(使得雨滴在不同時間出現);alpha通道表示靜止和動態的雨滴

  • 雨滴法線
    image-20230514131900655

  • 時間偏移
    image-20230514131942747

  • 動靜雨滴

    黑點表示靜止的雨滴,白色表示動態雨滴
    image-20230514132100620

實作

處理normal

因為在紋理圖中normal的范圍為[0,1],而歸一化normal范圍為[-1,1],因此我們需要進行一個轉化
image-20230514133359106

處理時間偏移

這里重點在于Frac(),因為G通道值大多各不相同,這樣減去時間的增量并取小數部分限制在[0,1]即可實作如下的閃爍效果
image-20230514140939680
image

動態雨滴

只需將時間offset用于A通道即可實作動態雨滴效果

  • 無normal
    "Multiply" "subtract" 是因為這里想提取time offset的白色雨滴(大雨滴)
    image-20230516105019435image-20230514142927044
    image

  • 有Normal

    image-20230514143444298
    image

靜態雨滴

  • 因為在A通道中,黑色是靜態雨滴,白色是動態雨滴,在處理動態效果時只處理了白色的值,那么在處理靜態效果時進行一個反轉即可

    注意,這里使用power()是因為我們只想要得到白色和灰色的效果并不想要灰色,但此時范圍是[-1,1],因此需要控制一下范圍
    image-20230514145447514
    image

控制雨滴效果方向

  • 在現實中,雨水來自天空,肯定只有上面才有雨滴效果,整個物體都有雨滴效果是不科學的,因此我們需要控制雨滴效果的方向——normal方向

    image-20230514150612047
    image

控制水滴的粗糙度

  • 目前已知表面偏向0,雨滴偏向1,而我們想要的效果是雨滴光滑表面粗糙,因此可以將之前得到的值進行反轉然后作用域roughness即可

    image-20230514151942925
    image

流淌雨滴(Rain Drip)效果

流淌雨滴紋理

和雨滴效果相同,流淌雨滴紋理由法線貼圖(RG)、mask(B)、time offset(A)組成

映射到世界空間

  • 為了應對物體從區域空間變化到世界空間的狀況,需要將紋理映射到世界空間,這樣無論物體進行任何矩陣運算,雨滴的流淌總是正確的

  • 使用世界空間的位置作為采樣的紋理坐標,只需提取RB

    這里的Multiply()是為了正確的比例,乘以的value越小,采樣得到的影像越大;value越大,采樣得到的影像越小

    為什么還有負號呢?因為這樣可以對采樣方向取負
    image-20230514204942848

  • 采樣側面

    這里改變正負號是為了讓物體的側面和正面不再相同
    image-20230514205004241

  • 混合正側面

    采樣兩次紋理進行合并是很簡單的,但只采樣一次又該如何實作呢?

    在這里采用世界空間的法線作為物體面的判斷基準
    image-20230514214819917
    image-20230514214841026
    image-20230514222713735

制作影片的mask紋理

它的rgb通道都是相同的,a通道沒有使用

image-20230514223342299

實作流淌雨滴

  • 將mask紋理映射至世界空間

    下圖中,可以將白色部分視為雨滴,基于這個實作影片即可
    image-20230514223912200

  • 初步雨滴影片

    image-20230514224452782
    image

  • 控制雨滴速度

    雨滴在不同物體上的滑落速度是不一樣的,因此我們還需要讓這些雨滴的速度有所差異

    image-20230514232345853
    image

  • 雨滴法線
    image
    image

  • 將雨滴效果控制在物體側面

    3.5用于控制正方向的白色范圍,-1,5用于控制負方向的白色范圍
    image-20230514234602091
    image

雨滴漣漪(Rain Ripple)效果

本節將展示如何實作雨滴打到水面產生的波紋效果

紋理

  • 影片mask紋理(漸變紋理)

    用該紋理可以實作圓從無到有,從小到大,最后漸漸消散
    image-20230515140948573

  • 法線紋理
    該紋理的R通道是影片mask紋理,GB通道是法線資訊

    image-20230515150052144
    image-20230515150815395
    image-20230515150823539

  • 多個漣漪紋理

    alpha通道包含time offset
    image-20230515153639528
    image-20230515154254661

波紋效果

  • 實作紋理影片都需要Time節點,很容易實作以下內容
    image-20230515142542777
    image

  • 控制波紋邊緣的銳度(讓波紋邊緣不再是漸變色)
    image-20230515143232071
    image

  • 初步實作波紋

    因為水波紋屬于正弦函式,因此在這里我們使用一個sin,并讓他在一個周期內產生五個波紋(因為UE5的sin函式默認周期為1)
    image-20230515143607191
    image

  • 標準的sin函式

    UE5中的sin函式并不是標準的sin函式(一個周期為2Π),它的默認周期為1,因此我們需要將其改為6.283185
    image-20230515144750434

  • 放大淡出效果

    目前我們實作的效果是到最大然后消失,但我們希望的是放大淡出,目前的效果是因為能量是從0到1,而放大淡出的效果應該是從1到0

    image-20230515145646448
    image

法線

image-20230515153015333

image

多個漣漪

  • 為每個漣漪賦予單獨的Time
    image-20230515155215443
    image

多個漣漪相互疊加

  • 目前的效果只是在固定位置不同時間段產生波紋,但沒有展現波紋的疊加效果

  • 首先,我們需要對"1-x"進行修改,添加力的因素

    • "Multiply 0.8"是因為需要考慮力的因素,讓漣漪的初始能量不為1
    • "Add 0.2"是因為需要考慮雨滴重量不能為0的情況

    image-20230515174236068

  • 漣漪的疊加

    總體思路是使用四個不同的漣漪效果——不同的時間,不同的漣漪強度,對采樣結果進行疊加

    • 求取四個不同的時間

      image-20230515171032517

    • 求取四個不同的uv

      image-20230515172511389

    • 求取四個不同的雨滴重量
      image-20230515175222642

    • normal混合
      image-20230515181855802

最終效果

image

水坑(Rain Puddle)效果

紋理

  • 扭曲紋理,
    對于扭曲紋理,我們將該紋理設定為"Linear Color"且無"sRGB",因為它只包含灰度值,第二張中,我們把該圖的黑色部分視為水坑,部分有水坑部分沒有符合現實常理(后面處理會進行"1-x"運算,將白色部分看成水坑)

    image-20230515204222476
    image-20230515205028508

映射至世界空間

  • 初步映射
    image-20230515205000018

  • 控制水坑大小

    這是一個灰度圖,通過做減法即可放大水坑,但這里采用一種更加靈活的方式——lerp
    image-20230515212321145

  • 控制水坑位置

    讓上圖可以看到水坑的紋理延申到了其他面,但正常來說應該只有上面才會出現水坑,因此需要想辦法讓水坑只出現在物體上面
    image-20230515214239907

  • 確保水坑只有白色
    image-20230515214428743
    從上圖可以得知,有些部分是灰色的,因此我們需要再"Multiply"確保只存在白色和黑色
    image-20230515214816344

normal

  • 水坑的漣漪不僅僅在水滴落下時會產生,當被風吹時也會產生,水滴落下的效果在之前已經實作了,對于風吹的漣漪我們采用UE5提供的紋理
    image-20230515221843332
    image

  • image

    image-20230515223411253
    image

  • 控制漣漪位置
    本小節的實作是水坑,那肯定是在水坑處產生漣漪啊!
    image
    image

融合所有效果

  • 將以上所有效果融合即可實作一個完整的雨天shader
  • 你可能不是很清楚,這里的mask究竟代表什么含義,仔細觀察下圖,不難發現mask其實就是我們所實作的效果
    image-20230516113552021
    image-20230516113628772
    image-20230516113653809

normal 混合

混合表面水珠normal 和流淌雨滴normal

image-20230516164640990

  • 采用Rain Drip作為alpha的原因:假定我們只考慮alpha為1/0的情況,若alpha為1,我們希望只有RainDrip效果沒有RainDrop,以Lerp效果來說確實如此;若alpha為0,我們希望只有RainDrop效果沒有RainDrop,從Lerp效果來說確實如此,但若以RainDrop作為alpha則不符合我們的條件

混合外部normal

  • 因為目前這兩個normal只是內部實作的material function的normal,還需要與欲使用的材質的normal進行blend
    image-20230516200218640

水坑

image-20230516201231935

濕度控制

  • max():因為這三個效果是各自獨立的材質函式,如果分開運算會使得這三效果不一致,我們需要求得以這三之一的max以達到最好且一致的效果

image-20230516201726278

吸水性

image-20230516204848047

reference

Rustling Leaves Shader - UE4 Materials 101 - Episode 12 - YouTube

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/552639.html

標籤:其他

上一篇:統計學習方法筆記-感知機學習方法

下一篇:返回列表

標籤雲
其他(159157) Python(38143) JavaScript(25431) Java(18048) C(15227) 區塊鏈(8267) C#(7972) AI(7469) 爪哇(7425) MySQL(7191) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5340) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4572) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2433) ASP.NET(2403) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1975) 功能(1967) Web開發(1951) HtmlCss(1937) python-3.x(1918) C++(1917) 弹簧靴(1913) xml(1889) PostgreSQL(1878) .NETCore(1861) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • UE5 材質 雨滴shader

    潮濕效果 物體表面是如何變濕的? 物體表面吸水使顏色變深 潮濕的顏色會變得暗淡且飽和 實作 增加飽和度且變暗 潮濕的物體表面的特點 當水作用在材質表面,材質表面的==specualr==會略微變弱且==粗糙度==會大幅降低 對于積水的表面,我們設定它的roughness = 0.07, specua ......

    uj5u.com 2023-05-17 07:34:52 more
  • 統計學習方法筆記-感知機學習方法

    感知機(Perceptron) 1.感知機模型 1.1感知機定義 ? 輸入空間$ \mathcal{X} \subseteq \mathbb{R}^n$ ,輸出空間$\mathcal{Y}$={+1, -1} ; ? 輸入$x \in \mathcal{X}$表示的實體的特征向量,對應于輸入空間的點 ......

    uj5u.com 2023-05-16 20:44:39 more
  • 云端煉丹,算力白嫖,基于云端GPU(Colab)使用So-vits庫制作AI特朗

    人工智能AI技術早已深入到人們生活的每一個角落,君不見AI孫燕姿的歌聲此起彼伏,不絕于耳,但并不是每個人都擁有一塊N卡,沒有GPU的日子總是不好過的,但是沒關系,山人有妙計,本次我們基于Google的Colab免費云端服務器來搭建深度學習環境,制作AI特朗普,讓他高唱《國際歌》。 Colab(全名C ......

    uj5u.com 2023-05-16 20:36:23 more
  • 程式員不得不了解的計算機進制轉換

    程式員不得不了解的計算機進制轉換 最近在備考軟考的軟體設計師考試,學到了關于計算機的資料表示,由于我是半路出家學的Java,導致計算機基礎知識很差,在這里記錄一下學習感受 為啥要用二進制 早期計算機的存盤介質是晶體管,晶體管根據電壓不同,只能表示2種狀態,也就是0和1 計算機使用二進制運算更加方便 ......

    uj5u.com 2023-05-16 20:35:46 more
  • Windows本地認證之NTML哈希和LM哈希

    Windows本地認證之NTML哈希和LM哈希 一、本地認證的流程 Windows的登陸密碼是儲存在系統本地的SAM檔案中的,在登陸Windows的時候,系統會將用戶輸入的密碼與 SAM檔案中的密碼進行對比,如果相同,則認證成功。 SAM檔案是位于C:\Windows\System32\config ......

    uj5u.com 2023-05-16 20:35:29 more
  • 分享一個國內可用的ChatGPT網站,免費無限制,支持AI繪畫 - AI 百曉

    背景 ChatGPT作為一種基于人工智能技術的自然語言處理工具,近期的熱度直接沸騰🌋。 作為一個AI愛好者,翻遍了各大基于ChatGPT的網站,終于找到一個免費!免登陸!手機電腦通用!國內可直接對話的ChatGPT,也有各種提供作業效率的工具供大家使用。 產品名稱 百曉生 網站地址 https:/ ......

    uj5u.com 2023-05-16 20:34:42 more
  • 淺析AIGC for MMKG

    摘要:AIGC和多模態知識圖譜(MMKG)中的知識獲取又是怎么實作的呢?他們之間有什么關聯呢? 本文分享自華為云社區《GPT-4發布,AIGC時代的多模態還能走多遠?系列之四 AIGC for MMKG》,作者:碼上開花_Lancer。 與傳統知識圖譜不同,MMKG以多模態資料作為源頭,從多方面描述 ......

    uj5u.com 2023-05-16 20:33:49 more
  • 統計學習方法筆記-感知機學習方法

    感知機(Perceptron) 1.感知機模型 1.1感知機定義 ? 輸入空間$ \mathcal{X} \subseteq \mathbb{R}^n$ ,輸出空間$\mathcal{Y}$={+1, -1} ; ? 輸入$x \in \mathcal{X}$表示的實體的特征向量,對應于輸入空間的點 ......

    uj5u.com 2023-05-16 20:20:32 more
  • 云端煉丹,算力白嫖,基于云端GPU(Colab)使用So-vits庫制作AI特朗

    人工智能AI技術早已深入到人們生活的每一個角落,君不見AI孫燕姿的歌聲此起彼伏,不絕于耳,但并不是每個人都擁有一塊N卡,沒有GPU的日子總是不好過的,但是沒關系,山人有妙計,本次我們基于Google的Colab免費云端服務器來搭建深度學習環境,制作AI特朗普,讓他高唱《國際歌》。 Colab(全名C ......

    uj5u.com 2023-05-16 20:08:59 more
  • 資料智能加持下,中小微企業告別“融資難”

    摘要:資料智能是一個跨學科的研究領域,它結合大規模資料處理、資料挖掘、機器學習、可視化等技術,為基于資料制定決策或執行任務提供有效智能支持。面對資料智能藍海,開發者該如何發力呢?賽道參與者該如何走向成功呢? 本文分享自華為云社區《讓資料應用更智能!華為云助力開發者重慶譽存打造數字金融綜合解決方案》, ......

    uj5u.com 2023-05-16 20:08:05 more