最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

利用 VFX 制作特效為作品賦能添翼

2023-03-23 15:30 作者:Unity官方  | 我要投稿

VFX Graph 是 Unity 的新特效工具,創(chuàng)作者們可以使用 VFX Graph 編輯器中的節(jié)點(diǎn)來設(shè)計(jì)特效。在廣東省游戲產(chǎn)業(yè)協(xié)會(huì)與 Unity 中國(guó)聯(lián)合主辦的 IGDC 國(guó)際游戲開發(fā)者大會(huì)中,Unity 中國(guó)技術(shù)美術(shù)黃東俊先生以“利用 VFX 制作特效”為主題,講解如何更好使用 VFX Graph,同時(shí)分享多項(xiàng)經(jīng)典應(yīng)用案例。VFX Graph 讓科技與藝術(shù)緊密相連,為藝術(shù)家和游戲開發(fā)者提供豐富的創(chuàng)作空間,突破傳統(tǒng)束縛,構(gòu)建出游戲藝術(shù)新的語言方式。

請(qǐng)?jiān)?Unity 社區(qū)專欄(https://developer.unity.cn/projects/641174fdedbc2a34b85ad221)查看本文原文及高清動(dòng)圖、Demo 案例,持續(xù)關(guān)注 Unity 官方技術(shù)干貨。



Hello,大家好,我是黃東俊,Unity 的技術(shù)美術(shù)。我今天和大家分享特效的一個(gè)制作工具,不僅可以制作非同反響、炫酷的效果,而且它模擬的數(shù)量級(jí)可以達(dá)到數(shù)百萬以上級(jí)別。


VFX概述

我們先看一個(gè)概述。什么是 VFX?

下面這個(gè)界面就是 VFX 在制作特效時(shí)的過程。首先,它是一個(gè)次時(shí)代的特效工具。它可以制作一些很炫酷的效果,本身是基于節(jié)點(diǎn)的方式,而這種方式是行業(yè)的趨勢(shì)。其次,它也是一個(gè)可編輯的、易擴(kuò)展的工具。節(jié)點(diǎn)本身就是所見即所得的,可以隨意拖拽一些效果,也支持用代碼去擴(kuò)展節(jié)點(diǎn)。第三,用戶可以定義參數(shù)或定義事件。第四,因?yàn)檫@個(gè)工具本身是在 GPU 上面做計(jì)算的,它對(duì)設(shè)備的芯片有一定要求,需要支持 Computer Shader。



另外,這個(gè)工具是面向美術(shù)制作的,它可以讓美術(shù)特效的制作非常絲滑,這是它本身是節(jié)點(diǎn)所帶來的好處,也可以讓美術(shù)同學(xué)擴(kuò)展各種各樣的效果。其次,節(jié)點(diǎn)其實(shí)是一個(gè)行業(yè)趨勢(shì),我們發(fā)布的可視化編程的工具,包括 DCC 工具、Houdini 這樣的工具都是以節(jié)點(diǎn)去制作的。以前我們這個(gè)工具只支持 HDRP,現(xiàn)在也可以支持 URP。



另外,我想介紹一下 VFX 和傳統(tǒng) CPU 的粒子系統(tǒng) Particles System 的區(qū)別:

  • 第一就是粒子的數(shù)量。Particles System 只能模擬少于一萬個(gè)的粒子數(shù)量,因?yàn)樗枰?CPU 計(jì)算,如果粒子數(shù)量太多,CPU 的壓力會(huì)很大。我們新的 VFX 粒子系統(tǒng)可以模擬數(shù)百萬級(jí)別的粒子數(shù)量。

  • 第二,過去 CPU 的粒子系統(tǒng)一般來說只能模擬一些比較簡(jiǎn)單的粒子,像流體這種復(fù)雜的粒子模擬用 GPU 去模擬會(huì)更好。

  • 第三,我們這個(gè) GPU 的粒子系統(tǒng)并不是為了取代 CPU,它們各有優(yōu)勢(shì)、各有缺點(diǎn)。關(guān)于物理的方面,CPU 的粒子系統(tǒng)模擬一些物理時(shí)基于我們引擎的物理系統(tǒng)就可以做到,如果用 GPU 去模擬物理耗費(fèi)的代價(jià)會(huì)更大,要計(jì)算數(shù)百萬粒子級(jí)別的物理壓力也會(huì)很大。

  • Gameplay 方面,過去的粒子系統(tǒng)其實(shí)做一些游戲邏輯業(yè)務(wù)的時(shí)候會(huì)更方便,新的 GPU 粒子去做游戲邏輯時(shí),首先要把很多場(chǎng)景的數(shù)據(jù)傳給 GPU,做起來可能會(huì)稍微復(fù)雜一點(diǎn)。

  • 最后,我們的 GPU 粒子系統(tǒng)可以讀取 Frame Buffers,去做想要的效果。



VFX關(guān)鍵概念

接下來講一下 VFX 在制作過程中的一些概念。

我們把 GPU 的粒子系統(tǒng)分成三層。最下面這一層是特效的使用者,在設(shè)計(jì)好的特效上面進(jìn)行調(diào)參,設(shè)置交互,暴露的參數(shù)可以用代碼修改,不需要復(fù)雜的知識(shí),適合所有特效/關(guān)卡藝術(shù)家/程序。第二層是特效制作家,可以在這個(gè)系統(tǒng)上生產(chǎn)特效資源。最上面這一層是開放給更高級(jí)的特效藝術(shù)家或 TA 同學(xué),提供了自定義拓展的功能,note 和 block 都可以擴(kuò)展,可以自己定義一些節(jié)點(diǎn)。



這三層在工作過程中簡(jiǎn)單展示如下圖。最左邊這一層是去編輯一些參數(shù),中間這一層是特效師制作特效,最右邊這一層是可以通過代碼的方式擴(kuò)展 VFX 的工具。



接下來我會(huì)講 VFX 工具執(zhí)行的邏輯。

首先,我們把這個(gè)工具定義為一個(gè) contexts。類似于 MonoBehavior,粒子的產(chǎn)生、初始化、每一幀的 update、最后的輸出渲染到屏幕上面,分為這四大塊。四大塊里面又有很多 blocks,去定義在每個(gè)階段我們的粒子要執(zhí)行什么樣的事情,它是從上往下執(zhí)行的。另外,特效師在制作粒子的時(shí)候會(huì)連很多節(jié)點(diǎn),這些節(jié)點(diǎn)是從左到右執(zhí)行的,然后把結(jié)果再輸出給 contexts 里面的每個(gè) block。



下面就是剛剛所說的 contexts,分為 4 個(gè)階段:

第一階段是初始化粒子,就是粒子怎么產(chǎn)生,產(chǎn)生的數(shù)量是多少。第二個(gè)階段是初始化這些粒子的屬性,可以在這里定義粒子的大小、速度和方向。第三個(gè)階段執(zhí)行更新邏輯,可以每一幀 update 粒子要做什么事情。最后 Output 階段再把粒子渲染出來,我們提供了很多的選擇,可以使用不同的 shade 去渲染粒子。我們也提供了一個(gè)事件的機(jī)制,比如粒子在某一個(gè)階段里放完了,想放第二個(gè)階段的粒子,可以通過事件的方式去播放另外一個(gè)階段的粒子。



接下來介紹粒子生成的方式。我們提供了很多種粒子生成的方式,比如持續(xù)性生成、根據(jù)距離生成,或一次性把所有的粒子噴射出去。



第二是關(guān)于粒子屬性的控制,我們提供了很多 blocks,可以讓用戶在初始化里定義很多種顏色、大小、速度、生命周期。



接下來講一下粒子生成位置的方式。比如,可以按照一條直線的方式生成,也可以按照可編輯的圓錐、cycle 或 cube 的方式生成。



粒子的方向也可以做很多控制,比如按照它的生命周期改變粒子速度,或者在執(zhí)行過程中提供一個(gè)新的方向或隨機(jī)的方向。



上文 demo 中有一個(gè)傳送門的效果,就是按照這種圓形方式去發(fā)射粒子。



我們?cè)谶@里有一個(gè)粒場(chǎng)的概念,即怎樣給粒子施加力。我們提供了很多方式,比如第一個(gè)就是 SDF 的方式,讓粒子被 conform 到一個(gè) SDF(Signed Distance Field)的表面,或者 conform 到一個(gè)比較簡(jiǎn)單的 mesh 上面。還可以用力場(chǎng)(Vector Field)的方式去提供粒子的方向。



另外,我們也做了一些碰撞處理。首先可以簡(jiǎn)單地用一個(gè) AABox 或者是簡(jiǎn)單的 mesh,比如一個(gè)平面,去做一些碰撞。如果要在場(chǎng)景里面做比較復(fù)雜的碰撞,可以采樣一張深度圖作為一個(gè)碰撞。還可以把 mesh 生成一個(gè) SDF,它會(huì)讓粒子跟這個(gè) SDF 發(fā)生一些碰撞。SDF 我們也提供了一個(gè)烘焙的工具,可以在這個(gè)工具上面生成一個(gè) SDF 文件。



VFX實(shí)用功能

接下來講一些 VFX 比較有用的功能。首先,我們提供了一個(gè)模塊化的方式,可以自己定義一些 blocks。



這個(gè)是我們?cè)谫Y源制作管線方面的工具,比如用戶可以拿到一些序列幀,在這個(gè)里面去合成一個(gè) flipbook,幫助用戶在播放特效的時(shí)候使用這些序列幀。



我們也制作了一些與 DCC 軟件結(jié)合的工具,比如用 Maya、Blender 都可以直接輸出資源文件到 VFX 使用。還包括更多序列幀工具、SDF 制作和量產(chǎn)的工具。



另外介紹兩個(gè)工具,可以讓 mesh 生成一個(gè)點(diǎn)云(point cache),或者將一個(gè) mesh 轉(zhuǎn)成 SDF。這些工具在拉下 VFX 這個(gè)包的時(shí)候都能看到。



VFX Demo

接下來介紹一些 VFX 制作的 demo。

下面是我制作的一個(gè)簡(jiǎn)單的 demo。這里大概有 10000 條魚,可以跟著鼠標(biāo)運(yùn)動(dòng)。它的制作方式很簡(jiǎn)單,如果沒有 VFX 這個(gè)工具的話,用戶可能需要寫很多代碼,但是利用 VFX 用戶只需要寫一個(gè) Compute Shader,把這個(gè) Shader 傳到 VFX 里面。我們的 VFX 可以采樣 Graph Buffer,只需要按照每個(gè)粒子的 ID 去采樣,就可以生成這樣的效果。



還有一個(gè)比較簡(jiǎn)單的例子——角色走過這些落葉的時(shí)候,落葉會(huì)往上飄。過去制作這個(gè)效果可能需要把角色的軌跡記錄成一張 RT,再按照這些粒子去采樣這個(gè) RT,給它施加力。如果使用 VFX,只需簡(jiǎn)單幾個(gè)節(jié)點(diǎn)就可以制作:首先把角色生成一個(gè) SDF 的文件,然后根據(jù)粒子 ID 去采樣這個(gè) SDF,最后再根據(jù)采樣結(jié)果施加一些力。我們也提供一個(gè)可以綁定游戲?qū)ο蟮哪_本,它會(huì)實(shí)時(shí)更新這個(gè)對(duì)象的位置給 VFX。



查看更多 VFX 制作的炫酷 demo,可以訪問 Github:

https://github.com/Unity-Technologies/VisualEffectGraph-Samples



利用 VFX 制作特效為作品賦能添翼的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
舞阳县| 逊克县| 仁怀市| 日土县| 丰县| 南平市| 翁牛特旗| 图们市| 济源市| 雅安市| 通河县| 五河县| 宜兴市| 甘孜县| 英超| 马山县| 杭锦旗| 南宫市| 达日县| 峨眉山市| 安远县| 衡水市| 文昌市| 望奎县| 旬邑县| 邢台县| 阿拉善右旗| 吴旗县| 陈巴尔虎旗| 新民市| 龙陵县| 康平县| 象山县| 姚安县| 晋城| 咸丰县| 山丹县| 大宁县| 阿荣旗| 澳门| 颍上县|