음… 블렌딩 옵션별 flow 쉐이더를 제작했습니다.
예제에서도 이렇게 따로 나눠 놓은 걸로 봐서 techniq 등으로 처리할 수가 없나봐요.
어째서 쉐이더 UI 에는 라디오버튼이다 드랍다운 메뉴가 없단 말인가!!! 만들어라! 만들어라! … 심지어 유니티에는 Bool도 없어유… 0과 1로 처리할 수 밖에 없어요… 그나마도 0과 1 로 해놓고 단위를 1로 해 놓으면 On/Off 처럼 쓸 수 있을텐데 그것도 없어유… OTL 하지만 뭐 추가로 만드는게 거의 스트레스가 없기 때문에 (이름 중복하는 것만 주의하면) 그다지 불편하지는 않아유…
바로 만들 수 있었는데 좀 오래 걸린 이유는, CG로 쉐이더를 짜는 스타일을 정할 때 크게 두 개로 할 수 있는데, 하나는 이미 있는 라이팅 구조에 슬쩍 끼워서 짜는 방식과 (그게 이전방식. 라이트 연산을 아예 안할 수 있는 방법을 못찾았음) 아예 버텍스 쉐이더와 픽셀쉐이더를 따로 짜서 넣는 방법 ( 해봐서 성공. 라이트 연산을 아예 안할 수 있다) 을 테스트해 보느라고 말입니다.
일단 두 번째 방법으로 라이트 연산을 아예 안하는 방법을 성공시키긴 했지만, 그렇게 몽땅 수동으로 바꾸니 가장 유용한 옵션이었던 텍스쳐 타일링 등의 수치를 툴에서 못바꿔요 …OTL 너무 수동이 된거야.. OTL OTL OTL
그래서 할 수 없이 포기하고 다시 처음 방식으로 만들었습니다. 라이트 연산이 좀 된다 하더라도, 기능이 통합된 자동 방식이 훨씬 유용하고 작업효율이 좋지요. (사실 라이트 연산이 되는지도 불명확 하고)
하여간 참으로 다양한 방식으로 쉐이더를 짤 수 있으니 이거저거 건드려 보는데도 하루가 잘도 갑니다 그려.
어쨌건 그런 사연끝에 만든 쉐이더 블렌딩 베리에이션입니다.
Screen
일반적으로 많이 사용하는 SrcAlpha - One 입니다. 이름처럼 소스의 알파채널을 사용하며, 뒤의 이미지를 밝게 만들어 버립니다.
ADD
- Screen과 비슷하지만 훨씬 강하고 밝은 이미지가 나오게 됩니다. One-One을 사용하기 때문에 알파 채널은 필요 없고 최종 연산된 칼라에 따라 투명도가 결정됩니다.
Standard
- 일반적인 투명도 계산입니다. 알파 채널을 이용하며, 라이트 계산은 되지 않지만 특별히 더 밝아진다던가 어두워진다던가 하지 않습니다. SrcAlpha - InvSrcAlpha (유니티에서는 OneMinusSrcAlpha) 한마디로 그냥 반투명.

Multi
- 엄밀히 말하면 진짜 Multi와는 좀 다릅니다 :) Zero- InvSrcColor (유니티에서는 OneMinusSrcColor) 로, 특이한 변이재질에 가깝습니다. 알파는 사용하지 않고, 소스의 칼라에 따라 투명도가 정해집니다. 또한 색도 뒤집힙니다.

…. 그리고 이건 지금 연구하고 있는 쉐이더 . ㅋㅋ 