UE4中關(guān)于利用粒子系統(tǒng)做軌跡描繪導(dǎo)致系統(tǒng)流暢性下降的問題
前言
之前在利用粒子系統(tǒng)實(shí)現(xiàn)軌跡描繪的時(shí)候,曾提出了“粒子積累后,粒子的產(chǎn)生是否會(huì)對(duì)系統(tǒng)的內(nèi)存帶來(lái)壓力,導(dǎo)致系統(tǒng)運(yùn)行越來(lái)越吃力?”的問題,當(dāng)時(shí)的解決辦法只是簡(jiǎn)單地減少粒子產(chǎn)生的頻率,從而降低系統(tǒng)運(yùn)行壓力。本文圍繞該問題展開一系列關(guān)于利用粒子系統(tǒng)實(shí)現(xiàn)物體軌跡描繪的相關(guān)問題。
前面兩篇文章的鏈接如下:
虛幻引擎4利用粒子系統(tǒng)實(shí)現(xiàn)物體軌跡描繪_ADi_hhh的博客-CSDN博客
虛幻引擎4利用粒子系統(tǒng)實(shí)現(xiàn)物體軌跡描繪2- 消除軌跡_ADi_hhh的博客-CSDN博客
再次回顧該問題的原因是,在仿真中我使用了更多的粒子發(fā)射器來(lái)產(chǎn)生粒子,用以顯示物體的軌跡。而我發(fā)現(xiàn)簡(jiǎn)單的延遲已經(jīng)不能夠滿足我的要求–既能看清軌跡,又盡可能降低仿真系統(tǒng)的壓力。因此,針對(duì)粒子系統(tǒng)的哪些東西影響了仿真系統(tǒng)的流暢性,提出了一些假設(shè)并進(jìn)行了驗(yàn)證。
假設(shè)及驗(yàn)證
1. 過(guò)多的粒子發(fā)射器影響仿真系統(tǒng)
首先我們?cè)诹W赢a(chǎn)生過(guò)程中也在不斷地生成發(fā)射器,可能在ue中這是很愚蠢的做法。不過(guò)以我當(dāng)時(shí)對(duì)虛幻引擎的了解,也只能采用這種方式產(chǎn)生粒子。那么自然而然我們也產(chǎn)生了很多”粒子發(fā)射器“,而這些粒子發(fā)射器在之后我們就不會(huì)用了,因此可能粒子發(fā)射器的數(shù)量太多了從而影響了仿真系統(tǒng)的流暢性。
驗(yàn)證:
因此,我在每個(gè)粒子產(chǎn)生后,經(jīng)過(guò)一段時(shí)間就銷毀對(duì)應(yīng)粒子發(fā)射器,以期待降低粒子發(fā)射器對(duì)仿真系統(tǒng)流暢的影響。
但我們也應(yīng)該注意到,本來(lái)粒子發(fā)射器就有”自動(dòng)銷毀“的設(shè)置。因此在我主動(dòng)銷毀粒子發(fā)射器后,系統(tǒng)的流暢性并沒有顯著的改變。
2. 粒子數(shù)目太多,降低粒子發(fā)射頻率,同時(shí)增大粒子顯示范圍
顯然,粒子隨時(shí)間產(chǎn)生的越來(lái)越多,因此粒子數(shù)目一定是影響系統(tǒng)流暢的一個(gè)因素。但由于我希望看清楚軌跡,因此粒子數(shù)目在某種程度上是不能夠過(guò)少的。但是如果我在降低粒子發(fā)射頻率的同時(shí)增大粒子顯示范圍那?
恰好,粒子發(fā)射器可以設(shè)置粒子顯示的范圍,如下圖所示。
驗(yàn)證:
增大延遲時(shí)間,同時(shí)增大”創(chuàng)建效果的范圍“。
經(jīng)過(guò)測(cè)試后,系統(tǒng)的流暢性有所提升,但是由于粒子數(shù)目減少,軌跡的顯示效果并不佳,因此這也不是一個(gè)很好的方法。
3. 把信息輸出到屏幕浪費(fèi)了太多時(shí)間,導(dǎo)致系統(tǒng)流暢性變差
因?yàn)槲以诜抡嬷惺褂玫膒y代碼計(jì)算控制信息,并打印出來(lái)供我調(diào)試使用,但py的print是很浪費(fèi)時(shí)間的。
因此可能是因?yàn)槲以趐y端輸出print,在ue端把信息輸出到仿真過(guò)程中,浪費(fèi)了時(shí)間,使得大量時(shí)間被用在這樣的過(guò)程中,自然使得系統(tǒng)流暢性變差。
驗(yàn)證:
因此我盡可能地減少py端和ue端的信息輸出,經(jīng)過(guò)測(cè)試后,系統(tǒng)的流暢性有所提升,但提升不多。
4. 產(chǎn)生的粒子渲染使得系統(tǒng)壓力越來(lái)越大,從而流暢性下降
因?yàn)槲沂褂玫氖浅鯇W(xué)者內(nèi)容中自帶的幾款粒子,如下圖所示。
而這些粒子可能需要渲染,而不斷地產(chǎn)生這樣的粒子,從而導(dǎo)致系統(tǒng)性能下降。
驗(yàn)證:
經(jīng)過(guò)不斷修改粒子類型,發(fā)現(xiàn),其中”P_Fire“的粒子嚴(yán)重影響系統(tǒng)的流暢性,可能系統(tǒng)需要針對(duì)該粒子消耗的資源比較多,而越來(lái)越多的該粒子產(chǎn)生,從而導(dǎo)致了系統(tǒng)的性能下降。同時(shí)發(fā)現(xiàn)”P_Fire“與其他的初學(xué)者粒子的信息也有所不同,可能這就是該粒子消耗資源比較多的原因。之后通過(guò)修改粒子類型,修改為我自己設(shè)計(jì)的簡(jiǎn)單粒子,系統(tǒng)的流暢性有著明顯的提升。
fire粒子確實(shí)也比較逼真。
小結(jié)
本文通過(guò)幾種假設(shè)再次解決了利用粒子系統(tǒng)做軌跡描繪導(dǎo)致系統(tǒng)流暢性下降的問題。不過(guò)還是能夠說(shuō)明粒子系統(tǒng)做軌跡描繪并不是虛幻引擎中的最佳選擇,希望以后隨著深入的了解能夠?qū)崿F(xiàn)更簡(jiǎn)單高效的方法。
注:本文中所說(shuō)的仿真系統(tǒng)流暢性下降是仿真系統(tǒng)處理信息和傳輸信息的速度下降。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-667562.html
如果您覺得我寫的不錯(cuò),麻煩給我一個(gè)免費(fèi)的贊!如果內(nèi)容中有錯(cuò)誤,也歡迎向我反饋。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-667562.html
到了這里,關(guān)于UE4中關(guān)于利用粒子系統(tǒng)做軌跡描繪導(dǎo)致系統(tǒng)流暢性下降的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!