UE5中實現后處理深度描邊

后處理深度描邊可以通過取得邊緣深度變化大的區域進行描邊,一方面可以用來做角色的等距內描邊,避免了菲尼爾邊緣光不整齊的問題,另一方面可以結合場景掃描等特效使用,達到更豐富的效果:
在這里插入圖片描述
后來解決了開啟TAA十字線和鋸齒問題,若遇到這2個問題請至文章底部查看。
參考:https://www.bilibili.com/video/BV11e4y1n7dD


1.創建材質函數

我們通過一種卷積算子計算邊緣,先創建該算子的材質函數
在這里插入圖片描述

2.編寫材質函數藍圖

該材質藍圖傳入偏移值,輸出5個UV采樣坐標信息。
在這里插入圖片描述

3.編寫核心后處理材質

新建材質球PPS,設置材質球參數類型為Post Process(后處理材質球)。
在這里插入圖片描述
連接材質球節點,計算描邊結果并與場景顏色合并。
在這里插入圖片描述
將后處理材質掛載于Volume上:
在這里插入圖片描述

因為直接使用的場景深度,這時候整個場景都被深度描邊了:
在這里插入圖片描述

4.使用自定義深度優化

這不是想要的效果,我們將場景深度改為自定義深度。
框選材質球PPS內的所有SceneTexture:SceneDepth節點,進行修改。
在這里插入圖片描述
多選所有需要深度描邊的物體,勾選Render CustomDepth Pass:
在這里插入圖片描述
最終完成描邊效果。


補充,開啟TAA時會有十字線的問題,可縮小該系數解決:
在這里插入圖片描述

關于鋸齒問題,可以將后處理的執行位置移動至ToneMapping之前,讓引擎自帶抗鋸齒來進行處理:
在這里插入圖片描述

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

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

相關文章

XXL-Job的基本使用

一、市面上常見的任務調度產品 針對分布式任務調度的需求,市場上出現了很多的產品: 其中XXL-job 是我們經常使用的任務調度平臺,XXL這三個英文字母.是以作者名許雪里命名的。 可以前往 Gitee 地址進行下載使用 https://gitee.com/xuxueli0323/xxl-job.git二、XXL-J…

使用`paddle.nn.Layer`自定義網絡教程

文章目錄 使用paddle.nn.Layer自定義網絡教程1. 概念介紹2. 數據處理3. 搭建一個完整的深度學習網絡4. 使用paddle.nn.Layer構建深度學習網絡5. 利用paddle.nn.Layer進行子層的訪問6. 修改paddle.nn.Layer層的成員變量7. 存儲模型的參數8. 總結 使用paddle.nn.Layer自定義網絡教…

LockBit病毒入侵揭秘:如何防范與應對

在數字時代,隨著科技的飛速發展,網絡安全問題愈發凸顯。惡意軟件和勒索軟件等網絡威脅正不斷演變,其中一款備受關注的勒索軟件就是LockBit。本文將深入介紹LockBit的特征、攻擊手段、演進歷程以及對網絡安全的威脅。 01 主要特征 LockBit是…

算法知識(java)隨筆

1: 保留指定的小數為 printf("%.2f\n", ret) 和c語言類似 // 怎么保留小數 System.out.printf("%.2f\n", 1.0/3); 2: 在寫小數二分的時候 加入讓結果保留6位數 那么 while(r - l > 1e-8) 3: java Map里面之前寫的代碼: /*** 也就是 統計x在map里面的…

第二十一周周報

文獻閱讀:Recent Advances of Monocular 2D and 3D Human Pose Estimation: A Deep Learning Perspective 摘要:在本文中,作者提供了一個全面的 2d到3d視角來解決單目人體姿態估計的問題。首先,全面總結了人體的二維和三維表征。…

騰訊云Windows輕量應用服務器的默認密碼是什么,以及如何重置?

首先,騰訊云輕量應用服務器的默認用戶名是沒有設置密碼的,首次登錄時需要重置密碼。這意味著如果你的輕量應用服務器是騰訊云的,那么默認密碼是不存在的,需要通過重置密碼來獲得一個新的密碼。 關于如何重置密碼,有幾…

chatgpt新版本api的調用

chatgpt新版本api的調用 原始版本調用api方式:新版調用chatgpt-api的方式: 原始版本調用api方式: import openaiopenai.api_key "{上面復制的key}"completion openai.ChatCompletion.create(model"gpt-3.5-turbo",mes…

Spring El表達式官方文檔學習

文章目錄 推薦一、概述1、什么是SpEL2、SpEL能做什么 二、SpEL表達式使用1、文字表達式2、屬性, 數組, List, Map,和 索引(1)屬性操作(2)數組和List(3)Map 3、內嵌List4、內嵌Map5、構建數組6、調用類的方法…

Windows的Linux化持續推進中

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎?訂閱我們的簡報,深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同,從行業內部的深度分析和實用指南中受益。不要錯過這個機會,成為AI領…

Java基礎 - 6 - 面向對象(二)

Java基礎 - 6 - 面向對象(一)-CSDN博客 二. 面向對象高級 2.1 static static叫做靜態,可以修飾成員變量、成員方法 2.1.1 static修飾成員變量 成員變量按照有無static修飾,分為兩種:類變量、實例變量(對象…

JavaScript 語句語法的教程

JavaScript 是一種廣泛應用于網頁開發的腳本語言,熟練掌握 JavaScript 的語法是成為一名優秀的前端開發工程師的必備技能之一。本教程將詳細介紹 JavaScript 中的語句語法,幫助初學者快速入門并加深對 JavaScript 語法的理解。 一、注釋 在 JavaScript…

常見的爬蟲逆向面試題

文章轉載于:https://mp.weixin.qq.com/s/dXRo0D_Xx7E_h85XbnwPVQ 有興趣去源站瀏覽學習 主要自己看著方便些 1.HTTS三次握手 目前使用的 HTTP/HTTPS 協議是基于 TCP 協議之上的,因此也需要三次握手。在 TCP 三次握手建立鏈接之后,才會進行 …

故障診斷 | 一文解決,XGBoost極限梯度提升樹的故障診斷(Matlab)

效果一覽 文章概述 故障診斷 | 一文解決,XGBoost極限梯度提升樹的故障診斷(Matlab) 模型描述 XGBoost通過集成多個決策樹來建立一個強大的預測模型。它采用了一種特殊的梯度提升技術,稱為極限梯度提升(Extreme Gradient Boosting),以提高模型的性能和魯棒性。 極限梯度…

【大數據Hive】hive 多字段分隔符使用詳解

目錄 一、前言 二、hive默認分隔符規則以及限制 2.1 正常示例:單字節分隔符數據加載示例 2.2 特殊格式的文本數據,分隔符為特殊字符 2.2.1 文本數據的字段中包含了分隔符 三、突破默認限制規則約束 3.1 數據加載不匹配情況 1 3.2 數據加載不匹配…

python paramiko 網絡系統運維

概述 背景:網絡系統運維與建設:工作中發現客戶使用python腳本批量操作網絡設備導出多臺網絡設備的配置定期執行相關的巡檢工作 修改配置 # -*- coding:utf8 -*- """ # editor: hjjdreamer # create-time: 2024/3/3-23:31 # Python-Scri…

Java項目推薦|幾個B站上的從零搭建項目

分享幾個B站上搜集到的技術比較全,講解也詳細的Java后端開發項目 目錄 谷粒商城 2020-03-31 iHRM 人力資源管理系統 2021-04-16 瑞吉外賣 2022-04-12 學成在線 2023-01-13 尚上優選 2023-06-06 黑馬頭條 2023-06-13 蒼穹外賣 2023-07-05 谷粒商城 2020-03-3…

命名實體識別NER

一、什么是命名實體識別: 命名實體:通常我們將人名、地名、機構名等專有名詞統稱命名實體,如:周杰倫,黑山縣,孔子學院,24方鋼直機 顧名思議,命名實體識別(簡稱NER&#x…

【常用的 Git 命令及簡要示例說明】

常用的 Git 命令及簡要示例說明,以供參考: 初始化一個新的代碼倉庫: git init克隆一個遠程倉庫到本地: git clone https://github.com/user/repo.git添加當前所有變更到暫存區: git add .提交暫存區的變更到本地倉庫&a…

STM32FreeRTOS任務通知(STM32cube高效開發)

文章目錄 一、任務通知(一)任務通知概述1、任務通知可模擬隊列和信號量2、任務通知優勢和局限性 (二) 任務通知函數1、xTaskNotify()發送通知值不返回先前通知值的函數2、xTaskNotifyFromISR()發送通知函數ISR版本3、x…

Java面試題總結200道(二)

26、簡述Spring中Bean的生命周期? 在原生的java環境中,一個新的對象的產生是我們用new()的方式產生出來的。在Spring的IOC容器中,將這一部分的工作幫我們完成了(Bean對象的管理)。既然是對象,就存在生命周期,也就是作用…