Unity Universal Render Pipeline/Lit光照材質介紹

文章目錄

  • 前言
  • 參數介紹
    • 1、表面選項
      • 1.1 Worflow Mode工作流模式
      • 1.2 Surface Type 表面類型
      • 1.3 Blending Mode 混合模式
      • 1.4 Preserve Specular 保留鏡面光照(高光)
      • 1.5 Render Face 渲染面
      • 1.6 Alpha Clipping 透明度剪裁
      • 1.7 Receive Shadows 是否接收陰影
    • 2、表面輸入
      • 2.1 BaseMap 基礎貼圖
      • 2.2 Specular Map 高光貼圖
      • 2.3 Smoothness 光滑度
      • 2.4 Normal Map法線貼圖、Height Map高度貼圖、Occlusion Map遮蔽貼圖
      • 2.5 Emission 自發光
      • 2.6 Tiling和Offset
    • 3、Detail Inputs細節輸入
    • 4、高級選項
      • 4.1 Specular Highlights 鏡面高光
      • 4.2 Environment Reflections 環境反射
      • 4.3 Sorting Order 渲染順序
      • 4.4 Enable GPU Instancing
  • 參考
  • 專欄推薦
  • 完結

前言

URP/Lit(Universal Render Pipeline/Lit)是Unity通用渲染管線(URP)中的標準PBR(基于物理的渲染)材質,適用于大多數3D物體渲染。它是URP中最常用且功能最全面的材質類型。
在這里插入圖片描述

參數介紹

1、表面選項

在這里插入圖片描述

1.1 Worflow Mode工作流模式

在這里插入圖片描述

Metallic和Specular,兩個模式都能做出高質量材質,使用任何一種方法,您都可以很好地表示大多數常見的材質類型,因此在大多數情況下,選擇其中一種是個人喜好的問題,以適應您的藝術工作流程。

1.2 Surface Type 表面類型

在這里插入圖片描述

  • Opaque:不透明的
  • ransparent:透明的

現實世界多數物體是不透明的,它們之間會相互遮擋,Opaque不會開啟混合(Blend模式),即使對象有Apha值,也不會產生透明效果.
在這里插入圖片描述

如果使用Transparent,則可以透過透明物體,看到背后的物體,修改Alpha值能明顯改變透明度
在這里插入圖片描述

1.3 Blending Mode 混合模式

最常用的是Alpha,它是最接近真實世界的混合模式
在這里插入圖片描述

  • Alpha 使用材質的 Alpha 值來更改對象的透明度。0 表示完全透明。1 表示完全不透明,但在透明渲染過程中仍然會渲染材質。對于您希望完全可見但隨著時間的推移也會逐漸消失的視覺效果(例如云),這非常有用。
  • Premultiply 對材質應用與 Alpha 類似的效果,但保留反射和高光,即使表面是透明的情況下也是如此。這意味著只有反射光可見。例如,想象一下透明玻璃。
  • Additive 在另一個表面之上給材質添加額外的一層。這對全息圖很有用。
  • Multiply 將材質的顏色與表面的背景顏色相乘。這會產生更暗的效果,就像透過彩色玻璃觀看一樣。

1.4 Preserve Specular 保留鏡面光照(高光)

是否要保特高光,不受Alpha值影響.如果勾上,即使Alpha變為0,高光依然存在。如果取消,高光會隨著Alphal降低而變弱
在這里插入圖片描述

1.5 Render Face 渲染面

在這里插入圖片描述

  • Both是兩面都渲染
  • Back是僅渲染背面
  • Front是僅渲染正面

正面背面是指網格表面的方向,以四邊形Quad為例,它有一個正面,一個背面
在這里插入圖片描述

至于哪邊是正面,哪邊是背面,是網格在制作時決定的,封閉模型,比如球和正方體,一般把外表面定義為“正面,當從球的內部往外看,就會看到球表面的“背面”

1.6 Alpha Clipping 透明度剪裁

在這里插入圖片描述

所有像素最終的alpha值,會和Alpha clipping里的值比較,如果像素的alpha值必小于這個配置,那么這個像素會被直接丟棄,不會渲染到最終輸出里。

啟用后可用于制作鏤空效果(如樹葉、柵欄等)。需要在制作貼圖時考慮Alpha值。

1.7 Receive Shadows 是否接收陰影

表示陰影能否出現在它上面

2、表面輸入

在這里插入圖片描述

2.1 BaseMap 基礎貼圖

在這里插入圖片描述

網格(Mesh)使用的紋理貼圖,也被稱作Albedo/Diffuse貼圖。貼圖一般會隨著模型制作,是模型的外觀,

貼圖提供了一個顏色的配置,這里的顏色會和貼圖進行混合,最后再附加到模型
在這里插入圖片描述

2.2 Specular Map 高光貼圖

影響物體的光澤
在這里插入圖片描述

2.3 Smoothness 光滑度

在這里插入圖片描述
光滑度越高,反光越集中。1數值達到1,就是一面鏡子,光滑度的數值可以從貼圖中獲取,也就是在制作高光或者紋理貼圖時,將Alpha值制作為紋理的光滑度,可以讓物體不同區域有不同的光滑度。
在這里插入圖片描述

Unity有一些推薦的參數,用來模擬各種材質,簡單總結一下它的建議:

  • 對于更偏向金屬質感的材質,Base Map最好接近黑色,而Specular Map接近金屬本身的顏色
  • 對非金屬的材質,Base Map使用接近材質的顏色,而Specular Map接近灰色

2.4 Normal Map法線貼圖、Height Map高度貼圖、Occlusion Map遮蔽貼圖

在這里插入圖片描述
它們都是讓物體看起來更有凹凸感,在制作模型時一起制作

2.5 Emission 自發光

在這里插入圖片描述
在沒有光照的情況下發出的光亮

Unity里可以配合全局光照(GI),光照探針,將自發光計算為間接光照
在這里插入圖片描述

2.6 Tiling和Offset

分別表示以上所有貼圖的重復和移動,X/Y表示哪個軸的變化

這里用一個貼圖方便演示

如果Tiling是1,Offset是0,就是使用原圖作為貼圖
在這里插入圖片描述
如果增加Tiling,可以看到在對應軸上,貼圖看起來被壓縮了
在這里插入圖片描述

而Offset就是平移了這個貼圖,
在這里插入圖片描述

它的原理是改變了頂點的紋理坐標,進而改變了每個像素的采樣結果。

我們可以在資源文件夾中找到紋理,其中Wrap Mode 包裹模式定義了當紋理坐標UV超出0-1的范圍時,采樣的結果是什么
在這里插入圖片描述

3、Detail Inputs細節輸入

該選項用于添加細節
在這里插入圖片描述
如何讓模型在局部放大時,仍然可以看到豐富的細節?

最簡單的方式是,繪制更高清的紋理貼圖,容納更多的顏色細節,但是它會明顯增加貼圖占用空間。

Detail Inputs就是一個解決局部細節的方案,它的核心思想是,把局部的細節從主貼圖中剝離出來,單獨成為一張貼圖,通過增加Tiling模擬高分辨率的紋理,在采樣主紋理貼圖時,同時采樣細節紋理貼圖,然后將細節采樣的結果疊加到主紋理的采樣上,它平衡了占用空間和細節效果。

Mask用于標記主紋理上的哪些部分,是需要和細節貼圖進行疊加的,下面是細節貼圖和細節貼圖的法線貼圖,以及它們的Tiling和Offset。

4、高級選項

在這里插入圖片描述

4.1 Specular Highlights 鏡面高光

就是球面這個明顯的光點
在這里插入圖片描述

取消后光點消失
在這里插入圖片描述

4.2 Environment Reflections 環境反射

提供更逼真的鏡面反光效果,反射環境中的物體,比如反射天空盒。
在這里插入圖片描述

4.3 Sorting Order 渲染順序

所有Shader都有一個渲染隊列序號,比如不透明物體是2000,透明物體是3000,越靠前的越先渲染。URP隱藏了隊列序號,改為一個Slider,但是原理是一樣的。

4.4 Enable GPU Instancing

當場景中存在大量相同的對象時,勾上它可以在一次DrawCall中,傳遞多個相同網格和材質的對象,加快渲染計算的速度。

注意:Unity官方建議低于256頂點的網格,不要啟用這個選項,應該采用另外的優化方案。

參考

https://docs.unity3d.com/cn/Packages/com.unity.render-pipelines.universal@12.1/manual/lit-shader.html
https://www.bilibili.com/video/BV1foFNeuEjA/


專欄推薦

地址
【unity游戲開發入門到精通——C#篇】
【unity游戲開發入門到精通——unity通用篇】
【unity游戲開發入門到精通——unity3D篇】
【unity游戲開發入門到精通——unity2D篇】
【unity實戰】
【制作100個Unity游戲】
【推薦100個unity插件】
【實現100個unity特效】
【unity框架/工具集開發】
【unity游戲開發——模型篇】
【unity游戲開發——InputSystem】
【unity游戲開發——Animator動畫】
【unity游戲開發——UGUI】
【unity游戲開發——聯網篇】
【unity游戲開發——優化篇】
【unity游戲開發——shader篇】
【unity游戲開發——編輯器擴展】
【unity游戲開發——熱更新】
【unity游戲開發——網絡】

完結

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果學習過程中遇到任何問題,也歡迎你評論私信找我。

贈人玫瑰,手有余香!如果文章內容對你有所幫助,請不要吝嗇你的點贊評論和關注,你的每一次支持都是我不斷創作的最大動力。當然如果你發現了文章中存在錯誤或者有更好的解決方法,也歡迎評論私信告訴我哦!
在這里插入圖片描述

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

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

相關文章

uni-app ios離線推送,推送后點擊推送的鏈接進入程序后再次回到桌面,無法消除app的角標問題

問題現象: 解決方案: 1、用h5方法清理 h5地址:HTML5 API Reference 廢話不多說上代碼 /*** 清除應用角標(支持iOS和Android)* 使用H5方法清理推送角標*/clearAppBadge() {// #ifdef APP-PLUStry {plus.runtime.setBad…

遷移Oracle SH 示例 schema 到 PostgreSQL

接著上一篇文章:遷移Oracle HR 示例 schema 到 PostgreSQL中,本文做Oracle SH(Sales History)示例 schema的遷移,SH schema比HR schema更大更復雜,本次遷移的重點是: 分區表外部數據加載 使用…

1.1 ARMv8/ARMv9安全擴展

目錄1.1.1 ARM架構安全演進1.1.2 ARMv8安全特性異常級別(EL)安全模型關鍵安全擴展1.1.3 ARMv9安全創新機密計算架構(CCA)增強的隔離機制1.1.4 安全擴展的TF-A支持1.1.5 安全擴展配置示例1.1.1 ARM架構安全演進 ARM架構從v7到v9的安全演進路線: ARMv7:引…

更新用戶隱私協議后還是 ail api scope is not declared in the privacy agreement怎么辦??!

saveImageToPhotosAlbum:fail api scope is not declared in the privacy agreement昨天明明可以了,開了個會出來,又不行了,真要命啊啊啊啊啊啊啊啊啊啊(現在回想起來可能是因為我把發布的那個版本刪了,因為那個只是用來測試用的e…

練習:對象數組 5

定義一個長度為 3 的數組,數組存儲 1~3 名學生對象作為初始數據,學生對象的學號,姓名各不相同。學生的屬性:學號,姓名,年齡。要求 1:再次添加一個學生對象,并在添加的時候進行學號的…

Linux 中的 .bashrc 是什么?配置詳解

如果你使用過 Linux 終端,那么你很可能接觸過 .bashrc 文件。這個功能強大的腳本是個性化命令行環境并使其更高效運行的關鍵。 在本文中,我們將向你介紹這個文件是什么,在哪里可以找到它,以及如何安全地編輯它。你還將學到一些實…

JVM運行時數據區深度解析

💾 JVM運行時數據區深度解析 文章目錄💾 JVM運行時數據區深度解析🎯 引言📚 方法區📋 方法區存儲內容🔄 從永久代到元空間的演進永久代時期(JDK 8之前)元空間時期(JDK 8及…

.NET nupkg包的深度解析與安全防護指南

在.NET開發領域,nupkg包是開發者們不可或缺的工具。它不僅是代碼分發和資源共享的核心載體,還貫穿了開發、構建、部署的全流程。今天,我們將深入探討nupkg包的核心功能、打包發布流程以及安全防護措施,幫助你在.NET開發中更加得心…

Cursor 快速入門指南:從安裝到核心功能

引言 Cursor 是一款融合 AI 能力的現代代碼編輯器,旨在提升開發者的編碼效率。本文將帶您從零開始,快速掌握 Cursor 的完整使用流程 - 包括安裝配置、項目初始化以及核心 AI 功能的應用。 正文 1. 安裝與初始配置 1.1 下載與安裝 Cursor 支持跨平臺…

自然語言處理中probe探測是什么意思。

文章目錄🔹 1. 英文單詞的基本含義(動詞 & 名詞)? 作為動詞(to probe):? 作為名詞(a probe):🔹 2. 不同領域的具體含義🔹 3. 在機器學習/NL…

【記錄】Ubuntu掛載home文件夾到磁盤

問題描述 服務器裝好后,home文件夾一般存放各個用戶的文件,默認的存儲磁盤為系統磁盤,一般比較小,可能幾百G,這對于服務器來講,相當小了,所以需要對home文件夾進行重新調整。 我之前的博文 點擊進入 相關配置在重啟機器后,磁盤配置自動失效,即配置好后,home在大的磁…

【注意避坑】基于Spring AI 開發本地天氣 mcp server,通義靈碼測試MCP server連接不穩定,cherry studio連接報錯

springboot 版本: 3.5.4 cherry studio版本:1.4.7 通義靈碼版本: 2.5.13 文章目錄 問題描述:1. 通義靈碼添加mcp server ,配置測試2. cherry studio工具添加mcp server ,配置測試 項目源代碼:解…

Paimon LSM Tree Compaction 策略

壓縮怎么進行的這里的操作都是KValue,內部有row kind,標記了刪除和插入MergeTreeCompactManager 是 Paimon 中 Merge-Tree 結構壓縮任務的總調度中心。它的核心職責就是監控文件的層級狀態(Levels),并在合適的時機&…

小米路由器3C刷OpenWrt,更換系統/變磚恢復 指南

基礎篇看這里: 小米路由器3C如何安裝OpenWrt官方編譯的ROM - 嗶哩嗶哩 小米路由器 3C 刷入 Breed 和 OpenWrt - Snoopy1866 - 博客園 一、路由器注入 如果按照上面的文章, telnet、ftp一直連接失敗,那么可以嘗試看 這里: 獲取路由器root權…

Spring Boot 項目啟動時按需初始化加載數據

1、新建類,類上添加注解 Component ,該類用于在項目啟動時處理數據加載任務; 2、該類實現 ApplicationRunner 接口,并重寫 run 方法; 3、在重寫的 run 方法里處理數據加載任務; 注意: 有定時加載…

MCP快速入門—快速構建自己的服務器

引言 隨著大語言模型(LLM)技術的快速發展,如何擴展其能力邊界成為開發者關注的重點。MCP(Model Capability Protocol)作為一種協議標準,允許開發者構建自定義服務器來增強LLM的功能。 正文內容 1. MCP核心概念與技術背景 MCP服務器主要提供三種能力類…

Vue 事件總線深度解析:從實現原理到工程實踐

在 Vue 組件通信體系中,事件總線(Event Bus)是處理非父子組件通信的輕量解決方案。本文將從技術實現細節、工程化實踐、內存管理等維度展開,結合源碼級分析與典型場景,帶你全面掌握這一核心技術點。?一、事件總線的技…

CMake Qt靜態庫中配置qrc并使用

CMake Qt序言環境代碼序言 看網上這資料較少,且我理解起來有歧義,特地補充 環境 CMake:3.29.2 Qt:5.15.2 MSVC:2022 IDE:QtCreator 代碼 方式一: 在CMakeLists.txt里,add_libr…

記錄一下:成功部署k8s集群(部分)

前提條件:安裝了containerd、docker 關閉了firewalld、selinux 配置了時間同步服務 chronyd 關閉swap分區等1、在控制節點、工作節點,安裝kubelet、kubeadm、kubectlyum install -y kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0 …

Idea如何解決包沖突

Idea如何解決包沖突1.Error信息:JAR列表。 在掃描期間跳過不需要的JAR可以縮短啟動時間和JSP編譯時間。SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/E:/javapojects/stww-v4-gjtwt-seal/target/stww--v4-platform-proj…