Visual Effect Graph——管線工具

一 暴露屬性類

ExposedProperty 類是一個幫助類,它根據屬性的名稱存儲屬性ID。賦給一個暴露的屬性(ExposedProperty )的值是一個着色器屬性的字符串名。類自動調用使用着色器屬性名作爲參數的Shader.PropertyToID(string name)函數,並存儲函數返回的整數ID。當您在組件API(component API)中的屬性、事件或EventAttribute方法中使用這個類時,它會隱式地使用這個整數。

當你想要訪問一個材質屬性,您可以使用屬性的名稱或ID。它通常是更容易使用的名稱屬性,然而更有效使用屬性的整數ID。這個類很有用,因爲它結合了方便使用屬性名和使用屬性ID的效率。

代碼實例

ExposedProperty m_MyProperty;
VisualEffect m_VFX;

void Start()
{
    m_VFX = GetComponent<VisualEffect>();
    m_MyProperty = "My Property"; // Assign a string.
}

void Update()
{
    vfx.SetFloat(m_MyProperty, someValue); // Uses the property ID.
}

二 向量字段/有符號距離字段

該功能目前處於試驗階段,可能會在以後的主要版本中進行更改。

向量字段和符號距離字段是包含存儲在三維像素中的值的3D字段。這些是可用的三維紋理在視覺效果圖,並可以使用卷文件(.vf)文件格式導入。

卷文件是一個開源規範(Open Source specification),它包含存儲浮點數據的基本結構。VF文件在unity中自動導入爲3D紋理,可用於視覺效果圖形塊和輸入3D紋理的操作符(如向量字段或有符號距離字段塊)。

向量字段輸入者

當導入VF文件時,unity在檢查器中提供以下設置:

Output Format 輸出格式:輸出3D紋理的精度

  • Half :浮點數,精度爲16位的一半
  • Float 浮點數:32位單精度浮點數
  • Byte 字節:8位精度的無符號定點值

Wrap Mode ——循環模式:輸出紋理的換行模式

Filter Mode—— 過濾模式:輸出紋理的過濾模式

Generate Mip Maps ——生成Mip貼圖:是否生成紋理的Mip貼圖

Aniso Level—— Aniso水平:各向異性水平

生成向量字段文件


你可以生成點緩存使用各種方法:

  • 使用與VFXToolbox綁定的Houdini VF導出器(位於/DCC~文件夾中)
  • 通過編寫自己的導出器來編寫符合規範的VF文件(VF Files)。

三 點緩存

該功能目前處於試驗階段,可能會在以後的主要版本中進行更改。

點緩存是一種特殊的資產類型,它綁定了一個點計數( Point Count),以及一個或多個attributemap(One or Many AttributeMaps)包含每個屬性值的列表,這些屬性值列表被嵌入到紋理中。

這些點緩存可以在圖中使用點緩存(Point Cache)操作符來訪問所有這些值,因此可以在從Attribute from Map塊中讀取這些值。

點緩存資產

點緩存資產遵循開源點緩存 (Point Cache)規範,並作爲綁定的可編寫腳本的對象導入。每個. pcache擴展文件都將被導入到一個綁定的腳本對象中,這樣就可以與點緩存操作符一起使用了。

點緩存操作符

點緩存資產可以在點緩存操作符中引用,因此它將顯示其點計數和點緩存資產中包含的屬性映射列表。根據設置字段中的資產集,輸出的編號和名稱將動態更改。

生成點緩存

你可以使用以下方法生成點緩存:

四 點緩存烘焙工具

點緩存烘焙工具是一個實用工具窗口,可以從幾何數據或紋理生成點緩存資產。它提供了分散點和從輸入獲取屬性的基本功能。

打開工具

點緩存烘焙工具窗口可以通過菜單訪問:

Window > Visual Effects > Utilities > Point Cache Bake Tool

使用該工具

工具窗口提示,頂部有兩種烘焙模式:

  • Mesh 網格:從一個幾何圖形烘焙點緩存。
  • Texture 紋理:從一個紋理烘焙點緩存。

從一個幾何圖形烘焙

當使用網格烘烤模式。窗口顯示如下網格烘焙屬性:

・Mesh 網格(Mesh):用於烘烤的Mesh對象

・Distribution 分佈(Enum):使用的點散射技術。

  • Sequential:將在每個原始的點或頂點上按順序衍生一個點
  • Random 隨機:將在每個原始的點或頂點上隨機產生一個點,而不考慮原始區域。
  • Random Uniform Area隨機均勻區域:在每個原始的點隨機生成一個點,同時考慮原始區域。

・Bake Mode烘焙模式(Enum):(僅當使用順序/隨機分佈時)允許選擇每個頂點或每個三角形。

・Export Normals導出法線(bool):是否將法線導出到點緩存

・Export Colors導出顏色(bool):是否將頂點顏色導出到點緩存

・Export UVs導出uv (bool):是否將uv導出到點緩存

・Point Count 點計數(uint):輸出點計數

・Seed種子(uint):用於這一代的隨機種子

・File Format 文件格式(Enum):用於編碼的格式(Ascii或二進制)

在Mesh屬性中設置一個Mesh之後,下面的UI就變得可見了:

・Save to pCache file保存到pCache文件…(按鈕):單擊此按鈕將提示您一個保存文件對話框,以便將計算出的點緩存保存到資產。

・Mesh Statistics網格統計(組):關於幾何文件的統計

  • Vertices 頂點:頂點計數
  • Triangles 三角形:三角形計數
  • Sub Meshed子網格:幾何圖形中包含的子網格的數量

從一個紋理烘焙

使用紋理烘焙模式時。窗口顯示如下網格烘焙屬性:

・Texture 紋理(紋理):用於烘焙的2D紋理對象

・Decimation Threshold抽取閾值(Enum):使用的抽取閾值模式。

  • Alpha :使用Alpha通道
  • Luminance 亮度:使用合併的RGB通道的亮度
  • R :使用紅色通道
  • G :使用綠色通道
  • B :使用藍色頻道

・Threshold 閾值(float):用於小數點的閾值(如果相應的值低於閾值屬性)

・Randomize Pixel Order隨機像素順序(bool):隨機點,而不是按像素行/列排序。

・Export Colors導出顏色(bool):是否將顏色導出到點緩存

・File Format文件格式(Enum):用於編碼的格式(Ascii或二進制)

在網格屬性中設置一個紋理後,下面的UI變得可見:

・Save to pCache file保存到pCache文件…(按鈕):單擊此按鈕將提示您一個保存文件對話框,以便將計算出的點緩存保存到資產。

・Texture Statistics 紋理統計(組):關於紋理文件的統計

  • 寬度:紋理的寬度(以像素爲單位)
  • 高度:紋理的高度(以像素爲單位)
  • 像素數:紋理的像素數(寬度*高度)

五 生成器回調

該功能目前處於試驗階段,可能會在以後的主要版本中進行更改。

派生回調是一個c# API,它支持定義自定義運行時行爲,併爲生成環境創建新的塊。

生成回調使您能夠執行以下操作:

  • 控制生成環境狀態(播放、停止、延遲)
  • 讀取/寫入輸出生成計數
  • 讀/寫SpawnEvent屬性

寫生成器回調

API的完整引用可以在這裏(here)找到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章