상세 컨텐츠

본문 제목

SCOP : 프로젝트 진행 계획 - (2)

Computer Graphics/SCOP

by Banjosh 2024. 9. 18. 23:35

본문

SCOP 프로젝트를 진행하기 위해 단계별로 세부 계획을 세웠다. 각 단계는 프로젝트의 완성도를 높이고 기능 구현 중 발생할 수 있는 문제를 해결하기 위한 구체적인 목표와 작업 내용을 포함하고 있다.


1. 빌드 환경 설정 및 기본 구조 준비

먼저, 프로젝트를 시작하기 위한 기본 빌드 환경을 설정한다. Git 저장소를 생성하고, Makefile을 작성해 프로젝트의 컴파일 및 의존성 관리를 준비한다. 창을 띄우는 기본 렌더링 환경을 구축한다.

 

  • Git 저장소 생성 및 초기화
  • Makefile 작성
  • 창 띄우기 및 초기 OpenGL 설정

2. 기존 라이브러리 대체 작업

이 프로젝트에서는 GLM, STB, Assimp와 같은 외부 라이브러리를 사용할 수 없으므로, 이 기능들을 직접 구현해야 한다. 3D 수학 연산, 텍스처 로딩, .obj 파일 파싱 기능을 직접 구현한다.

2.1 GLM 대체 (수학적 연산 직접 구현)

3D 벡터와 행렬 연산을 처리할 수 있도록 Vec3, Mat4와 같은 클래스들을 직접 구현한다. 추가로, 원근법, 회전, 이동 등을 위한 수학적 함수도 포함한다.

2.2 STB 대체 (텍스처 로딩 직접 구현)

텍스처 파일을 외부 라이브러리 없이 직접 로드하는 기능을 구현한다.

로드한 텍스처의 데이터는 따로 저장할 수 있도록 한다.

2.3 Assimp 대체 (.obj 파일 파싱 직접 구현)

.obj 파일을 직접 파싱하는 기능을 구현한다. 이를 통해 3D 모델의 정점, 법선, 텍스처 좌표 등의 데이터를 읽고, OpenGL에서 렌더링할 수 있도록 처리한다.

 


 3. 프로젝트 전체 구조 및 클래스 설계

 프로젝트의 전반적인 구조를 설계하고, 주요 기능별로 클래스를 나눈다. 각 클래스는 유지 보수가 용이하도록 역할이 명확하게 구분되어야 하며 클래스가 너무 커지는 것을 지양한다.


4. 기능 구현 및 문제 해결

구현 과정에서 발생하는 문제들을 해결하면서 기능을 점진적으로 완성해 나간다. 과제에서 요구하는 객체 회전 및 이동, 텍스처 전환, 부드러운 전환 효과 등을 구현하고, 각 기능이 제대로 동작하는지 테스트한다.

  • 객체의 3축 회전 및 이동 구현
  • 텍스처 전환 기능: 키 입력을 통해 텍스처 모드색상 모드를 전환
  • 부드러운 전환 효과: 텍스처와 색상 모드 간의 자연스러운 전환 구현
  • Primitive별 다른 색상 적용: 각 Primitive에 서로 다른 색을 적용해 시각적으로 구분 가능하도록 구현

5. 최종 검토 및 추가 보너스 구현

기본 과제를 완료한 후, 복잡한 .obj 파일을 처리하거나 텍스처 왜곡 없이 적용하는 보너스 기능을 추가로 구현할 계획이다. 과제의 완성도를 높이기 위해 추가 기능도 고려한다.

  • 복잡한 .obj 파일 처리: 비공면 객체도 정상적으로 렌더링
  • 텍스처 정교화: 텍스처가 왜곡되지 않도록 정밀하게 적용
  • 추가 보너스 구현: 반사광 효과, 조명 기능 등 고급 기능 추가

6. 최종 빌드 및 마무리

마지막으로 코드를 정리하고, 최종 빌드를 진행하며, 모든 기능이 정상적으로 작동하는지 확인한다. 

  • 코드 리팩토링 및 가독성 개선
  • 최종 테스트: 모든 기능 확인

이와 같은 단계로 SCOP 프로젝트를 진행할 계획이다. 기능 구현 과정에서 발생하는 문제들을 해결하며, 프로젝트의 완성도를 높일 수 있도록 차근차근 진행할 예정이다.

 

관련글 더보기