国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

《Unity的URP項目中使用自定義shader導(dǎo)致材質(zhì)消失的解決辦法》

這篇具有很好參考價值的文章主要介紹了《Unity的URP項目中使用自定義shader導(dǎo)致材質(zhì)消失的解決辦法》。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

????????在Unity中使用URP時,會有需求使用自定義的一些shader來實現(xiàn)特殊效果,這時如果我們直接使用新建材質(zhì)與無光照著色器(Unlit shader),可能會發(fā)生一個對于新手而言意料之外的問題——物體!消失了!

《Unity的URP項目中使用自定義shader導(dǎo)致材質(zhì)消失的解決辦法》

解決辦法:

????????打開你正在使用的的通用渲染器(Universal Renderer Data),找到渲染(Rendering)->深度引動模式(Depth Priming Mode),將其從默認(rèn)的“自動”修改為“已禁用”。

《Unity的URP項目中使用自定義shader導(dǎo)致材質(zhì)消失的解決辦法》


如果你的問題解決了并且想知道為什么的話,請接著往下閱讀。

????????什么是深度引動模式?深度引動技術(shù)是Unity2021.2中URP管線的新增功能。在Unity的文檔中是這樣解釋的:“The feature uses a depth prepass to determine which pixel shader invocations Unity can skip”,通過使用一種用于預(yù)處理深度信息的Pass來幫助Unity跳過對部分片元的渲染。而在使用Unity2021默認(rèn)的URP項目時,其自動生成的通用渲染器文件(Universal Renderer Data)會默認(rèn)開啟這一項技術(shù),而這也是問題的根源。

????????為什么深度引動模式會導(dǎo)致我們的物體消失?首先必須澄清的是,這并不是Unity的什么Bug,而是很典型的新手效應(yīng)事件,對不熟悉技術(shù)的使用導(dǎo)致了意料之外的錯誤。深度引動模式需要使用一種LightMode為DepthOnly的特殊Pass來生成場景中不透明物體的深度圖,而我們所創(chuàng)建的無光照著色器是不具有該類型Pass的(因為壓根就沒寫這東西),這就導(dǎo)致在開啟了該技術(shù)的渲染流程中,這些使用了“不具備DepthOnlyPass的shader”的物體無法生成深度信息從而被Unity過早剔除無法進(jìn)行后續(xù)的渲染,造成了物體的消失。

????????因此若想在URP項目中同時使用深度引動技術(shù)與自定義shader,則務(wù)必注意需要在自定義shader中向Unity聲明DepthOnlyPass用于執(zhí)行深度引導(dǎo)。幸運(yùn)的是Unity在Universal Render Pipeline內(nèi)置的Unlit shader中已經(jīng)實現(xiàn)了該P(yáng)ass,在自定義shader中使用以下語句即可直接使用。

UsePass "Universal Render Pipeline/Unlit/DepthOnly

對比使用前后:

《Unity的URP項目中使用自定義shader導(dǎo)致材質(zhì)消失的解決辦法》

???????左側(cè)未使用DepthOnlyPass,右側(cè)則添加了DepthOnlyPass,兩者均在前向渲染的情況下開啟了深度引動模式。可見在使用了DepthOnlyPass的情況下,Unity通過DepthPrepass記錄了我們Sphere的深度信息,從而保證了后續(xù)DrawOpaqueObjects的正確執(zhí)行。

Tips:

  • 深度引動模式只工作在前向渲染的情況下,因此在通用渲染器中為你的項目選擇延遲渲染路徑的話就能繞過這個問題。
  • 深度引動模式只針對不透明物體進(jìn)行優(yōu)化,因此如果你將物體的渲染隊列設(shè)置為“透明”,那么即使不添加DepthOnlyPass也能正常渲染,不過代價是什么呢?
  • 更多參考資料可以查看官方文檔,以及Unity工程師NicoLeyman在論壇中的一些回答。

"The more you know, the more you know you don't know."

——Daniel Kahneman文章來源地址http://www.zghlxwxcb.cn/news/detail-456031.html

到了這里,關(guān)于《Unity的URP項目中使用自定義shader導(dǎo)致材質(zhì)消失的解決辦法》的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Unity極坐標(biāo)Shader特效,以及使用Instanced Property實現(xiàn)相同材質(zhì)不同參數(shù)

    Unity極坐標(biāo)Shader特效,以及使用Instanced Property實現(xiàn)相同材質(zhì)不同參數(shù)

    先看看效果 Unity極坐標(biāo)Shader特效 有時候我們需要在場景中擺放一些熱點,用戶點擊之后出現(xiàn)互動,當(dāng)然實現(xiàn)這個功能的方法有很多,作為一名程序員,當(dāng)然是要用最簡單的實現(xiàn)。用shader程序化實現(xiàn)它。 啥是極坐標(biāo) 極坐標(biāo),又稱極座標(biāo)系。它是一種表示平面直角坐標(biāo)系中點的

    2024年02月09日
    瀏覽(22)
  • Unity中Shader URP 簡介

    Unity中Shader URP 簡介

    在這篇文章中,我們主要介紹一下Unity中的URP(通用渲染管線)是什么 Unity幫助文檔 Windows and UWP Mac and IOS Android Xbox One PlayStation4 Nintendo Switch WebGL All current VR platforms 在Unity2018以前,Unity使用的一直都是Build-in Render Pipeline(內(nèi)置渲染管線) 在早期使用內(nèi)置渲染管線時,Unity為了適配

    2024年01月16日
    瀏覽(38)
  • Unity Shader從內(nèi)置渲染管線遷移到URP

    Unity 在URP中將shader更新為了HLSL語言,使用build-in shader 無法直接在URP中使用 這里講一下關(guān)于shader的更新方法 參考 From Built-in to URP Tags 添加 \\\"RenderPipeline\\\" = \\\"UniversalPipeline\\\" CGPROGRAM ENDCG 改變?yōu)?HLSLPROGRAM ENDHLSL #include \\\"UnityCG.cginc\\\" 更改為 #include \\\"Packages/com.unity.render-pipelines.universal/Sh

    2024年02月05日
    瀏覽(30)
  • Unity URP Shader(HLSL)踩坑日記(一)

    Unity URP Shader(HLSL)踩坑日記(一)

    最近開始轉(zhuǎn)TA,剛開始學(xué)習(xí),資料比較雜亂,其中遇到的問題和一些計算方式,記錄一下,后續(xù)會一直完善補(bǔ)充。 注意此時Properties中的屬性,如果要開啟SRP合批,需要放到CBUFFER代碼塊中。 應(yīng)用階段準(zhǔn)備的數(shù)據(jù)---- 頂點著色處理數(shù)據(jù)(返回值為處理后的數(shù)據(jù))---- ------ 片元著色器

    2024年01月17日
    瀏覽(22)
  • Unity Spine 3.8 (URP) 踩坑(Shader報錯修改)

    今天搜索spine優(yōu)化,看到一篇文章項目導(dǎo)入多個Spine動畫 合批 降低DrawCall -- UWA問答 | 游戲開發(fā)者互動問答社區(qū) | 侑虎科技 提供了新思路,打算嘗試一下URP。但美術(shù)使用的spine版本是3.8,項目用的Unity2021.3.11f1c2,直接導(dǎo)入spine URP包,shader報錯:half4 不能轉(zhuǎn)成 SurfaceData2D;遂改下

    2024年02月12日
    瀏覽(48)
  • Unity URP Shader “Redefinition of _Time“ error

    強(qiáng)烈建議先嘗試閱讀本文之后自行解決:https://zhuanlan.zhihu.com/p/360566324 我這里記錄一下我的思路: 首先檢查URP升級是否正確,主要看Asset是否設(shè)置,ShaderGraph表現(xiàn)是否正常 嘗試排除是否是未定義宏導(dǎo)致的問題,主要是對比ShaderGraph自動生成的代碼 確認(rèn)自己的代碼是否使用了

    2024年02月15日
    瀏覽(40)
  • unity URP 利用particle system制作簡單的shader交互

    unity URP 利用particle system制作簡單的shader交互

    首先這里制作了一個簡單交互,使用shader grapgh,根據(jù)計算距離和變化數(shù)值的差實現(xiàn)交互后的擴(kuò)散,同時計算消散遮罩讓它逐漸談去。 將他賦予材質(zhì)物體,根據(jù)腳本傳入位置和逐漸變化的大小后,呈現(xiàn)這樣的效果。 但是,shader graph這樣的工具,在做這種效果非??斓耐瑫r,也

    2024年02月07日
    瀏覽(27)
  • 【Unity Shader】從入門到著魔(1)基本概念:什么是網(wǎng)格?材質(zhì)?Shader?

    【Unity Shader】從入門到著魔(1)基本概念:什么是網(wǎng)格?材質(zhì)?Shader?

    如上圖,模型的三角形面就叫做網(wǎng)格(Mesh),網(wǎng)格的本質(zhì)是一堆頂點數(shù)據(jù)的規(guī)則排序,在Unity和UE中由三角形表示,Maya等DCC軟件(Digital Content Creation)中則通常由四邊形表示(倆個三角形剛好組成一個四邊形)。 在Unity中我們新建一個Cube,

    2024年02月09日
    瀏覽(24)
  • Unity中Shader的Standard材質(zhì)解析(二)

    Unity中Shader的Standard材質(zhì)解析(二)

    Unity中Shader的Standard材質(zhì)解析(二),對 Standard 的 PBR 的 GI 進(jìn)行解析 Unity中Shader的Standard材質(zhì)解析(一) #include “CGInclude/MyPhysicallyBasedRendering.cginc” 整理 LightingStandard_GI1(o, giInput, gi); 中的數(shù)據(jù) Unity_GlossyEnvironmentData表示GI中的反射準(zhǔn)備數(shù)據(jù) 準(zhǔn)備好反射數(shù)據(jù)后,計算得出GI中的

    2024年02月04日
    瀏覽(21)
  • unity build-in 渲染管線升級urp渲染 shader篇

    ????????由于工作原因需要對項目進(jìn)行升級,從build-in渲染管線升級到urp渲染管線,我自己對應(yīng)的unity版本是2018.版本升級到2021.3.2版本,由于最近幾年unity版本升級比較快,個體版本差異有所不同,如遇與版本不一致問題敬請諒解。以下是根據(jù)官網(wǎng)等系列網(wǎng)站整理的內(nèi)容

    2023年04月16日
    瀏覽(44)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包