다이렉트 3D와 연관된 암기사항에 대한 수업을 들었다.
이 암기사항은 무조건 외우도록 하자
1. 더블 버퍼링
더블 버퍼링은 컴퓨터 그래픽 및 사용자 인터페이스 디자인에서 화면 깜박임을 방지하고 시각적 성능을 개선하는 기술입니다
버퍼 구조
- 전면 버퍼: 현재 화면에 표시되는 이미지 또는 프레임을 저장.
- 후면 버퍼: 다음에 표시할 이미지를 업데이트 중인 버퍼.
작동 원리
- 후면 버퍼에서 이미지가 렌더링
- 렌더링이 완료되면 전면 버퍼와 후면 버퍼를 교체
- 새 전면 버퍼의 이미지가 화면에 표시
- 이전 전면 버퍼는 다음 렌더링 주기의 후면 버퍼가 된다
장점
- 성능 향상: 화면 업데이트 시간을 단축하여 GUI 성능 개선
- 깜박임 감소: 화면 깜박임을 최소화
- 부드러운 애니메이션: 화면 업데이트가 매끄럽게 이루어짐
단점
- 복잡성 증가: 구현 코드가 복잡해질 수 있음
- 메모리 사용 증가: 두 개의 버퍼를 유지하기 위해 더 많은 메모리가 필요
- 동기화 요구: 드로잉 버퍼와 디스플레이 버퍼 간의 동기화 필요
2. 스왑 체인 (Swap Chain)
스왑 체인은 더블 버퍼링을 확장한 개념으로, 여러 프레임 버퍼가 순차적으로 연결된 구조입니다
프리젠테이션 (Presentation)
- 후면 버퍼의 내용을 전면 버퍼로 전환하여 화면에 표시하는 과정
- 전면 버퍼는 디스플레이(모니터)와 직접 연결되며, 프리젠테이션은 화면 출력으로 이어짐
프리젠테이션 방식
- 플리핑(Flipping)
- 후면 버퍼와 전면 버퍼의 포인터를 교체하는 방식.
- 데이터 복사가 필요 없어 속도가 빠름. - 블리팅(Blitting)
- 후면 버퍼 내용을 전면 버퍼에 복사.
- 플리핑보다 느리지만 더블 버퍼링에서 사용.
3. 3D 렌더링 파이프라인
3D 렌더링 파이프라인은 가상 세계의 점들을 화면에 표시하기 위한 과정을 다룬다
기본 개념
- 버텍스(Vertex) : 3D 공간의 점 (X, Y, Z 좌표로 표현)
- 폴리곤(Polygon) :면을 이루는 최소 단위, 일반적으로 삼각형이 많이 사용되지만, 일부 프로그램에서는 사각형 등도 지원
- 메쉬(Mesh) : 여러 폴리곤이 모여 그물 형태로 구성된 물체
랜더링 파이프라인 과정
- 로컬 스페이스
- 월드 스페이스
- 뷰 스페이스
- 백 스페이스 컬링
- 조명
- 클리핑
- 투영
- 뷰 포트
- 래스터 라이즈
로컬 스페이스
- 개체 자체의 기준점(원점)을 기반으로 구성
월드 스페이스
- 로컬 스페이스를 월드 기준으로 이동(예: 원점에서 +10)
뷰 스페이스
- 카메라 관점으로 변환
- 실제로는 카메라가 움직이는 것이 아니라, 월드의 모든 물체가 역방향으로 이동하여 카메라에 맞춰지는 방식으로 연산
'C++' 카테고리의 다른 글
[강의] 1월 31일 수업정리 (0) | 2025.01.31 |
---|---|
[강의] 1월 24일 수업정리 (0) | 2025.01.24 |
[강의] 1월 22일 수업정리 (0) | 2025.01.22 |
[강의] 1월 21일 수업정리 (0) | 2025.01.21 |
[강의] 1월 20일 수업정리 (1) | 2025.01.20 |