【Quest開發】透視環境下摳出身體并能遮擋身體上的服裝

軟件:Unity?2022.3.51f1c1、vscode、Meta XR All in One SDK V72

硬件:Meta Quest3

僅針對urp管線

博主搞這個主要是想做現實里的人的變身功能,最后效果如下

可以看到雖然身體是半透明的,但是裙子依舊被完全遮擋了

原理是參考unity的官方urp示例,使用RendererFeature更換被遮擋物體的材質

Unity - Manual: Example of creating a custom rendering effect via the Render Objects Renderer Feature in URP

實現步驟:

一、使用BuildingBlocks設置透視環境

注意:透視有個坑是camera不能開postprocessing(后處理),開后處理會導致環境全黑

二、配置一個具有全身追蹤的玩家物體,可參考這篇

【Quest開發】全身跟蹤(一)_quest3如何識別跟蹤腳部-CSDN博客??????

我為了綁定準確直接使用meta默認的全身追蹤示例?

三、材質設置

身體材質:身體材質的shader需要是透明但寫入深度(DepthWrite)的,這里我直接復制了一份meta提供的oculusHand改了參數給到了Mesh里的材質

ps.不用默認透明lit shader的原因是這個shader只參與深度測試但是不寫入深度(也就是它能被別的東西遮,但是不能遮別的東西)

衣服材質:我直接用的默認lit shader材質。要求是在Transparent隊列里,即使衣服本身不透明(原因在配置RendererFeature里解釋)

被遮擋時替換的材質:為了讓被遮擋的衣服不可見,也就是達成遮擋的效果,應創建一個透明材質(我這里又復制了一個oculusHand調成了全透明,lit的透明材質應該也行)

四、修改物體層級

新建一個Layer:Clothes,給自己的衣服改成這個層級

五、配置RendererFeature

1、找到自己正在使用的渲染管線使用的renderer(渲染器)

2、點擊Renderer Data后選中最下方的add Renderer Feature

選擇Render Objects

3、配置如下

這個渲染器的意思就是,在所有物體渲染完后,再對Clothes這個層級的透明隊列里的物體再次進行渲染處理,當深度測試發現該層級有物體頂點?片元?處于別的物體后面時(也就是自身深度值大于當前像素點存儲的深度緩沖區值時)就會把被遮擋的那個片元替換為ClothesTransparent材質

這樣就完成啦,編輯器里應該能看見效果了。


現在來解釋為什么衣服需要在Transparent隊列里

因為渲染時,opaque(不透明)隊列和Transparent(透明)隊列是分開渲染的,opaque隊列比Transparent隊列先渲染。而我們添加的RendererFeature是針對Transparent隊列的,那么如果衣服位于opaque隊列的話,顯然沒法檢測到

我相信會有人想那給rendererFeature改成針對opaque隊列,衣服就可以在opaque里了唄。不行哈,遮不住一點,會變成下面這樣。我還沒有想通為什么,我貧瘠的渲染知識理解到這已經是極限了,希望大佬評論區解答吧。


2025.4.28

注意,當衣服使用lit材質的transparent時,會發現衣服自身重疊部分渲染奇怪,這也是由于這個shader不寫入深度的原因,有這種困擾的朋友們可以自己建個shadergraph把深度寫入和深度測試都打開

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

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

相關文章

前端安全中的XSS(跨站腳本攻擊)

XSS 類型 存儲型 XSS 特征:惡意腳本存儲在服務器(如數據庫),用戶訪問受感染頁面時觸發。場景:用戶評論、論壇帖子等持久化內容。影響范圍:所有訪問該頁面的用戶。 反射型 XSS 特征:惡意腳本通過…

(第三篇)Springcloud之Ribbon負載均衡

一、簡介 1、介紹 Spring Cloud Ribbon是Netflix發布的開源項目,是基于Netflix Ribbon實現的一套客戶端負載均衡的工具。主要功能是提供客戶端的軟件負載均衡算法,將Netflix的中間層服務連接在一起。Ribbon客戶端組件提供一系列完善的配置項如連接超時&…

大模型——使用coze搭建基于DeepSeek大模型的智能體實現智能客服問答

大模型——使用coze搭建基于DeepSeek大模型的智能體實現智能客服問答 本章實驗完全依托于coze在線平臺,不需要本地部署任何應用。 實驗介紹 1.coze介紹 扣子(coze)是新一代 AI 應用開發平臺。無論你是否有編程基礎,都可以在扣子上快速搭建基于大模型的各類 AI 應用,并…

【計算機視覺】目標檢測:深度解析YOLOv9:下一代實時目標檢測架構的創新與實戰

深度解析YOLOv9:下一代實時目標檢測架構的創新與實戰 架構演進與技術創新YOLOv9的設計哲學核心創新解析1. 可編程梯度信息(PGI)2. 廣義高效層聚合網絡(GELAN)3. 輕量級設計 環境配置與快速開始硬件需求建議詳細安裝步驟…

【SpringBoot】基于MybatisPlus的博客管理系統(1)

1.準備工作 1.1數據庫 -- 建表SQL create database if not exists java_blog_spring charset utf8mb4;use java_blog_spring; -- 用戶表 DROP TABLE IF EXISTS java_blog_spring.user_info; CREATE TABLE java_blog_spring.user_info(id INT NOT NULL AUTO_INCREMENT,user_na…

貴族運動項目有哪些·棒球1號位

10個具有代表性的貴族運動: 高爾夫 馬術 網球 帆船 擊劍 斯諾克 冰球 私人飛機駕駛 深海潛水 馬球 貴族運動通常指具有較高參與成本、歷史底蘊或社交屬性的運動,而棒球作為一項大眾化團隊運動,與典型貴族運動的結合較為罕見。從以下幾個角度探…

【Tauri2】035——sql和sqlx

前言 這篇就來看看插件sql SQL | Taurihttps://tauri.app/plugin/sql/ 正文 準備 添加依賴 tauri-plugin-sql {version "2.2.0",features ["sqlite"]} features可以是mysql、sqlite、postsql 進去features看看 sqlite ["sqlx/sqlite&quo…

全鏈路自動化AIGC內容工廠:構建企業級智能內容生產系統

一、工業化AIGC系統架構 1.1 生產流程設計 [需求輸入] → [創意生成] → [多模態生產] → [質量審核] → [多平臺分發] ↑ ↓ ↑ [用戶反饋] ← [效果分析] ← [數據埋點] ← [內容投放] 1.2 技術指標要求 指標 標準值 實現方案 單日產能 1,000,000 分布式推理集群 內容合規率…

是否想要一個桌面哆啦A夢的寵物

是否想擁有一個在指定時間喊你的桌面寵物呢(手動狗頭) 如果你有更好的想法,歡迎提出你的想法。 是否考慮過跟開發者一對一,提出你的建議(狗頭)。 https://wwxc.lanzouo.com/idKnJ2uvq11c 密碼:bbkm

Unity AI-使用Ollama本地大語言模型運行框架運行本地Deepseek等模型實現聊天對話(二)

一、使用介紹 官方網頁:Ollama官方網址 中文文檔參考:Ollama中文文檔 相關教程:Ollama教程 使用版本:Unity 2022.3.53f1c1、Ollama 0.6.2 示例模型:llama3.2 二、運行示例 三、使用步驟 1、創建Canvas面板 具體…

從 BERT 到 GPT:Encoder 的 “全局視野” 如何喂飽 Decoder 的 “逐詞糾結”

當 Encoder 學會 “左顧右盼”:Decoder 如何憑 “單向記憶” 生成絲滑文本? 目錄 當 Encoder 學會 “左顧右盼”:Decoder 如何憑 “單向記憶” 生成絲滑文本?引言一、Encoder vs Decoder:核心功能與基礎架構對比1.1 本…

數據結構入門:詳解順序表的實現與操作

目錄 1.線性表 2.順序表 2.1概念與結構 2.2分類 2.2.1靜態順序表 2.2.2動態順序表 3.動態順序表的實現 3.1.SeqList.h 3.2.SeqList.c 3.2.1初始化 3.2.2銷毀 3.2.3打印 3.2.4順序表擴容 3.2.5尾部插入及尾部刪除 3.2.6頭部插入及頭部刪除 3.2.7特定位置插入…

LeetCode熱題100--53.最大子數組和--中等

1. 題目 給你一個整數數組 nums ,請你找出一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。 子數組是數組中的一個連續部分。 示例 1: 輸入:nums [-2,1,-3,4,-1,2,1,-5,4] 輸出&…

python:練習:2

1.題目:統計一篇英文文章中每個單詞出現的次數,并按照出現次數排序輸出。 示例輸入: text "Python is an interpreted, high-level, general-purpose programming language. Created by Guido van Rossum and first released in 1991…

AI Agent 孵化器?開源框架CAMEL

簡介 CAMEL(Communicative Agents for Mind Exploration of Large Scale Language Model Society)是一個開源框架,大語言模型多智能體框架的先驅者。旨在通過角色扮演和自主協作,探索大語言模型(LLM)在多智…

關于插值和擬合(數學建模實驗課)

文章目錄 1.總體評價2.具體的課堂題目 1.總體評價 學校可以開設這個數學建模實驗課程,我本來是非常的激動地,但是這個最后的上課方式卻讓我高興不起哦來,因為老師講的這個內容非常的簡單,而且一個上午的數學實驗,基本…

LayerSkip: Enabling Early Exit Inference and Self-Speculative Decoding

TL;DR 2024 年 Meta FAIR 提出了 LayerSkip,這是一種端到端的解決方案,用于加速大語言模型(LLMs)的推理過程 Paper name LayerSkip: Enabling Early Exit Inference and Self-Speculative Decoding Paper Reading Note Paper…

解決ktransformers v0.3 docker鏡像中 operator torchvision::nms does not exist 問題

問題背景 更新ktransformers docker鏡像到v0.3版本后(之前為v0.2.4post1),使用更新前啟動命令無法正確啟動服務,提示以下錯誤: Traceback (most recent call last):File "/workspace/ktransformers/ktransforme…

如何系統學習音視頻

學習音視頻技術涉及多個領域,包括音頻處理、視頻處理、編碼解碼、流媒體傳輸等。 第一階段:基礎知識準備 目標:掌握音視頻學習所需的計算機科學和數學基礎。 計算機基礎 學習計算機網絡基礎(TCP/IP、UDP、HTTP、RTSP等協議&#…

TiDB 可觀測性最佳實踐

TiDB 介紹 TiDB,由 PingCAP 公司自主研發的開源分布式關系型數據庫,是一款創新的 HTAP 數據庫產品,它融合了在線事務處理(OLTP)和在線分析處理(OLAP)的能力,支持水平擴容和縮容&…