Unity 2021.2 版本里更新了一個(gè)編程接口,可以在Compute Shader里直接調(diào)用模型網(wǎng)格頂點(diǎn)緩存去做模型網(wǎng)格形變。
https://github.com/Unity-Technologies/MeshApiExamples
從范例工程的配圖上看,運(yùn)行很絲滑。于是我下載下來跑了一下
確實(shí)很德芙。400x400的網(wǎng)格,做起波浪形變,我這2019年標(biāo)配16寸Macbook還能跑到60幀
那么問題來了,為什么范例場景沒給模型帶貼圖呢
那手動添加一個(gè)測試看看??
直接貼圖就沒了。。。。。
查看了一下網(wǎng)格生成的代碼,好家伙,就沒有給生成UV
這是官方的范例工程啊喂,你們在干什么
好吧,那到我這個(gè)Unity價(jià)值專家出手的時(shí)間了
這個(gè)位置添加上生成UV的代碼,在運(yùn)行
菊花一直再轉(zhuǎn),估計(jì)400x400對于uv生成來說太大了,改成100x100,重試
好么,根本沒法看,切換GPU模式到CPU BURST Threaded,也就是CPU多核并發(fā)實(shí)現(xiàn)的模型頂點(diǎn)操作
果然是GPU模式會對UV產(chǎn)生破壞,其他模式就ok
說明目前網(wǎng)格對象的GetVertexBuffer()方法還不好用
把網(wǎng)格切換回400x400,再運(yùn)行(生成UV大概等待了9分鐘,不過這個(gè)可以用compute shader來縮短)
幀率大概是在34幀上下,不如GPU模式下60zhen幀流暢
所以,首選還是GPU模式,不著急的話,還是等待官方修復(fù)UV問題。