SCOP 프로젝트를 진행하기 위해 단계별로 세부 계획을 세웠다. 각 단계는 프로젝트의 완성도를 높이고 기능 구현 중 발생할 수 있는 문제를 해결하기 위한 구체적인 목표와 작업 내용을 포함하고 있다.
먼저, 프로젝트를 시작하기 위한 기본 빌드 환경을 설정한다. Git 저장소를 생성하고, Makefile을 작성해 프로젝트의 컴파일 및 의존성 관리를 준비한다. 창을 띄우는 기본 렌더링 환경을 구축한다.
이 프로젝트에서는 GLM, STB, Assimp와 같은 외부 라이브러리를 사용할 수 없으므로, 이 기능들을 직접 구현해야 한다. 3D 수학 연산, 텍스처 로딩, .obj 파일 파싱 기능을 직접 구현한다.
3D 벡터와 행렬 연산을 처리할 수 있도록 Vec3, Mat4와 같은 클래스들을 직접 구현한다. 추가로, 원근법, 회전, 이동 등을 위한 수학적 함수도 포함한다.
텍스처 파일을 외부 라이브러리 없이 직접 로드하는 기능을 구현한다.
로드한 텍스처의 데이터는 따로 저장할 수 있도록 한다.
.obj 파일을 직접 파싱하는 기능을 구현한다. 이를 통해 3D 모델의 정점, 법선, 텍스처 좌표 등의 데이터를 읽고, OpenGL에서 렌더링할 수 있도록 처리한다.
프로젝트의 전반적인 구조를 설계하고, 주요 기능별로 클래스를 나눈다. 각 클래스는 유지 보수가 용이하도록 역할이 명확하게 구분되어야 하며 클래스가 너무 커지는 것을 지양한다.
구현 과정에서 발생하는 문제들을 해결하면서 기능을 점진적으로 완성해 나간다. 과제에서 요구하는 객체 회전 및 이동, 텍스처 전환, 부드러운 전환 효과 등을 구현하고, 각 기능이 제대로 동작하는지 테스트한다.
기본 과제를 완료한 후, 복잡한 .obj 파일을 처리하거나 텍스처 왜곡 없이 적용하는 보너스 기능을 추가로 구현할 계획이다. 과제의 완성도를 높이기 위해 추가 기능도 고려한다.
마지막으로 코드를 정리하고, 최종 빌드를 진행하며, 모든 기능이 정상적으로 작동하는지 확인한다.
이와 같은 단계로 SCOP 프로젝트를 진행할 계획이다. 기능 구현 과정에서 발생하는 문제들을 해결하며, 프로젝트의 완성도를 높일 수 있도록 차근차근 진행할 예정이다.
SCOP : 기능별 클래스로 리팩토링하기 - (6) (0) | 2024.09.23 |
---|---|
SCOP : BMP 이미지 파싱과 텍스처 매핑 구현 - (5) (0) | 2024.09.23 |
SCOP : GLM을 대체하는 GLMath 라이브러리 구현 - (4) (0) | 2024.09.20 |
SCOP : 빌드 환경 설정 및 기본 구조 준비 - (3) (0) | 2024.09.19 |
SCOP : 3D 객체 렌더링의 기본 - (1) (2) | 2024.09.18 |