상세 컨텐츠

본문 제목

SCOP: 프로젝트를 하며 느낀 점 - (9)

Computer Graphics/SCOP

by Banjosh 2024. 10. 1. 16:53

본문

SCOP 과제를 하며 느낀 점

라이브러리의 소중함

  • Assimp
    • v, vn, vt, f 등 여러 인자를 이해하고, 각각의 요소를 조합해 하나의 정점으로 만드는 과정을 경험했다.
    • f(face)의 모음마다 .mtl 파일의 material 정보가 적용되어, 다양한 mesh들이 생성될 수 있다는 것을 배웠다.
  • GLM
    • 그래픽스를 위한 수학적 개념을 코드로 직접 구현해보는 좋은 경험이었다. 행렬, 벡터 연산 등을 직접 해보며 그래픽스 수학에 대한 이해도가 크게 높아졌다.
  • STB
    • BMP 파일을 파싱하고, 헤더와 데이터 구조를 다루는 과정을 통해 이미지 파일이 어떻게 처리되는지 배울 수 있었다.
  • 평소에 자주 사용하던 Assimp, GLM, STB 같은 라이브러리를 직접 구현해보니 생각보다 어렵다는 걸 깨달았다. 예전에는 이런 라이브러리들이 내부적으로 어떻게 동작하는지 잘 모르고 사용했지만, 이번 과제를 통해 그 동작 원리를 어느 정도 파악할 수 있었다.

OpenGL 사용법 숙달

  • 기존에는 강의를 보며 따라치는 방식으로 OpenGL을 사용했지만, 이번에는 직접 코드를 작성하고 쌓아가며 OpenGL의 기본을 더욱 탄탄히 다질 수 있었다. 물론 배운 구조를 기본으로 하되, 캡슐화를 통해 유지 보수를 더 쉽게 할 수 있도록 개선하기도 했다. 이 과정에서 강의에서 배운 구조가 왜 그런 방식으로 설계되었는지 더 깊이 이해할 수 있었다.
  •  

UV 좌표계에 대한 이해

  • 텍스처와 텍스처 좌표가 주어졌을 때는 별 생각 없이 사용했지만, 이번에는 직접 텍스처를 오브젝트에 적용하는 방법을 고민해야 했다. 그 결과 UV 좌표계를 이용해 텍스처를 감싸듯이 적용하는 방법을 선택했고, 이 과정에서 UV 좌표계에 대한 이해도가 크게 향상되었다. 특히, 경계 문제와 같은 문제를 해결하면서 많은 것을 배웠다.

행렬 변환에 익숙해지다

  • 오브젝트의 평행 이동, 회전, 스케일링 등을 직접 구현하면서 행렬 변환에 익숙해졌고, 이를 통해 Model-View-Projection 행렬 변환에 대한 깊은 이해를 쌓았다. 이 부분은 그래픽스에서 중요한 개념이기 때문에 유용한 경험이었다.

아쉬운 점

  • STB 라이브러리가 주어졌다면, diffuse, specular 텍스처 파일을 사용해 빛 반사나 광택 효과를 적용할 수 있었을 텐데, 그런 점에서 아쉬움이 남았다. 하지만 이번 프로젝트는 라이브러리 없이 OpenGL의 기본과 구현을 배우는 것이 목표였기 때문에, 이 정도에서 만족하고 다음 프로젝트로 이어가기로 했다.

다음 프로젝트

  • 다음 프로젝트에서는 계층적 모델링(hierarchical modeling)과 행렬 스택 조작(matrix stack manipulation)을 공부하여, 객체의 여러 부위를 연결하고 함께 움직이게 하는 HumanGL 프로젝트에 도전할 예정이다.

 

 

마지막 Human.obj 렌더링 영상!!

 

관련글 더보기