유니티 - Custom Vertex Stream and Shadergraph/Amplify Shader



유니티 - Custom Vertex Stream and Shadergraph/Amplify Shader

금별 0 9,018 2019.12.29 23:02

 

 

 

Since few weeks, I saw many questions about ’ Custom Vertex Stream ’ (called CVS here) on Shuriken with Shadergraph/Amplify Shader

First, here a really good post about CVS by Mirza Beig where a lot of things are explains : http://www.mirzabeig.com/tutorials/intro-to-custom-particle-vertex-streams/ 102

I will only tacle how to link CVS and Shadergraph/Amplify Shader!

Here the shader we will use for Shadergraph:

 

Base_Shader


And here the shader we will use for Amplify Shader:

 

Base_Amplify

 

1: UV channel selector, the first important part in the shader
2: RGBA split component, the second important part!
The only difference between the two shadernode editors is the uv channel:
Shadergraph starts at 0
Amplify starts at 1

Let’s go to Shuriken now ! We add a new material with the shader we created in Shuriken renderer.
The setup is the simpliest as possible, only one particle and only the one ’ Custom Data ’ in CVS (we can’t delete the Position!)

 

Shuriken

 

1: Enable CVS and add a Custom1.xyzw data

 

Shuriken_1

 

2: Enable ’ Custom Data ’ module, set the Custom1 to Vector and 4 component

Custom1 is setup like that:
X : Start at 1 and decrease to 0 at midlife
Y : Start at 0 and at midlife go to 1
Z : Const 0
W : Const 0

And here the result you should have:

 

Result_1

 

Let’s describe a bit what happens!

 

Liens


CVS and Custom Data :

- It’s simple, the Custom1 in CVS is the Custom1 in Custom data. You can animate here the XYZW component with const, curve or color.
CVS and Shadergraph/Amplify :

- Near Custom1 in CVS, we can see Unity give us a tip on how to link that in Shadergraph/Amplify with (TEXCOORD0.xyzw). TEXCOORD is our UV channel and the 0 say it’s our first UV channel.
We can resume with this array

Array

 


But what if we have more data to send ? Our best friend become the number near TEXCOORD
Here a case :

 

many


In resume we have:

- TEXCOORDX = UV channel X for Shadergraph and UV channel X+1 for Amplify.
- XYZW = RGBA for Shadergraph and UVWT for Amplify
One particular thing we see with StableRandom.xyzw is the TEXCOORD2.yzw**|**x
Unity wants to say us ’ StableRandom.xyzw starts in TEXCOORD2.yzw and finishes in the next one,TEXCOORD3.x ’


And here we go! We can now make crazy SHEBAM ! POW ! BLOP ! WIIIZZ !
I hope this can help, forgive me my language mistakes, don’t hesitate to correct me to make this a bit clearer or add/remove/correct any informations!

 

 

 

 

 

Another User example

 

image

Using this feature you can make texture panning from curve x if you have UV output Z(W in amplify). It will be one curve for your Z value and panning. I don’t know where you can use it, but anyway…

image
or you can make random texture coordinates using StableRandom

image

Tangent need when you use normal map in the shader.
Put like on this comment if you found out about it for the first time

 

 

One simple way is setting your colors as HDR in shadergraph

 

image

 

and use AgePercent to Lerp between the color

 

image


The only counterpart is if you want 4 different colors over the particule life, you will have to declare 4 colors :


 

image

 

Here the result :

 

test

In few words, each smoothstep provide a [0-1] value to lerp between the different colors.
The smoothstep range is define by [1 / 3 (numberOfSmoothstep)]

- for the first one you have [0 => 0.33]
- the seconde one : [0.33 => 0.33 * 2]
- the last one : [0.33 * 2 => 0.33 * 3]

I hope it’s what you’re looking for in a way!
And here the shader for example (you can see the setup for shuriken in the gif). Sorry, i don’t know how to add commentary in shadergraph… and it’s look like it’s impossible for the moment!

 

https://drive.google.com/file/d/19oafzIyZIg3qzvszjFwKc0z7ZHYOiPUZ/view

 

If someone have a simplier solution to have HDR color over lifetime, you must speak! now! 

 

Comments


번호 포토 분류 제목 글쓴이 날짜 조회
1319 언리얼4 언리얼 - Stylized 검기 효과 구현 방법/범용쉐이더 구조 분석(한글자막) 금별 04.19 37
1318 언리얼4 언리얼 - UI 테두리 흐름 쉐이더 제작과정(한글자막) 금별 04.19 36
1317 언리얼4 Dark Portal in Unreal Engine 5 Niagara ashif 04.19 41
1316 언리얼4 Anime Aura FX in Unreal Engine 5 Niagara ashif 04.16 71
1315 언리얼4 【UE5+후디니】UV 커스텀 무기 디졸브 기반 빠른 모델 제작_파트 2 금별 04.09 140
1314 언리얼4 【UE5+후디니】UV 커스텀 무기 디졸브 기반 빠른 모델 제작_파트 1 금별 04.09 110
1313 언리얼4 【UE5+후디니】루빅 큐브형태 애니메이션 연출 생성과정(한글자막) 금별 04.09 119
1312 언리얼4 【UE5+후디니】Stylized형태 검기을 생성 제작과정(한글자막) 금별 04.09 109
1311 언리얼4 【UE5+후디니】 동적 디졸브 구쉴드 생성 과정(한글자막) 금별 04.09 111
1310 언리얼4 Arcane Magic Lightning Eruption FX in Unreal Engine 5 Niagara ashif 04.05 119
1309 언리얼4 언리얼 - HLSL 커스텀노드_소벨 외곽선 추출 금별 04.04 117
1308 언리얼4 언리얼 - HLSL 커스텀노드_픽셀화 효과 제작과정 금별 04.04 106
1307 언리얼4 AOE Slam FX in Unreal Engine 5 Niagara ashif 04.01 107
1306 언리얼4 Illugen 활용 절차적 지면 크랙 효과 텍스처 생성(한글자막) 금별 04.01 158
1305 언리얼4 언리얼 - 파티클 원형 궤도(Circular Orbit) 위에서 자동 정렬방법(한글자막) 금별 04.01 153
1304 언리얼4 언리얼 - 간단한 머트리얼 디졸브를 구현하는 세 가지 방법(한글자막) 금별 03.22 254
1303 언리얼4 언리얼/후디니 -VAT 이펙트 툴체인 40분 설정: Niagara 워크플로우를 구축 방법(한글자막) 금별 03.22 223
1302 언리얼4 언리얼5 - 기본 스트라이프 렌더러 재질 효과 작성 방법(한글자막) 금별 03.22 179
1301 언리얼4 언리얼5 - 나이아가라는 입자를 나선형으로 움직이며 타깃에게 공격방법(한글자막) 금별 03.22 202
1300 언리얼4 언리얼5 - 나이아가라 입자의 원형 운동을 수동으로 조작 방법(한글자막) 금별 03.22 158
1299 언리얼4 언리얼5 - 나이아가라 입자를 특정 순서로 발사하여 적을 공격 방법(한글자막) 금별 03.22 171
1298 언리얼4 언리얼5 - 나이아가라 원형으로 입자를 발사해서 타깃에게 움직이기(한글자막) 금별 03.22 157

 

Banner
 
Facebook Twitter GooglePlus KakaoStory NaverBand