[請益] Unity Compute Shader

作者: planetoid (阿沒)   2017-10-01 23:41:32
大家好
最近應徵工作關係實作了一個particle system
不過之前是用instantiate的方式建立很多gameObject作為particles
現在被要求改成用Graphics.DrawMesh及Compute Shader來實作particle system
由於之前沒有用gpu程式開發的經驗所以不太知道怎麼下手
看了很多examples還是有很多疑問
所以想來板上請問各位高手><
目前的想法是:
1.利用compute shader去計算particles的特徵(position/velocity/orientation...)
2.再利用compute buffer傳回來的資料用drawmesh來畫
不知道這樣的理解對不對
然後documentation提到Mac OS X 不支援OpenGL 4.3
這樣是不是代表不能再mac上面實作compute shader?
感謝各位
作者: cjcat2266 (CJ Cat)   2017-10-02 00:51:00
想法沒錯想法沒錯咦,怎麼字重複輸入了...?其實搜尋Unity compute shader particles就有範例了https://github.com/antoinefournier/XParticle
作者: planetoid (阿沒)   2017-10-02 08:23:00
竟然是EE大學長><我有follow你的blog 十分感謝你!
作者: chowleft (什麼....)   2017-10-02 11:17:00
我記得 DrawMesh 不會作 batch 的樣子可以看一下 Graphics.DrawMeshInstancedIndirect
作者: planetoid (阿沒)   2017-10-02 11:38:00
今天嘗試在mac上run了你貼的example 但出現platform不支援compute shader但嘗試更簡單的example像這個https://goo.gl/DpFRFH卻又可以...不知道為什麼QQ現在再研究不透過compute shader的方法做
作者: chowleft (什麼....)   2017-10-02 13:25:00
所以沒有一定要用 compute shader ?推薦 https://github.com/keijiro/KvantSpray偷偷推薦一下大神的作品他的作法好像是將結果存在 RenderTexture
作者: planetoid (阿沒)   2017-10-02 13:47:00
他是建議用compute shader我也在研究這個 很多東西都超過我理解範圍 太厲害了
作者: chowleft (什麼....)   2017-10-02 14:13:00
恩~ 因為當時沒 compute shader 可用
作者: cjcat2266 (CJ Cat)   2017-10-02 14:37:00
喔喔! RenderTexture相容性也較高,不知效能是否差不多
作者: chowleft (什麼....)   2017-10-02 14:54:00
我也不知....不過用 compute shader 比較有趣 XD
作者: cjcat2266 (CJ Cat)   2017-10-02 15:46:00
其實我有個長遠計畫,是要把以前做的Stardust的可擴充Initializer和Action的概念整合到個客製編輯器中用來生成compute shader http://bit.ly/2fK9bGK只有用到的功能才會生到compute shader中就不用在效能和功能之間找平衡做個折衷kernelGoogle Code已經變成封存模式,範例必須下載才能看...wonder.fl也下架了,好在第三方精華區beauti.fl還在http://beautifl.net/?lang=en&s=stardust&t=stardust
作者: planetoid (阿沒)   2017-10-02 16:02:00
感謝學長分享 我非主修CG的最近才開始還有好多要學啊!
作者: KanoLoa (卡)   2017-10-05 10:01:00
每次看到這版討論graph都會覺得當初大學沒有修圖學是錯誤怪不得跳不進遊戲業
作者: cjcat2266 (CJ Cat)   2017-10-05 13:43:00
自修圖學不嫌晚,我也是買書啃和上網自修的,加油!我建議的流程是,先挑本遊戲3D數學的書,有系統性地把基礎數學工具補齊,然後找個類似Real-Time Rendering這種百科類的資料,略讀一遍,大概知道當前的圖學現況或者直接找Frank Luna的DX書,直接跳下去在螢幕上畫出東西,賺取成就感現在網路資料多,也可以找找有沒有tutorial類的教學系列跟著做,從做中學前提是CS基本功和3D數學要熟,剩下的學起來會比較順暢
作者: KanoLoa (卡)   2017-10-05 16:33:00
謝謝開示 想不到cj竟然是自學的 不可思議啊
作者: cjcat2266 (CJ Cat)   2017-10-06 01:37:00
啊,說全自學其實也不太正確,我是第一個大學沒修圖學從那時開始自學,第二個大學有修圖學,但是我是當複習
作者: planetoid (阿沒)   2017-10-06 09:40:00
哇感謝分享 正在苦思不知道怎麼入門圖學的說

Links booklink

Contact Us: admin [ a t ] ucptt.com