WinCNT

Windows Programming - Bitmap 본문

게임 프로그래밍(학습 내용 정리)/Win32API

Windows Programming - Bitmap

WinCNT_SSS 2021. 11. 15. 13:38

비트맵은 Raster Graphics

(반대말은 벡터 그래픽스 - 선형으로 정보를 저장하는 것)

 

삼각형을 그릴 때 해당 좌표에 점들을 찍는 것이 래스터 그래픽스,

각 점들의 데이터를 저장해서 표현하는 것이 벡터 그래픽스이다

 

3D 그래픽에서 각 점들은 벡터이지만 텍스쳐는 비트맵이거나 한다

DDB/DIB

비트맵의 특징

슈퍼 솔루션

픽셀 퍼펙트 - 원본 텍스처의 실제 크기와 디스플레이에 표시하는 크기가 1:1로 일치할 때

 

색상

2비트, 8비트, 24비트, 32비트에 따라 표시할 수 있는 색상이 제한됨

  • 1비트 (2색)
  • 8비트 (256색)
  • 24비트(3바이트, RGB, 16,777,216색)
  • 32비트(ARGB / RGBA)

스프라이트(Sprite)

투명한 배경의 이미지

2D Sprite: 특정한 색(컬러키)을 투명색으로 취급해서 투명색으로 썼다

 

알파블랜딩

Alpha(투명도) 값에 따른 색의 혼합

디더링, 플래커링

 

Premultiplied Alpha이어야 함

없으면 값 채널의 값에다 알파 값을 곱하는 작업이 필요함

함수

BitBlt - 비트맵 설정

TransparentBlt - 칼라키로 투명색 설정

AlphaBlend - 비트맵의 투명도 조절

 

MemBlt

더블 버퍼링에 주로 이용

메모리에 미리 그려서 완성된 그림을 한 번만 보여준다(매 프레임마다)

 

SSS