그래픽 툴 없이 WPF로만 만든 3D 화물 컨테이너입니다.

올해 초쯤 지인이 컨테이너 야적장을 3D로 보여주는 프로그램을 필요로 해서 제게 부탁한 적이 있었습니다.

그래서 남는 시간에 프로토타입을 만들어봤었는데요, 지인에게 듣기로 야적장에 컨테이너들이 400개 정도까지만 들어갈 예정이라고 해서, 그렇게 고성능을 요구하지는 않을 것 같아 저에게 가장 익숙한 WPF로 한번 만들어봤었습니다.

그 당시, 가장 먼저 화물 컨테이너를 후다닥 WPF로 구현하고, 내장 그래픽 환경에서 성능 이슈 없이 한 화면에 400개 정도 표시 가능하다는 것을 확인했었습니다. 그렇지만 그 후에 조금 바빠져서 결과적으로 직접 프로젝트를 진행하지는 못했고, 만들다 만 프로토타입 소스코드만 남게 되었네요…

그때 만들어 놓은 것을 그냥 두기는 아깝다는 생각이 들어서 3D 기반 화물 컨테이너 구현 코드를 정리해서 GitHub에 공유했습니다. WPF로 3D를 구현하는 일이 많이 없기도 하거니와, 이런 것도 뭔가 샘플 프로젝트로 참고가 되지 않을까 하는 생각도 들어서요. ㅎㅎㅎ

이 샘플 프로젝트의 주요 특징을 꼽자면 WPF의 그래픽 기능을 3D 텍스처 이미지로 활용한다는 점이 될 것 같습니다. 즉, 화물 컨테이너 표면을 굳이 그래픽 툴을 사용하지 않고 WPF의 그래픽 기능만으로 만들었다는 것입니다.

이게 도대체 뭔 의미가 있느냐 하는 의견도 있겠지만, 설정 값에 따라 WPF의 가변 레이아웃을 활용하여 텍스처 이미지를 유동적으로 생성한다는 점을 의미로 두면 어떨까 싶네요. ㅎㅎ 또한 VisualBrush를 이용해서 2D 애니메이션이 적용된 텍스처를 만들어 볼 수도 있을 것입니다.

요즘은 AI가 뭐든 잘 만들어주는 세상이라서 이런 것도 훨씬 더 잘 만들어 줄 수도 있을 것 같긴 하지만, 가끔은 이렇게 직접 키보드 두들겨 가면서 직접 만들어보는 것도 재밌지 않을까요? ㅋㅋㅋ

다음에 또 시간이 난다면 화물 컨테이너들의 위치 데이터를 모델에 담아서 MVVM으로 야적장 시뮬레이션 프로그램을 만들어본다던가 하면 좋을 것 같습니다만, 과연 언제쯤 하게 될지는 솔직히 모르겠습니다…!

13 Likes

멋있네요. 여러 야적장이 들어갈…

거기에 저렇게 마스킹 외에 문쪽에 컨테이너 번호까지 있으면 좋…..(요구사항) ㅋㅋㅋ

역시 대단하십니다.(동영상 안보고 댓글먼저 작성을 ㅋㅋㅋ)

3 Likes

ㅋㅋㅋ 텍스처 컨트롤의 모든 면이 전부 템플릿으로 노출되어 있어서 문짝에도 뭔가 넣을 수 있게 해뒀습니다.

그리고 이건 블로그 글에 첨부했던 그림인데요,


Base Material에 적용할 택스처 컨트롤의 문짝 템플릿에다가 번호를 넣으면 될 것 같습니다.
그러면 번호 위에 주름 텍스처가 덮이면서 자연스러워질 것 같네요~ㅎㅎㅎ

3 Likes

네 안그래도 블로그도 잘 봤습니다.

역시 대단하십니다 ㅎㅎ

3 Likes

아이고, 블로그 방문 감사드립니다~ㅎㅎㅎ

1 Like