Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ColorGradingLutPass
- Cell Shader
- working set
- Three(Two) Tone Shading
- AppSW
- Virtual Byte
- ASW(Application SpaceWarp)
- 메모리 누수
- 개인 바이트
- 게임 수학
- OculusMotionVectorPass
- Rim Light
- C언어
- URP로 변경
- 작업 집합
- Private Bytes
- Toon Shader
- VR
- 벡터
- Cell Look
- 가상 바이트
- Windows Build
- Cartoon Rendering
- Specular
- 프로그래밍 기초
- URP
- 3d
Archives
- Today
- Total
WinCNT
Direct2D 본문
Direct2D
- 비교적 최근에 나온 라이브러리
- DirectX(3D) 기반
- 참고) DDraw
- DX7 시절(스타에 쓰인 기술)
- 2차원 API
- 요즘에는 안 쓰인다
DX9가 많이 쓰였다
COM API
인터페이스를 극단적으로 분리
다른 기종 간의 통신을 위해 사용
DirectX는 모두 COM으로 되어 있음
Factory, Render Target
- Factory 생성
- Render Target 생성
- 그리기
Render Target = GDI의 백 버퍼 같은 거
2D Engine Framework
Framework = 틀 = 枠
예) 대표적인 프레임워크는 Update, Render
2D 엔진 프레임워크란 결국 API들을 C++로 래핑(클래스 안에 넣음)한 것
e.g.
- 2개의 하부 구현 추상화
- GDI의 API로 만든 엔진, D2D의 API로 만든 엔진
그럼 추상화해서 하나의 엔진으로 만들자!
- GDI의 API로 만든 엔진, D2D의 API로 만든 엔진
- 재사용을 염두에 둔 구조
- 2D -> 3D를 염두해서 프레임워크 자체를 추상화
- 알아보기 쉽게?
예제
OnRender는 매 프레임에 불리는 함수
(샘플에서는 매번 생성할 때 만들어져 있는 것처럼 되어 있음_실제 작동은 없을 때만 만든다)
Render Target은 백 버퍼 같은 것
beginDraw - endDraw
렌더링 파이브라인
화면에 그리기 처리를 하기 위한 파이프라인
엔진이 초기화되는 시점은 필요한 것들이 나오고 난 이후
D2D에는 윈도우 핸들이 필요함(여러 개 있을 수 있음)
RenderTarget은 하나만 있으면 됨(for문에 있을 필요가 없음)
하지만 깨질 경우을 대비해서 null 체크를 해야함
(작게는 윈도우 사이즈 크기가 바뀌거나 그래픽 카드가 바뀌거나 등등)
Initialize랑 CreateDeviceResoureces만 하면 초기화는 끝
Render는 그림을 그리는 것
참고 사이트
https://pang2h.tistory.com/344
SSS
'게임 프로그래밍(학습 내용 정리) > 2D Game Programming' 카테고리의 다른 글
Physics (0) | 2022.01.19 |
---|---|
Transform (0) | 2022.01.12 |
Collision Detection (0) | 2022.01.07 |
2D 게임 프로그래밍의 간략한 역사 (0) | 2022.01.05 |