Unity2018新功能搶鮮 | 粒子系統改進

2021-01-14 洪流學堂

本文首發於「洪流學堂」微信公眾號。 
洪流學堂,讓你學Unity快人幾步

Unity2018.1中對粒子系統進行了重大改進,包括功能、性能很多方面,快來看看吧!

GPU網格實例化

粒子系統現在支持GPU實例化來渲染網格。粒子系統使用Procedural Instancing,可以在此處詳細解釋:https://docs.unity3d.com/Manual/GPUInstancing.html

實例化支持已添加到「Particle Standard Shaders」中,並將在所有新內容中默認啟用。舊版內容升級到Unity 2018.1後,可以使用Renderer模塊中的複選框啟用GPU實例化。

還可以將粒子實例化功能添加到自定義的著色器中。這是一個簡單的例子:

Shader "Instanced/ParticleMeshesCustom"
{
   Properties
   {
       _MainTex("Albedo", 2D) = "white" {}
       [Toggle(_FLIPBOOK_BLENDING)] _FlipbookBlending("Flipbook Blending", Int) = 0
   }
   SubShader
   {
       Tags{ "RenderType" = "Opaque" }
       LOD 100
       Pass
       {
           CGPROGRAM
           #pragma vertex vert
           #pragma fragment frag
           #pragma multi_compile __ _FLIPBOOK_BLENDING
           #pragma multi_compile_instancing
           #pragma instancing_options procedural:vertInstancingSetup
           #include "UnityCG.cginc"
           #include "UnityStandardParticleInstancing.cginc"
           struct appdata
           {
               float4 vertex : POSITION;
               fixed4 color : COLOR;
               float2 texcoord : TEXCOORD0;
               UNITY_VERTEX_INPUT_INSTANCE_ID
           };
           struct v2f
           {
               float4 vertex : SV_POSITION;
               fixed4 color : COLOR;
               float2 texcoord : TEXCOORD0;
#ifdef _FLIPBOOK_BLENDING
               float3 texcoord2AndBlend : TEXCOORD1;  
#endif
           };
           sampler2D _MainTex;
           float4 _MainTex_ST;
           fixed4 readTexture(sampler2D tex, v2f IN)
           {
               fixed4 color = tex2D(tex, IN.texcoord);
#ifdef _FLIPBOOK_BLENDING
               fixed4 color2 = tex2D(tex, IN.texcoord2AndBlend.xy);
               color = lerp(color, color2, IN.texcoord2AndBlend.z);
#endif
               return color;
           }
           v2f vert(appdata v)
           {
               v2f o;
               UNITY_SETUP_INSTANCE_ID(v);
               o.color = v.color;
               o.texcoord = v.texcoord;
               vertInstancingColor(o.color);
#ifdef _FLIPBOOK_BLENDING
               vertInstancingUVs(v.texcoord, o.texcoord, o.texcoord2AndBlend);
#else
               vertInstancingUVs(v.texcoord, o.texcoord);
#endif
               o.vertex = UnityObjectToClipPos(v.vertex);
               return o;
           }
           fixed4 frag(v2f i) : SV_Target
           {
               half4 albedo = readTexture(_MainTex, i);
               return i.color * albedo;
           }
           ENDCG
       }
   }
}

使用Instancing可以渲染更多的粒子網格,並且CPU性能更好。

這裡有10,000個球體網格,使用舊的非實例化技術,10fps:

這裡有100,000個球面網格,使用新的實例技術,可以達到100fps:

軌道粒子速度

Unity 2018.1為Velocity over Lifetime模塊添加了一些新選項,使您可以使粒子相對於定義的中心點移動。默認情況下,中心與transform對齊,但可以在模塊內修改。可以使用Orbital參數使粒子繞中心點行進,並使用Radial參數離開/朝向中心點。


紋理形狀模塊

Shape模塊中的所有形狀類型現在都支持紋理。紋理可用於:

控制粒子顏色

控制粒子alpha

根據設置的的閾值和紋理通道丟棄粒子

子發射器

在Unity 2018.1中有兩種新的產生子發射器的方法。第一種是通過觸發模塊,其工作方式類似於子碰撞模塊產生子發射器的方式。只需在子發射器模塊中選擇觸發器作為子發射器類型,然後當觸發器模塊內部滿足條件時(例如粒子進入碰撞體積),相應的子發射器將被觸發。

觸發子發射器的第二種新方法是通過腳本。添加了一個名為TriggerSubEmitter 的新API ,可用於為單個粒子,粒子列表或所有粒子觸發子發射器。在子發射器模塊中,您可以選擇Manual作為生成類型,該生成類型告訴粒子系統該發射器只能通過腳本中的調用觸發。也可以使用現有的類型(例如Collision 或Death ),並通過腳本為這些子發射器添加其他觸發器。

舊粒子系統退役

繼續維護舊粒子系統成了每個Unity版本的開發負擔。新引擎功能(如VR和多線程渲染)需要花費更多時間來確保引擎的兼容性。當添加新的引擎功能時,需要花很多時間維護傳統粒子系統代碼。

這促使Unity開發團隊採取下一步措施來淘汰舊粒子系統。因此,在Unity 2018.1中將刪除它的Script Bindings。

自Unity 5.4以來,舊粒子系統已被完全棄用,Unity官方的統計顯示幾乎不存在使用情況。Unity團隊的目標是到Unity 2018.3完全刪除Legacy Particle System。

如果這會影響到你,你有一些選擇:

加權切線(動畫曲線)

動畫團隊已加入對加權切線的支持,以支持Unity中的所有曲線編輯。這意味著你也可以在粒子系統中使用這個新功能!

加權切線用法

Unity:世界領先的遊戲,VR/AR引擎
《鄭洪智的Unity2018課》,傾盡我8年的開發經驗,結合最新的Unity2018,帶你從入門到精通。
目前預售拼團,5.5折!

相關焦點

  • 使用Unity 粒子系統實現 2D 人物足跡效果
    之後深入一想腳本大概要怎麼寫,感覺頭大的不行,又想到了 Hierarchy 裡面被 FootStep12345678 塞得滿滿當當的壯麗場面..還是換個方法吧 轉念一想:unity 的粒子系統似乎可以滿足所有特性:生成淡出銷毀全自動,跟隨人物也是基本操作,比較存疑的就是用腳本控制粒子的鏡像與旋轉。
  • 搶鮮披露Windows Server 2008 R2新功能
    搶鮮披露Windows Server 2008 R2新功能 當Windows Server 2008 R2在2009年或者2010年發布的時候(這是目前預計的時間段),這個發布版本將有一些重要的功能
  • Unity粒子系統小技巧X1
    幾個方法都是用unity粒子系統裡面的Velocity over lifetime(不知道這是什麼的去學基礎課)第一個方法我們看到這三個軸向都是用這個形狀的雙曲線首先A部分,這是給粒子一個速度,讓它跑出去,然後停下來B部分,是給一個和一開始相反的速度讓粒子回去它出來的地方C部分,是讓粒子在外面停留
  • Unity 推出最新2018.1版本啦!新增改進超300項
    此次Unity 2018.1 beta中加入了不少新的特性和改進,例如針對GI的GPU Istancing支持、針對導入設置和組件的編輯器Presets、新的粒子系統改進等等。在諸多功能更新中,新的實時渲染架構選項Scriptable Render Pipeline(以下簡稱SRP)吸引到不少注意,SRP將把遊戲渲染畫面的品質直接提高到能與影視品質媲美的地步。
  • unity2018粒子系統全息講解_坑深慎入(一)
    Looping(循環):讓粒子發射時間循環起來,一直發射粒子。       Prewarm(預熱):開始播放粒子是已經是發射了一段時間的。只在looping循環時才有效。       StartDelay(開始延時):粒子系統創建後隔多久後才開始發射粒子。如果有Prewarm則沒法設置延時。值是秒。
  • Unity 2018.3 Beta版發布
    直播課程:Facial AR Remote面部捕捉解決方案課程(第一期)直播地址:https://connect.unity.com/events/unitychina-facialarUnity官方教師培訓報名火熱進行中Unity將在10月22-26日,舉辦為期5天的專業的Unity官方教師培訓課程,誠邀廣大教師與
  • 中文漢化版-AE超炫特效粒子插件Trapcode Particular 3+新功能介紹
    中文漢化版-AE超炫特效粒子插件Trapcode Particular 3+新功能介紹,包括支持OBJ作為發射器,300多個預設等,書生獨家漢化Trapcode Particular 3是Redgiant公司出品的一款
  • 遊戲粒子碰撞魔法特效Unity遊戲素材資源
    人人素材社區-最專業的CG藝術交流網站小夥伴們玩遊戲時遇到打鬥的畫面會不會感覺很爽,法術碰撞會產生格外好看的效果,這些特效是怎麼做出來的呢,今天為就大家介紹一款遊戲粒子碰撞的魔法特效素材,一起來了解一下。
  • Unity技術分享(100)| Texture2DArray、粒子系統的性能開銷……
    UWA QQUWA 問答社區:answer.uwa4d.com粒子系統Q:請問粒子系統的消耗如何區分呢?哪部分是在CPU哪部分在GPU呢?一個空粒子(禁用所有模塊,包括Render)會有消耗嗎?如果有消耗,會體現在哪部分呢?
  • Unity 最新版本迎來260項功能改進,高清渲染管線HDRP升級
    最新上線的Unity 2019.3版本帶來了超過260項功能改進,其中的高清渲染管線(HDRP)功能可在高端遊戲主機和PC上解鎖高清精美畫質的無限潛能。高清渲染管線在2019.3中經過驗證幾近純熟,帶來了全新的功能和藝術創作工具,可用於製作高保真圖像。
  • 28組炫酷多彩遊戲粒子碰撞爆炸特效Unity遊戲素材資源
    人人素材社區-最專業的CG藝術交流網站在遊戲中我們是不是總會看見爆炸的場面感覺既炫酷又刺激呢  這種效果又是怎麼形成的呢今天為大家帶來就粒子碰撞爆炸特效快讓我們看看這種特效究竟是怎麼回事吧本遊戲資料是個關於28組炫酷多彩遊戲粒子碰撞爆炸特效Unity遊戲素材資源,大小:1MB ,
  • 2021新年匯總:Unity項目原型快速開發資源,看這一篇就夠
    Example Game : https://assetstore.unity.com/packages/templates/flappy-bird-style-example-game-80330 Tower Defense Template : https://assetstore.unity.com/packages/essentials
  • 微軟將直接推送新功能體驗包,無需升級系統
    打開APP 微軟將直接推送新功能體驗包,無需升級系統 雪花 發表於 2020-12-01 09:17:54 據外媒最新報導稱,微軟已經在Windows 10添加了一個名為 「 Windows Feature Experience Pack 」(功能體驗包)的新項目,這主要是帶來了一個新的體驗,就是不用升級系統,也能體現新更新的功能。
  • Unity 實用技巧 - 物理系統初識
    官方文檔:https://docs.unity3d.com/Manual/PhysicsSection.html01  Rigidbody(剛體)/ Rigidbody2D(2D剛體)在使用文檔連結:https://docs.unity3d.com/cn/current/Manual/PhysicsDebugVisualization.html最後,小編特別推薦一些其他大神分享的內容。
  • Unity3D 尋路系統
    https://docs.unity3d.com/Manual/class-NavMeshAgent.html四、組件Nav Mesh Obstacle的使用http://docs.unity3d.com/Manual
  • Windows 10 20H2新功能無需升級系統也能體驗
    來源:新浪VR微軟將在10月份推送Windows 10下半年最重要的更新,將系統升級到Windows 10 20H2。在這個版本中,開始菜單、Alt-Tab、任務欄、通知等功能都有所改進。微軟在9月周二補丁日推送的更新中似乎已經包括了20H2的新功能。在KB4571756和KB4566782中,新功能被隱藏了,但是你可以通過修改註冊表來開啟它們。如果你想嘗試新的開始菜單、Alt-Tab體驗和通知,可以按照以下步驟操作。
  • Unity推出的AR Foundation能幫助使用者解決AR開發過程中遇到的難題
    打開APP Unity推出的AR Foundation能幫助使用者解決AR開發過程中遇到的難題 工程師青青 發表於 2018-09-11 09:51:00
  • 醫聯與美國醫學會雜誌達成合作 「JAMA 搶鮮看」欄目正式上線
    與籤約儀式同步,醫聯與JAMA共同打造的「JAMA 搶鮮看」欄目已經在醫聯平臺上線。「JAMA 搶鮮看」將結合國際、國內醫學熱點話題,選取JAMA及JAMA Network旗下子刊文章精粹、摘要,翻譯成中文文獻供國內的醫生群體在線學習。
  • 醫聯與美國醫學會雜誌達成合作 「JAMA 搶鮮看」正式上線
    雙方宣布,醫聯與JAMA共同打造的「JAMA 搶鮮看」欄目在醫聯平臺上線。 據介紹,「JAMA 搶鮮看」將結合國際、國內醫學熱點話題,選取JAMA及JAMA Network旗下子刊文章精粹、摘要,翻譯成中文文獻供國內的醫生群體在線學習。
  • 非凡影視制效師簡析:Maya的新功能將為特效製作帶來哪些便利?
    作為一款3D模型&動畫軟體,Maya在建模、動畫以及特技的製作等方面具有強大的功能,其內部含有最先進的粒子特效系統,操作程序也相對簡易,在影視製作中應用廣泛。近日,Autodesk發布了Maya 2020.2和Maya LT 2020.2新功能的在線文檔,這些新功能將會為特效師提供怎樣的便利?跟著小凡一起來了解一下吧!