WIKI
HiDPI
HiDPI
고해상도 디스플레이에서 스케일링이 필요한 이유와 운영체제별 구현 차이는 무엇인가.
Scope
핵심 질문
HiDPI 디스플레이에서는 왜 논리 pixel과 물리 pixel을 분리해 scaling해야 하는가?
Research
핵심 근거
- 고해상도 panel에서 1 CSS/logical pixel을 1 physical pixel로 표시하면 UI가 지나치게 작아진다.
- integer scaling은 선명하지만 크기 선택이 제한되고 fractional scaling은 flexibility 대신 추가 rendering cost와 blur 가능성이 있다.
- multi-monitor 환경에서 서로 다른 scale factor를 지원하는 것이 주요 난점이다.
Draft
HiDPI는 화면 크기에 비해 pixel 밀도가 높아 기존 1:1 UI 크기로는 글자와 버튼이 너무 작게 보이는 디스플레이 환경을 말한다.
Logical Pixel
운영체제는 애플리케이션이 사용하는 logical coordinate와 실제 panel의 physical pixel을 분리한다. 200% scaling에서는 logical 1 단위를 2x2 physical pixel로 그릴 수 있다.
Fractional Scaling
125%, 150%처럼 정수가 아닌 scale은 사용자가 원하는 크기를 세밀하게 맞출 수 있지만 compositor가 중간 해상도로 render한 뒤 rescale하는 방식에서는 비용과 blur가 생길 수 있다.
다중 모니터
노트북 4K 화면과 외장 1080p 화면을 함께 사용하면 각 monitor에 다른 scale이 필요하다. Window가 monitor 사이를 이동할 때 toolkit과 compositor가 적절히 재렌더링해야 한다.
핵심
HiDPI 문제는 해상도 선택이 아니라 물리 pixel 밀도와 논리 UI 크기를 독립적으로 다루는 rendering 문제다.