본문 바로가기
Shader

Unity 2018 built-in particle shaders 유니티 2018 내장 파티클 쉐이더_2

by 대마왕J 2018. 9. 23.

"Particles/Alpha Blended Premultiply"


기본적으로 알파 블렌딩 쉐이더입니다. 똑같이 동작하죠 

역시 알파가 있어야 하고 겹쳐져도 밝아지거나 어두워지는게 없습니다 .

그렇지만 외각의 검은 부분을 없애줍니다.

아래 그림처럼 검은 배경에 그린 이펙트 '일 때만' 의미있습니다. 아니라면 나가리.

 

Blend One OneMinusSrcAlpha

블렌딩을 쓰기 때문인데요. Additive 의 soft와 같은 구조입니다. 


때문에 이런 이미지로 알파 블렌딩 쉐이더를 만들때 


이렇게 나오던 것이 


이렇게 나오게 됩니다. 

단, 검은색 배경 이미지일때만 효과가 있다는 것은 말했고, 그 때문에  검은색이 빠지면서 좀 밝아 보이는건 어쩔 수 없긴 합니다. 


"Particles/Anim Alpha Blended" 


커스텀 버텍스 스트림 예제를 위한 파티클 쉐이더입니다. 기본적으로 알파 블렌딩 쉐이더입니다 

간단하게 텍스쳐 두 장을 변환 - 정확히는 한 장에 UV만 다른 - 하는 기능을 가진 쉐이더인데, 어디다 쓸지는 아직 잘 모르겠습니다. 주변에 쓴다는 말도 못들었고.. 파티클 버텍스 스트림과 같이 쓰지 않으면 별 소용 없는 쉐이더입니다 


"Particles/Multiply"


Blend Zero SrcColor로, 흔히 알고 있는 멀티플라이, 즉 어둡게 되는 이펙트입니다 

사실 알파 안써도 됩니다. 흰 부분에 가까울수록 투명해 지거든요 


 


그럼 그렇다고 알파 연산이 없느냐 하면 그건 또 아닙니다 알파 연산도 충실히 들어가 있습니다. 

하지만 굳이 알파 연산을 안해도 충분하기 때문에 일부러 알파 연산을 넣는다는 것 자체가 좀 에러죠

별 것 아니지만 이런 것 때문에 이펙트 아티스트들은 기본 내장 프리셋 쉐이더를 쓸 때 조금 꺼림직해 합니다 .



"Particles/Multiply (Double)"


기본적으로 멀티플라이 쉐이더가 맞긴 한데, 

Blend DstColor SrcColor

를 사용하기 때문에 

멀티플라이 블렌딩된 결과물을 정말 아무 생각없이 배경까지 같이 곱한것을 + 2 합니다. 

묘한 느낌이죠. 칼라일 경우 컴컴해지지 않고 칼라가 진해지는 느낌을 줄 수 있습니다만

어설픈 회색은 오히려 밝아지는 경우까지 일어날 수 있어서 사용하기 까다로운 녀석입니다. 

알파 연산은 '계산은 합니다만 그걸 RGB에 연산하지 A 에 연산하는건 아닙니다' 라는 스타일로 되어 있어서 애매합니다. 

없어도 된다 쪽이죠 이런건. 

솔직히 사용하기 좀 까다로운 놈입니다 공식은 알겠지만 ... 

 



"Particles/Priority Additive"

"Particles/Priority Additive(soft)"

"Particles/Priority Alpha Blend"


왠 Priority? 난데없이 생겨난 녀석들입니다. 우선순위?


이미 위에 있는것과 동일한 녀석이 우선순위라는 이름을 붙이고 존재한단 말이죠 


뭐야 갑자기?


그래서 뒤져봤더니 내장 쉐이더 코드가 공개되어 있지 않아??? 

나온지 얼마 안되었다는 말이군??


그래서 구글링과 함께 그냥 써 본 바에 의하면...


이 세 개는 기존의 3개와 같은 놈으로 보입니다. 

근데 다른 점이라면 이거 

  


렌더큐 3001번 ... 


히이이익



아니 잠깐, 이걸 독립시켰다고요?

렌더큐를 늦게 그린다는건 최상위에 그린다는 말이고, 이건 즉 다른 쉐이더들보다 위로 올라오겠다는 말인데 

그거라면 


그냥 예전 쉐이더에다가 렌더큐만 3001번으로 바꾸면 똑같잖아요 

근데 이걸 독립시켰다고??? 왜????? 어째서????

내장 코드를 못봐서 뭔가 다를게 있을지도 모르겠지만 일단 그럴거면 이름을 저렇게 짓는 것도 웃기고... 사용방법도 똑같고...

하여간 나중에 공개되면 분석해 보겠지만 지금은 왜... 라는 느낌이네요 



반응형

댓글