티스토리 뷰
애니메이션의 껌벅이는 현상을 피하려면 다음과 같은 방법을 사용하는 것이 최선이다. 우선 , 애니메이션희스프레임 전체를 화면 바깥의 ( off - screen ) 텍스처에 그린다. 그런 텍스처를 후면 버퍼 ( back buffer)라고 부른다 . 주어진 한 프레임을 위해 장면 전체를 후면 버퍼에 그린 다음에는 , 그 후면 버퍼를 하나의 관전한 프레임으로며 화면에표시한다 . 이렇게 하면 화면을 보른 사용자에게는 프레임이 그려지는 과정이 나타나지 않는다. 사용자는 완성된 프레임만을 볼 뿐이다. 이러한 기법을 이중 버퍼링이라고 부른다 . 이중 버퍼링을 효율적으로 구현하려면 하드웨어로 관리되는 두개의 텍스처 버퍼 가 필요한데 , 하나는 전면 버퍼 ( front buffer ) 이고 다른 하나는 앞에서 언급한 후면 버퍼이다. 화면에는 전면 버퍼에 담긴 이미지 자료가 표시된다 . 전면 버퍼가 하면에 표시된 동안 애니메이션의 다음 프레임을 후면 버퍼에 그리고 다 그려지면 전면 버퍼라 후면버퍼의 역할을 맞바꾼다 . 즉, 후면 버퍼가 새 전면 버퍼가 되어서 그 내용이 화면에 표시되고 , 전면 버퍼가 새 후션 버퍼가 되어서 다음 프레임이 그려진다 . 이처럼 후면버퍼와 전면 버퍼의 역할을 교환해서 페이지가 전달되게 하는 것을 Direct3D 에서는 제시 ( presenting ) 라고 부는다 . 이러한 제시는 아주 효율적인 연산이다 . 버퍼들의 내용 자체를 맞바꾸는 것이 아니라 그냥 현재 전면 버퍼로의 포인터와 현재 후면 버퍼로의 포인터만 맞바꾸면 되기 때문이다. 아래처럼 연산이 진행되는 과정이 나라 있다 .
이처램 두 개의 버퍼 (전면과 후면)를 사용하는 방법을 이중 버퍼링 ( double buffering ) 이라고 부른다. 더 많은 버퍼를 사용하는 것도 가능하다. 버퍼 세 대를 사용하는 것을 삼중 버퍼링 ( triple buffering ) 이라고 부른다.
'DirectX12 > Direct3D' 카테고리의 다른 글
자원과 서술자. (0) | 2023.05.27 |
---|---|
깊이 버퍼링(Depth Buffering). (0) | 2023.05.25 |
텍스처 (0) | 2023.05.16 |
COM (0) | 2023.05.16 |
Direct3D 기본 이해구조. (0) | 2023.05.16 |
- Total
- Today
- Yesterday
- ros2
- UnReal
- Direct12
- Linux
- 언리얼
- ros
- 언리얼#프로그래밍#c++#포트폴리오준비#블루프린트->c++전환
- directx3d
- 언리얼엔진#FPS
- html5
- Multipalyer
- LockonSystem
- Multiplayer
- ReplicatedUsing
- 게임
- 게임프로그래밍
- DirectX12
- 언리얼#c++#기능
- Direct3D
- 시애틀의 잠 못 이루는 밤
- DirectX
- 언리얼#게임
- c++
- 1993
- 영화리뷰
- Replicated
- ubuntu
- 언리얼#c++#Interface
- 4.27
- ActorComponent
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |