# GTK용 새로운 렌더러

> Clean Markdown view of GeekNews topic #13105. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=13105](https://news.hada.io/topic?id=13105)
- GeekNews Markdown: [https://news.hada.io/topic/13105.md](https://news.hada.io/topic/13105.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-01-30T10:02:57+09:00
- Updated: 2024-01-30T10:02:57+09:00
- Original source: [blog.gtk.org](https://blog.gtk.org/2024/01/28/new-renderers-for-gtk/)
- Points: 1
- Comments: 1

## Topic Body

### GTK의 새로운 렌더러

- GTK에 GL과 Vulkan을 위한 두 가지 새로운 렌더러가 추가됨.
- 이들은 "ngl"과 "vulkan"이라는 기존 이름을 재사용하여 명명됨.
- 같은 소스에서 구축되어 "통합" 렌더러라고도 불림.

#### 단일 소스

- 두 렌더러는 동일한 소스에서 구축되며 Vulkan API를 따르는 모델로 설계됨.
- Vulkan과 GL 사이의 차이점을 커버하기 위한 추상화를 포함함.
- 장면 그래프 탐색, 변환 유지, 텍스처 및 글리프 캐싱 등의 인프라 공유가 가능함.
- macOS의 Metal 기반 렌더러나 Windows의 DirectX 기반 렌더러로 확장 가능성이 있음.

#### 구현 세부사항

- 기존 GL 렌더러는 간단한 셰이더를 사용하고 복잡한 내용에 대해서는 오프스크린 렌더링에 의존함.
- 통합 렌더러는 각 노드별 셰이더를 가지고 있으며, 오프스크린 대신 버퍼에서 데이터를 해석하는 복잡한 셰이더를 사용함.
- 통합 렌더러는 최적화가 덜 되어 있지만, 정확성과 유지보수에 중점을 두어 더 다양한 렌더 노드 트리를 정확하게 처리할 수 있음.

#### 새로운 기능

- 안티앨리어싱: 기존 GL 렌더러는 세부 사항을 잃어버리는 문제가 있었으나, 통합 렌더러는 안티앨리어싱을 통해 이를 개선함.
- 분수 스케일링: 통합 렌더러는 분수 스케일을 제대로 처리할 수 있음.
- 임의의 그라데이션: 통합 렌더러는 무제한 색상 정지점을 가진 그라데이션을 처리할 수 있음.
- Dmabufs: Vulkan 렌더러는 render_texture API를 통해 텍스처를 생성할 때 dmabufs를 생성할 수 있음.

#### 주의할 점

- glshader 노드는 더 이상 지원되지 않음.
- 분수 위치: 새 렌더러는 정확한 위치에 객체를 배치함.
- 드라이버 문제: 새 렌더러는 그래픽 드라이버를 새롭고 다른 방식으로 사용하므로 문제가 발생할 수 있음.

#### 속도는 더 빠른가?

- 아직은 새 렌더러가 더 빠르지 않음.
- 기존 GL 렌더러는 속도에 최적화되어 있으나, 새 렌더러는 새로운 기능과 정확성을 제공함.
- Vulkan 렌더러는 비공식 벤치마크에서 기존 GL 렌더러와 비슷한 성능을 보임.

#### 새로운 기본값

- 최근 발표된 4.13.6 스냅샷에서 ngl 렌더러를 새로운 기본값으로 설정함.
- 이는 시험적인 조치이며, 문제가 발생하면 기존 GL 렌더러로 되돌릴 수 있음.

#### 미래 계획 및 가능성

- 새 렌더러는 HDR을 포함한 적절한 색상 처리, GPU에서의 경로 렌더링, 메인 스레드 외부 렌더링, 성능 향상 등을 구현하기 위한 좋은 기반이 됨.

#### 요약

- 새 렌더러는 흥미로운 기능을 가지고 있으며, 더 많은 기능이 추가될 예정임.
- 새 렌더러를 시도해보고, 작동 여부에 대한 피드백을 요청함.

GN⁺의 의견
- 새로운 렌더러는 개발자들에게 더 정확하고 다양한 렌더링 옵션을 제공하는 중요한 발전임.
- Vulkan과 GL의 통합 접근 방식은 향후 다양한 플랫폼에서의 렌더링 호환성을 향상시킬 잠재력을 가짐.
- 이러한 기술적 진보는 사용자 경험을 개선하고, 애플리케이션의 시각적 품질을 높이는 데 기여할 것임.

## Comments



### Comment 22665

- Author: neo
- Created: 2024-01-30T10:02:57+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=39172377) 
- 2010년경에 HTML과 CSS만을 사용하여 브라우저에서 GTK 애플리케이션의 UI를 구현할 수 있는 실험적인 HTML 렌더러가 있었음. 당시에는 Atom, VS Code, Electron, 아마도 NodeJS가 등장하기 전이라 매우 인상적이었음. 현재 그 HTML 렌더러의 존재 여부는 불명.
- GTK가 타이틀바에 위젯을 허용하는 추세를 따르는 것에 대한 아쉬움. 일부는 드래그가 가능하고 일부는 불가능하여 애플리케이션과 파일 이름에 할당된 공간이 줄어듦. 이는 GTK에만 국한된 문제가 아님.
- 리눅스의 데스크톱 환경 작동 원리에 대한 이해 부족. 점점 더 복잡하고 추가된 것처럼 느껴짐.
- 픽셀 단위의 정밀한 분수 스케일링에 대한 흥분.
- wgpu.rs를 사용하면 DirectX와 Metal을 무료로 얻을 수 있음을 언급.
- ANSI 텍스트 렌더러에 대한 관심, 이를 통해 xterm 내에서 GTK 프로그램을 실행할 수 있음. 선택적으로 sixel 기능도 추가될 수 있음.
- 성능 저하가 받아들여지는 이유에 대한 의문. 구형 하드웨어에서 대부분의 컴퓨팅을 수행하며, 이러한 기능은 비활성화하거나 GPU에서 지원하지 않을 수도 있음.
- GTK 작업이 재미있고 멋진 것으로 보임. 안티앨리어싱에 대한 언급과 게임 엔진에서 폰트 렌더링에 사용되는 서명 거리 필드 기술의 적용 가능성에 대한 기대감. 게임 렌더러에서 사용되는 다양한 기술이 GUI 코드에도 유용할 수 있음.
- 오픈소스 GUI 툴킷 렌더러보다 몇 세대 앞서 있는 렌더러를 개발한 많은 그래픽 엔진 개발자들이 있지만, 대부분 게임 개발 회사에서 일하고 있어 오픈소스 스택에 기여할 시간이 없음. 커뮤니티가 정기적인 예산을 조직하여 이러한 개발자들에게 지불할 수 있다면, 오픈소스 데스크톱에 상당한 렌더링 및 툴킷 업데이트를 볼 수 있을 것임.
- 특정 댓글이 신고되어 내용이 숨겨짐.
