프로젝트 목표
3D 렌더링 과정 중 개인적으로 궁금했던 부분을 직접 만들어 보는 프로젝트입니다.
“버텍스 쉐이더와 픽셀 쉐이더는 어떻게 구성되고 작동되는 걸까?”
“화면에 픽셀 단위로 어떻게 이미지(3D 물체)가 그려지는 걸까?”
위 두 가지 의문점을 해소하기 위해 간단한 예제를 직접 구현해보면서 탐구해보는 프로젝트 입니다.
프로젝트 계획
첫 번째 주제는 준비 단계로 3D 물체를 화면에 그릴 수 있게 정육면체를 정점 데이터로 표현하고 정점을 트랜스폼 행렬 변환을 통해 3D 세계에 배치해보는 작업을 해보겠습니다.
두 번째 주제로는 3D 이미지를 화면에 직접 픽셀 단위로 그려보는 래스터라이즈화를 구현해보겠습니다. 두 점 사이의 선 그리기와 세 점으로 구성된 삼각형 채우는 작업을 직접 해보겠습니다.
세 번째 주제로는 버텍스 쉐이더와 픽셀 쉐이더가 기본적인 역할을 수행할 수 있도록 구현해보겠습니다. 어느 시점에 호출되는지, 어떤 값을 입력받고 어떤 값을 반환해야 하는지 직접 구현해보면서 알아보겠습니다.
그 이후로는 위 과정들을 리펙토링 하여 3D 렌더링의 다른 여러 과정도 직접 실습 해볼 수 있도록 샌드박스 형태의 프로젝트를 만들어 보겠습니다.
참고 사항
이 프로젝트에서는 3D 렌더링에 대한 기본 개념이나 선형대수학 등을 깊게 다루지 않습니다. 설명이 부족한 내용에 대해서는 다른 자료를 참고하거나 구글링 또는 ChatGPT와 함께 이용해 주세요.