兩個重疊模型模擬雙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
相關文章
- DIV重疊 CSS讓DIV層疊 兩個DIV或多個DIV順序重疊加CSS
- css元素層疊順序詳解CSS
- 雙模數問題 題解
- c++模擬實現順序表C++
- 今天解決的兩個問題
- CSS 元素層疊順序CSS
- 探索RocketMQ的重複消費和亂序問題MQ
- AD18無法模擬問題的解決
- Palm公司擬大規模裁員 解決官僚問題
- 解決中文亂碼問題
- 解決SSH亂碼問題
- Fragment重影(重疊)白屏等問題原理解析,以及解決方案Fragment
- css 層疊上下文和層疊順序CSS
- 如何簡便的解決虛擬機器裡軟體過期問題虛擬機
- SceneKit-解決模型重疊時渲染畫面閃爍的問題模型
- MySql中文亂碼問題解決MySql
- Jmeter 解決中文亂碼問題JMeter
- Java 解決中文亂碼問題Java
- RDSSQLSERVER解決中文亂碼問題SQLServer
- 解決MySQL中文亂碼問題MySql
- MYSQL亂碼問題解決方法MySql
- JavaScript 陣列順序打亂JavaScript陣列
- wmode解決flash透明及層深問題
- 學了兩天 react,亂講一下學習思路,順便弄了一個腳手架React
- SuperObject Delphi 的 JSON 屬性亂序 – 操作類改造 – 關於屬性順序的問題ObjectJSON
- mysql order by 和 group by 順序問題MySql
- Java 修飾符順序問題Java 修飾符
- Git diff hash順序的問題Git
- [CSS LEARN]層疊上下文、層疊等級、層疊順序CSS
- 使用CCScrollView後,如果有選單,不能拖動【優先順序問題】問題解決View
- 有趣的CSS題目(3): 層疊順序與堆疊上下文知多少CSS
- java中亂碼問題解決方法Java
- cat 輸出亂碼問題解決
- 解決plsql中中文亂碼問題SQL
- TongWeb下亂碼問題解決思路Web
- 解決使用Git Bash亂碼問題Git
- plsql查詢亂碼問題解決SQL
- 解決 plsql 遇到亂碼的問題SQL