Featured image of post [Shader] TKchar_Diffuse_rim_dye 쉐이더 커밋되었습니다.

[Shader] TKchar_Diffuse_rim_dye 쉐이더 커밋되었습니다.

인트라넷에 사진 올리다가 무한루프에 빠져서 글 3번째 날리고 다시 씁니다.
MBC에서 전원을 내렸을때의 PC방에 있던 기분이군요…
인트라넷 사진 올리다가 버튼 하나 잘못 누르면 글 다 날라가는건 정말 고쳐야 한다고 생각합니다.
때문에 전 블로그에 먼저 올리고 그걸 긁어서 인트라에 올리지요… (이번엔 안했다가 피본..)

====================================================

  • Asset Server에 커밋되었습니다.
  • 강효식 팀장님께 전달 완료
  • 쉐이더 위치는 TK_Project\Assets\00 Common Assets\Shaders 으로 하기로 박차장님 통해서 결정되었습니다.

이전 게시물인 Diffuse fast 쉐이더, Diffuse 보다 정말 빠른가? 에서 나온 연구결과를 바탕으로 제작된 쉐이더입니다.
http://intra.ndoors.com/center/board/view.asp?list_seq=209220&board_seq=313&readchk_flag=N
픽셀 라이트가 저렇게 빠르다면, 굳이 다루기도 힘들고 효과내기도 힘든 버텍스 라이트를 이용할 이유가 없지요.

그래서 제작된 캐릭터용 쉐이더입니다.

특징 / 사용법은 다음과 같습니당.

  1. 텍스쳐는 한 장만 사용합니다.

이전 Illumination 을 위해 제작했던 텍스쳐는 관리나 제작이 그래픽 디자이너들에게 까다로웠던게 사실입니다.
게다가 아까운 셈플러를 잡아먹고 있기도 하고 말이죠.
그래서 그 기능을 Illumintion 슬라이드바로 만들어 적용했습니다.
적용 원리는 좀 다르지만 효과는 거의 동일합니다.

비교해 보면 다음과 같습니다.

이전 사용하던 쉐이더입니다.

새로 제작된 쉐이더입니다. 텍스쳐가 한 장이고 여러 조절자가 생겼습니다.
 이미지 차이는 거의 없습니다.

Illumination 조절자를 조절하면 음영을 조절할 수 있습니다. 최대 밝게 하면 위와 같습니다. 기본은 0.8로 일단 해 놓았습니다.

  1. Rim light가 생겼습니다.

림라이트는 외각에 역광 라이트를 추가해 주는 듯한 효과로, 만들기 간편하면서 쉐이더 개발자에게는 뭔가 했다는 뿌듯함을 느끼게 해주는 좋은 기능입니다.

애석하게도 현재 데이터의 폴리곤이 적어서, Vertex Normal을 사용하는 림 라이트의 정밀도가 떨어집니다. 노말맵이라도 썼다면 정밀도가 올라가겠지만..
그래도 보면 나쁘지 않습니다.

약간 과장해 보았습니다. Rim Color와 Power를 이용해 넓이와 색상을 조절할 수 있습니다.

캐릭터 선택 (혹은 마우스 오버) 등에도, 색상과 Power를 조절해서 표현할 수 있습니다. (이건 프로그래밍에서 런타임으로 제어해 주시면 됩니다 )

사실은 림 라이트를 일반 / 마우스 오버 상태 2개로 중첩되도록 제작했었는데, 정밀도가 떨어지다보니 둘을 동시에 나타나게 해도 하나는 묻혀서 의미가 없었습니다. 그래서 굳이 2개로 만들기 보다는 1개로 만들어서 옵션만 교체해서 계산량을 줄이도록 제작했습니다. 요건 프로그램팀에 작업 부탁해야 합니당.

  1. 염색 기능 있습니다.

그전에 데칼이라고 불리던 기능입니다. 데칼보다는 염색이 맞겠지용 :) Main texture의 알파를 마스킹 채널로 이용합니다.
즉 알파 채널 없이 그냥 텍스쳐를 제작하시면 염색은 적용되지 않습니다.
기본값은 염색 칼라는 회색입니다. 회색으로 하면 염색이 보이지 않습니다.
그렇지만 Base 텍스쳐에 알파 채널이 없으면, 염색 칼라를 무슨 칼라로 하더라도 염색은 적용되지 않습니다.

염색은 다음과 같이 제작하면 됩니다. 그라디에이션 먹습니다. 50% 만 적용도 된다는 말씀.

이런 알파 채널을 가진 이미지가 된다는 거겠죠. 염색이 필요 없으면 알파 채널 자체를 안만들어도 됩니다.
(그렇게 하기 위해서 염색이 필요한 부분만 검은 색으로 칠하도록 되어 있습니다. 일반적인 경우와 반대지만요)

이제 어두운 색을 설정하면 어둡게 들어갑니다.

밝은 색으로 화사하고 엘레강스한 갑옷을 만들 수도 있습니다 고갱님.
물론 팀칼라로 사용하셔도 됩니다.
필요 없으면 알파 채널만 안만들면 되므로 채널 절약도 할 수 있습니다 고갱님.

무슨 색이건 회색만 아니면 나옵니다. 단 회색일때(128,128,128)는 안나옵니다.

  1. 이 기능들은 아이폰에서도 동일하게 동작합니다.
    림라이트가 작동되고 있는걸 보실 수 있으십니다. 또한, 녹색으로 염색한 것도 작동하고 있습니다.
    프레임이 좀 떨어졌지만, DPcall이 권장된 제한사양인 30개를 2배 이상 넘어가고 있는 상태라는 걸 감안해 주시기 바랍니다.

부하가 없다고는 할 수 없습니다만, 치명적인 부하를 유발하지는 않는 것으로 보입니다. 이 정도면 쓸 수 있달까.
하지만 일단 가볍게 하기 위해 아이폰 버전 (Mobile_TKchar_Diffuse_dye가 되겠죠) 에서는 림라이트 기능을 일단 제거해서 만들겠습니다. 필요시 언제나 추가 가능합니다.

Hugo로 만듦
JimmyStack 테마 사용 중