Computer Graphics/HumanGL

HumanGL - 0. 과제 해석

surkim 2024. 10. 16. 13:16

이번 HumanGL 과제는 OpenGL을 사용하여 계층적 모델링과 매트릭스 스택 조작을 학습하기 위한 중요한 프로젝트이다. 특히, 이 과제는 OpenGL 4.0 이상의 버전을 사용하여 자체 매트릭스 연산을 구현하는 것을 요구하며, 기본적인 GPU 렌더링과 모델 애니메이션의 개념을 깊이 있게 탐구하도록 설계되었다. 과제의 주요 내용과 세부 사항은 다음과 같다.

프로젝트 개요

  1. 목적:
    이 프로젝트의 궁극적인 목표는 OpenGL을 사용하여 각기 다른 신체 부위들이 논리적으로 연결되고, 매트릭스 스택을 통해 함께 움직이도록 구현하는 것이다. 이를 통해 각각의 부위는 독립적으로 조작될 수 있으며, 상호 간에 적절히 연결된 애니메이션을 만들어 낼 수 있다. 각 부위의 크기나 위치를 수정할 때 관련된 다른 부위들도 자동으로 재배치되도록 해야 한다.
  2. 필수 구현 사항:
    1. 모델의 구성:
      모델은 기본적으로 다음과 같은 부위로 구성된다:
      • 머리
      • 몸통
      • 두 팔 (상완, 하완)
      • 두 다리 (대퇴, 하부)
    2. 동작 요구 사항:
      모델은 걷고, 점프하며, 제자리에 머무르는 세 가지 동작을 수행해야 한다. 각 동작은 매트릭스 스택을 사용해 매끄럽게 이루어져야 한다.
    3. 회전 및 크기 조정:
      모델의 몸통이 회전할 때 다른 신체 부위들이 논리적으로 따라오도록 해야 하며, 팔이나 다리의 상하부 역시 따로 움직이지만 관련성 있게 조정되어야 한다. 신체 부위의 크기를 조정하면 관련 부위들이 자동으로 위치와 크기를 맞춰 재조정되어야 한다.
  3. 제약 사항:
    1. 단일 함수 호출로 그리기:
      각 신체 부위는 단 하나의 함수 호출로만 그려져야 한다. 즉, 각 부위는 1x1x1 크기의 기하학적 형태로 그려지며, 이 함수는 현재 매트릭스의 원점에서 그려져야 한다. 이러한 제약을 지키지 않으면 점수를 받을 수 없다.
    2. 부위 간 구분:
      팔과 다리의 상하부는 독립된 두 개의 다른 부위로 취급되어야 한다. 이를 통해 더 세밀한 조작과 제어가 가능해야 한다.

보너스 부분

  1. 보너스 구현 아이디어:
    기본적인 계층적 모델링이 완벽하게 구현된 후에는 추가적으로 더 많은 신체 부위를 추가하거나 새로운 움직임 패턴을 만들 수 있다. 예를 들어, 디스코 춤이나 쿵푸 동작 같은 패턴을 추가할 수 있으며, 또한 신체 부위의 크기나 색상을 변경할 수 있는 그래픽 인터페이스를 구현할 수 있다. 이러한 창의적인 기능들은 프로젝트의 완성도를 높이는 데 도움이 된다.
  2. 보너스 평가 조건:
    보너스는 필수 요구 사항이 모두 완벽하게 충족되었을 때만 평가된다. '완벽'이라는 것은 모든 필수 기능이 제대로 작동하고, 오류 없이 구현된 상태를 의미한다. 필수 요구 사항을 충족하지 못한 경우, 보너스는 평가되지 않는다.

제출 및 평가

  1. 제출:
    과제는 Git 저장소에 제출해야 하며, 제출한 파일 내의 모든 내용만 평가된다. 따라서 제출 전 파일과 폴더 이름을 반드시 확인해야 한다.
  2. 평가 준비:
    평가 중에는 다음 사항을 준비해야 한다:
    • 프로그램을 실행하고 다양한 움직임 패턴을 보여줄 수 있어야 한다.
    • 신체 부위의 크기를 변경하는 것이 코드에서든 실행 중이든 간편해야 한다.
    • 그림 함수 호출 및 작동 방식을 설명할 수 있어야 한다.
    • 계층적 모델과 매트릭스 스택의 결과를 설명할 수 있어야 한다.

결론

이번 HumanGL 과제는 계층적 모델링과 매트릭스 스택을 깊이 이해하는 데 중요한 역할을 한다. 프로젝트를 통해 OpenGL의 다양한 기능을 직접 구현하고 체험할 수 있으며, 특히 객체 간의 논리적인 연관성과 그에 따른 움직임을 이해하는 데 큰 도움을 줄 것이다. 필수 요구 사항을 완벽하게 충족한 후 창의적인 보너스 기능을 추가함으로써 프로젝트의 완성도를 더욱 높일 수 있다.