올해 초쯤 지인이 컨테이너 야적장을 3D로 보여주는 프로그램을 필요로 해서 제게 부탁한 적이 있었습니다.
그래서 남는 시간에 프로토타입을 만들어봤었는데요, 지인에게 듣기로 야적장에 컨테이너들이 400개 정도까지만 들어갈 예정이라고 해서, 그렇게 고성능을 요구하지는 않을 것 같아 저에게 가장 익숙한 WPF로 한번 만들어봤었습니다.
그 당시, 가장 먼저 화물 컨테이너를 후다닥 WPF로 구현하고, 내장 그래픽 환경에서 성능 이슈 없이 한 화면에 400개 정도 표시 가능하다는 것을 확인했었습니다. 그렇지만 그 후에 조금 바빠져서 결과적으로 직접 프로젝트를 진행하지는 못했고, 만들다 만 프로토타입 소스코드만 남게 되었네요…
그때 만들어 놓은 것을 그냥 두기는 아깝다는 생각이 들어서 3D 기반 화물 컨테이너 구현 코드를 정리해서 GitHub에 공유했습니다. WPF로 3D를 구현하는 일이 많이 없기도 하거니와, 이런 것도 뭔가 샘플 프로젝트로 참고가 되지 않을까 하는 생각도 들어서요. ㅎㅎㅎ
이 샘플 프로젝트의 주요 특징을 꼽자면 WPF의 그래픽 기능을 3D 텍스처 이미지로 활용한다는 점이 될 것 같습니다. 즉, 화물 컨테이너 표면을 굳이 그래픽 툴을 사용하지 않고 WPF의 그래픽 기능만으로 만들었다는 것입니다.
이게 도대체 뭔 의미가 있느냐 하는 의견도 있겠지만, 설정 값에 따라 WPF의 가변 레이아웃을 활용하여 텍스처 이미지를 유동적으로 생성한다는 점을 의미로 두면 어떨까 싶네요. ㅎㅎ 또한 VisualBrush를 이용해서 2D 애니메이션이 적용된 텍스처를 만들어 볼 수도 있을 것입니다.
요즘은 AI가 뭐든 잘 만들어주는 세상이라서 이런 것도 훨씬 더 잘 만들어 줄 수도 있을 것 같긴 하지만, 가끔은 이렇게 직접 키보드 두들겨 가면서 직접 만들어보는 것도 재밌지 않을까요? ㅋㅋㅋ
다음에 또 시간이 난다면 화물 컨테이너들의 위치 데이터를 모델에 담아서 MVVM으로 야적장 시뮬레이션 프로그램을 만들어본다던가 하면 좋을 것 같습니다만, 과연 언제쯤 하게 될지는 솔직히 모르겠습니다…!

