밑에 메시의 버텍스버퍼의 노멀이 의심되는 상황이 나왔는데
이런상황에서 사용할수 있는 기법을 한번 소개해드려 볼까 합니다

일단 노멀정도는 유니티는 프레임 디버거가 강력하니 그냥 프레임 디버거로도 될거같고

언리얼도 사실 대부분 Buffer Visualization에서 World Normal키면 비슷한 결과를 얻을수 있다고봅니다

하지만 매터리얼이 Unlit이라 월드 노멀이 안박힌다던가 (Unlit 매터리얼쓰는 메시에 노멀벡터 왜 신경쓰는지 따지기 없기)
또는 노멀맵 텍스쳐나 쉐이더에 의해 주작이 되었을지도 모른다 라는 의심을 버리지 못할수도있어요

이럴때 사용중인 리소스의 매터리얼을 바꿔주거나 노멀맵 텍스쳐를 교체하는건 매우 귀찮은 작업입니다


하지만 RenderDoc이 출동한다면?


a67d3cad0826b3498bee98bf06d60403e1560175789a160b7c1e


Renderdoc을 이용해 프레임 캡쳐를 한다음에 메시를 찍는 Drawcall로 이동 합니다

3d mesh가 버텍스가 많기때문에 금방 찾을수 있습니다



a67d3cad0826b3498bed98bf06d60403fa452b4286fd667e5847

오른쪽 탭을 Mesh Viewer로 바꾸고 밑에 탭을 VS In으로 바꾸면

쉐이더가 적용되기전의 버텍스 데이터와 메시를 각각 위와 아래에서 볼수 있습니다


a67d3cad0826b3498bec98bf06d60403543cc23f0258534f2755

윗쪽에 VS Input쪽에 가셔서 Attribute중에 Normal로 보이는 Attribute를 찾아서 Select As Secondary

1보다 작은 attribute가 3개있는것이 normal일 확률이 아주 높다고 봅니다



a67d3cad0826b3498beb98bf06d604033f195c08e8001d31f8ad

다시 밑에 preview로 가서 Visualization을 Secondary로 바꾸면 해당값을 RGB로 쳐서 메시에 색깔을 입혀서 보여줍니다

일반적으로 노멀이 급격하게 변하는것이 말이 안되기 때문에 색이 확 변하는 부분이 있으면 노멀이 잘못된것입니다

버텍스 수가 적다면 위에 버텍스 버퍼 주르륵 나온곳에서 직접 버텍스를 눌러서 밑에 preview 에서 위치를 확인해가며 볼수도 있습니다

지금 위에보면 머리부분이 색이 확변했는데 저건 제가 얼굴만 따로렌더링하려고 얼굴메시를 뜯어내놔서
안쪽이 보이기때문에 퍼렇게 보이는것


혹시라도 쉐이딩 관련 억까를 당한다면
RenderDoc을 이용해 데이터가 잘못된것이지 내탓이 아니다라는걸 완벽하게 입증해 보도록 해요