오늘은 그림자에 대해 알아보겠습니다. 먼저 Shadow Resolution에 대해 설명한 뒤 자연스럽게 Shadow Strength로 넘어가겠습니다.

(Point Bias역시 그림자에 관계가 있기는 하지만 그거는 다음편에 다룰 계획...)


Shadow Resolution은 어떤 방식으로 연산되는지 본인 추측입니다.

당연히 Force Pixel 연산이 적용되고 있다고 가정합시다. (이건 1편에 소개함: https://arca.live/b/realvam/56040063 )

광원 한 점에서 빛이 쭉 쭉 뻗어나간다고 가정합시다 (가정이라고 한 이유는 VaM의 광원중 진정으로 한 점에서 나오는 광원은 Point가 아닌 Spot뿐이기 때문에. 이건 다음편에 더 자세히...).


제 추측이지만 Shadow Resolution과 그냥 Mesh의 면이 빛나는 연산은 다음과 같이 진행되는 것 같습니다.

1. Shadow Resolution에 맞춰서 빛 (ray) 발사, 그러니까 높으면 높을수록 광자 갯수 증가

2. 빛 광선은 어떠한 물체와 닿을때까지 직진 (vector 연산)

3. 쪼까 복잡한 계산 (곧 설명 들어갑니다)

4. 모든 몰체의 면 (face) 가 빛 광선과 닿았는가 안 닿았는가 정보 저장

5. 빛과 닿았다면 광원과 면의 각도, 그리고 광원과의 거리 계산

6. 계산된 대로 면에 색깔 입히기


3번 계산이 복잡한 이유는 광원에서 뻗어나오는 빛 광선의 갯수가 무한할 수 없기 때문입니다. 즉, 유한한 수의 광선이 밝힐 수 있는 면의 갯수에 제한이 생기는 거죠. 그렇기 때문에 유한하게 광선이 닿은 면들을 가지고 보간(Interpolation)작업을 하게 될 거라고 추측합니다. 여기에서 광원이 모든 면에 광선을 일일이 쏘지는 않습니다. 그러면 Shadow Resolution 세팅이 있을 필요가 없죠.


모든 면에 광선 연산이 Vector방식으로 적용되지 않는다는 사실을 확실하게 후광으로 알아보도록 합시다.

동일한 광원 세팅을 썼고 Smooth Passes=2입니다. 모프는 Smooth Passes=0에서도 안 깨지는 모프입니다.

머리카락이랑 얼룩무늬같은 그림자에 주목해주세요.



팔부분도 깨지고 머리카락 그림자도 엉망. 이걸 고치기 위해서는 Shadow Strength를 올리는 방법이 있습니다.

(Intensity를 낮추고 Range를 높이면 고쳐진다는 지식은 잘못된 사실입니다.)



일부러 Shadow Strength를 필요한 만큼 올리지 않았습니다. 확대해서 비교해 보시기를 추천합니다.

비록 Shadow Resolution이 도움이 되긴 한다만.... 음... 역시 Shadow Resolution은 최상옵을 써도 Shadow Strength가 낮으면 깨집니다.


Shadow Strength는 3번 연산에서 보간 작업시 면 간 Blur 강도 조절정도로 생각하시면 되겠습니다. 더 정확하게 설명하자면 주변의 얼마나 넓은 범위에 속해있는 면들과 Interpolation 연산을 하는가인것 같습니다. 얘를 높이면 높일수록 그림자가 더 퍼져나가거든요.

그런데 오히려 얘를 높이면 그 그림자의 강도가 더 강해지는 경우가 있습니다. 그 이유는....

유니티에셋등을 불러왔을 때 shader 설정이 VaM에 맞춰져 있지 않으면 그럴수 있다고 합니다.

그럴때는 이 플러그인으로 고치면 된다고 하는데....

https://hub.virtamate.com/resources/unityassetvamifier.478/

거기는 제가 넘볼 수 있는 영역은 아닌 것 같습니다.


어쨋든, 그렇다면 Shadow Strength는 하는 역할이 적어도 2개 이상인 것 같습니다.

하나는 말 그대로 그림자의 강도이고, 또 다른 하나는 그림자의 퍼짐 조절인것 같군요.


마지막으로 CustomUnityAsset 소파와 VaM 자체 에셋인 Cube에 그림자가 지워지도록 해 보죠. 메인 광원의 Shadow Strength를 많이 높인 상태입니다. 소파에는 선명하게 그림자가 지지만 Cube에는 퍼져서 그림자가 지는 걸 볼 수 있습니다.



그래서 한줄 요약? Shadow Resolution은 그냥 Medium정도로만 잡고 Shadow Strength를 잘 조절하자.