삼품용 얼음 쉐이더,
기존의 물 쉐이더는 쓸데 없는 코드들로 인해, 원하는 느낌은 잘 안나면서도 무척 무거운 결과가 나오곤 했었습니다.
특히 쉐이더 3.0을 기반으로 제작되어 있던 관계로, 쉐이더 2.0 에서는 결과물이 안 나오거나 이상하게 나오곤 했었지요.
그 쉐이더를 개량해서 (다시 제작할건 다시 하고) 제작한 얼음 전용 쉐이더입니다.
물에는 필요하지만 얼음에는 필요 없는 코드들을 대폭 삭제하고, 쉐이더 2.0에서도 가동하게끔 경량화 시켰습니다.
그렇다고 해도 기본적으로 2pass 를 사용하는데다가, 알파 블렌딩을 사용하므로 디퍼드 렌더러도 가동되지 않는, 꽤나 중량감이 넘치는 쉐이더입니다. (많이…) 하지만 뭐 어차피 우린 포워드 렌더러잖아..
기존의 쉐이더 사용 현황을 봤을때 가급적 사용을 자제시키고 싶은 쉐이더이긴 합니다만, 자세한건 제작된 것을 테스트 하고 나서나 말씀드릴 수 있을 것 같습니다.
우선 기본은 이렇게 생겼습니다.
Base 텍스쳐는, 말그대로 ‘겹쳐’ 집니다. 멀티플라이 방식이랄까요. 저 옵션을 최하로 내리면, Base 텍스쳐는 아무런 영향을 끼치지 않습니다. base맵이 필요 없다면, 저 부분을 비워 놓으시켜나 아주 작은 검은색 (또는 흰색) 텍스쳐를 넣어 두시면 됩니다.
단 저 옵션을 최고로 두시면, (현재 그림처럼) 텍스쳐 이미지가 강하게 나오게 됩니다.
다음은 Ambient 의 설명입니다. 이 쉐이더는 기존의 라이트의 영향을 받지 않습니다… 사실 거의 ‘이펙트’ 라고 불려도 좋을 쉐이더입니다. 실제로도 이펙트 디자이너분들이 사용하셔도 상관 없는 쉐이더이기도 합니다.
어쨌건 Ambient는 색으로 지정되지 않습니다. 슬라이드바를 최하로 내려 놓으면 빛이 닿지 않는 곳은 검게 나오지만,
최고로 올려 놓으면 빛의 방향을 알아볼 수 없을 정도로 자기발광 (Self - illumination) 하게 됩니다. Specular가 없다면 빛의 방향을 알아챌 수도 없지요.

이번엔 Refractivity (굴절) 입니다. 수치를 최하로 내리면 관우아자씨가 그냥 잘 보입니다만… (이 느낌은 수정구를 통해 보는 뭔가의 장면 같은 느낌이군요)
굴절 수치를 올리면 관우아자씨가 찌그러집니다. 물론 배경도 다 찌그러집니다.
이 찌그러지는 건 노말맵의 영향을 받습니다.
외각의 파란 라인은 굴절이 아닌 반사로, 이건 언제나 노말의 영향을 받아 찌그러져 있다는 것을 주의하십시오.
지금의 옵션은 오직 굴절에만 영향을 주는 옵션입니다.
Shiness 는 Specular의 쨍함을 조절합니다.
이렇게요.
물론 Specualr의 색도 조절할 수 있습니다.

이번엔 Reflection (반사) 얘기입니다 잘 들으세요.
이건 먼저 Reflect Power 얘기부터 해야겠군요.
이건 반사의 “두께” 라고 생각하시면 편합니다.
이 옵션을 최하로 해 놓으면, 반사가 두꺼워져서 오브젝트가 반사만 가득차게 됩니다.
반대로 이 수치를 올리면, ‘반사’ 의 두께가 얇아지게 됩니다. 어디로? 외각으로 얇아지게 됩니다.
좋습니다. 얇아지고 두꺼워지는건 이해가 됩니다만, 반드시 외각으로 얇아져야 할까요?

이걸 반대로 만드는 것이 Reflect Inverse 입니다.
기본적으로 이 수치가 왼쪽 (0) 에 붙어 있으면 있을수록 외각쪽으로 두께가 조정되지만,
이 수치를 오른쪽으로 옮기면 반사가 “외각으로 얇아지는” 게 아니라 “내부로 얇아” 집니다. 즉 반사와 굴절의 위치를 뒤바꿔 버립니다. 물론 Reflect Power와 같이 사용해야 그 효과를 볼 수 있겠지요.
마지막으로 WorldLightDirection 수치는, 라이트의 방향을 나타내는 벡터입니다.
아까 말씀드렸다시피 이 쉐이더는 월드에 있는 조명의 영향을 받지 않고 독립적으로 라이트 방향을 가지고 있는 (내부적으로 가지고 있을 뿐, 빛을 추가로 생성할 필요는 없습니다 ) 쉐이더이므로 빛 방향을 벡터수치로 바꿀 수 있습니다
기본은 0,1,0 으로, 머리 위에서 아래로 똑바로 떨어지는 빛입니다.
이 벡터 수치들을 조정해서 원하는 위치에 라이트가 떨어지게 독자적으로 움직일 수 있습니다만, 벡텨 원리를 감각적으로 알고 계시는 분 아니면 그다지 추천하지 않습니다.
되도록 기본값으로 놔 주세요.
아이폰에서 테스트는….
일단 돌아는 가더군요… 오우 대단해…
… 하지만……

0.43 FPS
아하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하하
뭐야 저 감격스러운 퍼포먼스는
아이폰에서는 확실히 PC보다 쉐이더에 민감합니다.
아이폰용은 완전히 따로 만들어야겠군요.