사전지식
Rendering(렌더링)
- 3D 컴퓨터 그래픽에서는 여러 점을 연결해 화면에 이미지를 만듦
- 여기서 이미지 → 렌더라고 함
- 3D 모델을 실제 이미지처럼 보이게 하는 과정 → 렌더링
렌더링이 왜 필요할까?
- 3D 모델은 구조, 모양만 존재 → 빛, 그림자, 색에 대한 요소 X
- 렌더링을 통해
- 빛을 어디에 비출지
- 그림자가 어떻게 혹은 어디에 생기는지
- 재질 등을 계산해서 진짜 처럼 보이게 만드는 과정
→ 그냥 뼈대만 있으니 거기에 색상, 그림자를 입혀 real하게 보이게 하는 거
3D 모델?
- Vertex라는 정점들로 구성되어 있는 뼈대
- 정점들을 연결하여 모양을 만들고 여기에 색, 재질, 빛 효과 등을 입혀 3D 이미지 생성
![]() |
![]() |
렌더링 파이프?
- 3D 모델이 화면에 나타나기까지 거치는 모든 과정
- 모델을 불러옴 → 정점 정보 읽어드림
- GPU로 모델을 보내고
- 세이더 함수가 이 정점들을 처리
- 이미지(텍스쳐)를 만들어내고
- 다시 CPU를 거쳐 화면에 출력
셰이더 함수
- 그림자와 빛을 계산하는 프로그램
- 이를 통해 반짝이는 금속, 매끄러운 플라스틱, 투명한 유리 등 다양한 효과주기가 가능해짐
요약
렌더링은 3D 모델에 빛, 그림자, 재질 등을 계산해 진짜 이미지처럼 보여주는 과정이고,
그 과정의 흐름을 렌더링 파이프라인 이라고 한다~
프레임(Frame)
- 게임의 경우 하나의 이미지로만 구성되어있지 않고, 캐릭터를 부드럽게 움직이게 하기 위해서 매초 여러장의 이미지를 빠르게 보여줘야함(렌더링)
- 이 때 한 장, 한 장의 이미지를 프레임이라고함
프레임 드랍?
- GPU가 너무 많은 작업(예: 복잡한 그림자, 수천 개의 잔디, 반사 효과 등) 을 하게 되면 1초에 60장을 못 그리고 30장, 15장 밖에 못 그릴 수 있음
- 이 경우 화면이 끊기는 것처럼 느껴지는 현상을 프레임 드랍
'Swift' 카테고리의 다른 글
[iOS] Metal - 0 (0) | 2025.02.08 |
---|---|
[iOS] SKIP.tools 사용기 (2) | 2025.02.05 |
[iOS] SKIP.tools? (0) | 2025.01.28 |
[iOS] About Swift Concurrency (0) | 2025.01.04 |
[iOS] About Kingfisher (1) | 2024.11.27 |