兩個重疊模型模擬雙pass,順便解決透明亂序問題
虛幻4除了能用rendertarget模擬雙pass行為,還可以用兩個模型來模擬雙pass。用兩個一模一樣的模型,第一個模型渲染customdepth 然後disable rendering in main pass 並且enable dinamic shadow,這樣就能有第一層深度和光照資訊。然後將第二個模型使用第一個模型在prepass中遺留下來的一些渲染資訊,就可以做到上圖所示的效果。在卡通渲染裡這種方法應該很有幫助。下面是我第二個模型的材質。
用這種方法還順帶解決了透明模型亂序的問題。
但是這種方法如果用來做骨骼模型的透明亂序就有點麻煩了,因為骨骼模型時刻會動。虛幻4.16+的版本還有一種解決方案。也是在Mesh的Rendering裡面開啟CustomDepthPass,然後再在material裡面開啟AllowCustomDepthWrite,再將OpacityMaskClipValue設定為0.001
最後得到如下圖所示的效果
有幾個注意點:
【1】在強光和單一環境顏色下。效果不太明顯。
【2】translucent和其他材質模型混用的時候,translucent效果會出錯(可以拿官方自帶的人做實驗。只替換身體部分的材質,Logo胸口的材質保持原先。你就會發現奇怪的現象。我實驗的版本是4.16.2)
【3】TransactionWidth引數需要根據場景來調。
【4】這種方法和上面一種重疊模型的相比,沒有影子。
【5】這種方法只是讓90%的亂序問題消除了。自己還是有亂序(可以看到小人的手指部分還是亂序的)
至此虛幻4的各種亂序解決方法應該差不多了。這篇帖子更新了幾次。至於粒子的亂序暫不進行討論。
Note:為什麼要像上圖那樣“連”材質球呢,CustomDepth和pixeldepth相減到底得到了什麼呢,關於為什麼這麼做的原因在我這篇部落格裡有詳細解答,有興趣的朋友可以去看看。http://blog.csdn.net/qq_16756235/article/details/78303695
相關文章
- css元素層疊順序詳解CSS
- 雙模數問題 題解
- 探索RocketMQ的重複消費和亂序問題MQ
- 解決stderr重定向到stdout造成的輸出亂序問題
- CSS 元素層疊順序CSS
- 解決中文亂碼問題
- Fragment重影(重疊)白屏等問題原理解析,以及解決方案Fragment
- 層疊上下文與層疊順序
- springmvc 解決中文亂碼問題SpringMVC
- MySql中文亂碼問題解決MySql
- Jmeter 解決中文亂碼問題JMeter
- AD18無法模擬問題的解決
- SuperObject Delphi 的 JSON 屬性亂序 – 操作類改造 – 關於屬性順序的問題ObjectJSON
- 【BUG】鴻蒙模擬器虛擬化問題的解決方案鴻蒙
- SceneKit-解決模型重疊時渲染畫面閃爍的問題模型
- css 層疊上下文和層疊順序CSS
- JavaScript 陣列順序打亂JavaScript陣列
- 解決Kali Linux 2020.1亂碼問題Linux
- TongWeb下亂碼問題解決思路Web
- java中亂碼問題解決方法Java
- js解決url中文亂碼問題JS
- cat 輸出亂碼問題解決
- 解決plsql中中文亂碼問題SQL
- 直播小程式原始碼,pytorch同時讓兩個dataloader打亂的順序是相同原始碼PyTorch
- 解決Linux無法開啟android模擬器問題LinuxAndroid
- mysql order by 和 group by 順序問題MySql
- 移動端順序問題上
- Jetpack Compose的Modifier順序問題Jetpack
- 學了兩天 react,亂講一下學習思路,順便弄了一個腳手架React
- 亂序的兩種方法
- [CSS LEARN]層疊上下文、層疊等級、層疊順序CSS
- phantomjs截圖中文亂碼問題解決JS
- JavaWeb 亂碼問題終極解決方案!JavaWeb
- 自定義RedisTemplate,解決Redis亂碼問題Redis
- Filter解決亂碼問題 -2024/11/6Filter
- html優先順序和層疊性HTML
- flashfxp 亂碼,2種辦法解決flashfxp 亂碼問題
- 刷題系列 - 合併兩個順序佇列為一個新的佇列佇列
- CSS三個特性:層疊性、繼承性、優先順序CSS繼承