unity3d學習 粒子光環

2021-08-20 07:43:53 字數 3894 閱讀 6281

摘要:粒子是粒子系統管理的基本單位。一般它是材料(material)。材料包含兩個內容,紋理(texture)、shader,分別負責形態、光照效果、兩個方面。通常,粒子系統包含基礎材料庫供使用者選擇。粒子系統

是模擬一些不確定、流動現象的技術。它採用許多形狀簡單且賦予生命的微小粒子作為基本元素來表示物體(一般由點或很小的多邊形通過紋理貼圖表示),表達物體的總體形態和特徵的動態變化。如雨雪風雲等現象。

本週作業:

本次作業基本要求是三選一

1、簡單粒子製作

2、完善官方的「汽車尾氣」模擬

3、參考 這類**,使用粒子流程式設計控制製作一些效果, 如「粒子光環」

而且可以注意到unity已經給了我們一些標準的粒子系統,如果我們發現有近似可用的可以直接匯入修改一下使用。其中匯入標準粒子資源的方法:

從選單 assets -> import package -> particles 匯入系統提供的粒子資源

這次完成的作業主要是參考師兄以前的作業實現了

粒子流程式設計控制製作一些效果,並且增加了光束和閃光**圈的一點小效果。其中大概設想的效果靜態圖如下所示:

這是gif圖,還是使用程式設計來控制粒子最外兩圈光環的效果,增加了從中心向四周散射光線的效果和普通光圈效果。

其中最外兩層的關關主要是

的效果。

實現思路:

觀察效果發現光環由兩層順時針轉動的環組成

如下圖,黑色圓環層粒子分布比較疏鬆範圍廣,紅色圓環層密集而且有兩個對稱的缺口,並且紅色順時針轉動速度較快 (其實下面那層黃色的粒子也真的好好看)

1.我們要首先定義新的結構circleposition,用來記錄每個粒子的當前半徑、角度和時間,其中時間是做游離運動需要的。

public class circleposition  

}

2.宣告變數:粒子系統和粒子的活動的一些係數。

宣告particlehalo的私有變數,粒子系統和粒子是必須的,circleposition對應每個粒子,因此也是必須的。

private particlesystem particlesys;  // 粒子系統  

private particlesystem.particle particlearr; // 粒子陣列

private circleposition circle; // 極座標陣列

private int tier = 10; // 速度差分層數

//粒子的一些活動係數

public int count = 10000; // 粒子數量

public float size = 0.03f; // 粒子大小

public float minradius = 5.0f; // 最小半徑

public float maxradius = 12.0f; // 最大半徑

public bool clockwise = true; // 順時針|逆時針

public float speed = 2f; // 速度

public float pingpong = 0.02f; // 游離範圍

3.初始化設定,粒子活動由程式設計控制,所以記得要把粒子的初始速度設定為0。

void start ()
4. randomlyspread將所有的粒子隨機分布在圓圈軌道上。

void randomlyspread()

particlesys.setparticles(particlearr, particlearr.length);

}

5.差分層實現粒子運動效果的多樣性,並且引入pingppong函式來加強粒子效果(這一部分使用了sin,cos和pingpong等函式,最好先了解一下)。

void update () 

particlesys.setparticles(particlearr, particlearr.length);

}

6.上面基本實現了我們的程式設計控制粒子光環,現在是來增加一些顏色,材質,光線等一些效果,達到上面我們想要實現的效果:

(1)其中inner表示內層的粒子光環,金黃色部分,guang是從中心向四周發射的光線,ring是普通光環,outer是外層紫色光環。其中inner和outer粒子程式設計控制。金黃的粒子光圈引數設定:

材質選擇的是firecloud,本身就是金黃色,蠻好看的。注意設定效果時間以及looping

(2)外層紫色光環設定大致相同,只是增加了乙個顏色控制還有改變了粒子運動光環的半徑大小還有粒子數目。但切記給這兩個光環掛上我們的**文字。

(3)光線的設定

也就是這樣的乙個效果。

首先自己做乙個粒子材質,等一下掛在renderer那裡,具體做法:create material ->選擇shader particles/additive ->選擇合適的實現效果

(4)普通光圈的設定,大同小異,就是修改引數,每個人都可以實現自己想要的效果。

心得體會:這一塊很有趣,引數一變效果就有很大差異,也是自己琢磨了好久嘗試了好多種粒子光環,師兄的**真的非常棒,效果也很好。粒子流程式設計控制可以加強。

Unity3D 粒子光環

先在介面中加入乙個空白物件,增加兩個子物件,子物件下新增粒子系統 在旁邊的inspector中,由於default particle的亮度挺低的 雖然現在的也挺低的 我在asset store中匯入了新的乙個粒子包,設定了粒子 首先在指令碼中定義一些需要用到的資料 private particles...

Unity3d 粒子光環

這一次做的是用粒子流程式設計做乙個粒子系統,參考了師兄的部落格。效果展示 基本配置 首先,開啟unity並建立乙個空的物件,這裡我命名為particalhalo,然後在particalhalo下建立兩個空物件,分別為inner和outer,並為兩個物件新增粒子系統particle system。到這...

Unity3d 粒子工具注釋

今天群裡有人問到瀑布粒子如何調整尺寸。我查到ellipsoid可以調節產生粒子的空間範圍,然後還需要調節粒子的長度。他那個瀑布太長了。max energy和min energy這兩個引數可以用來控制粒子的最大生命週期,以秒為單位。如果減少這個時間,瀑布的生命周期短,自然就短了。下面列出一些屬性的翻譯...