* 이 게시글은 아래 영상을 공부한 내용을 개인적으로 정리한 것입니다.
[그래픽스 라이브러리(GL)]
플래폼마다 지원하는 그래픽스 라이브러리가 다름 (그래픽스 라이브러리 = 그래픽스 API)
유니티는 여러 플랫폼에서 사용/배포가 가능함 → 다양한 그래픽스 라이브러리를 지원함


유니티에서는 직접 사용고자하는 그래픽스 API를 고를 수도 있고, 자동으로 설정할 수도 있음
(최적화를 위해서는 필요한 것만 사용하는 것이 좋음)

씬 하나를 렌더링할 때는 한번에 뿅! 그려지는 게 아니라 하나하나 순차적으로 그려짐

[CPU와 GPU]
CPU에서 사용하는 메모리, GPU에서 사용하는 메모리가 따로 있음
(모바일에서는 하드웨어 원칙으로 하나의 물리적인 영역을 사용하지만 논리적으로는 구별되어있음)
CPU : 로직, 가비지컬렉터 등
GPU : 텍스처, 쉐이더 등

렌더링 하기 위해서 렌더 상태가 들어있는 테이블이 저장됨
CPU로부터 렌더링하라는 명령이 오면 렌더 상태를 체크해서 상태에 맞게 렌더링함
(세팅 → 렌더링 → 세팅 → 렌더링 → 반복)

상태 테이블 하나하나 커맨드임, 커맨트 버퍼에 쌓인 것들을 하나씩 처리함

쉐이더도 상태 테이블에 들어가는 것 중 하나
여러 가지로 세분화되어있음 → 우리 눈에는 하나지만 GPU에는 여러가지로 갈라져서 넘어감
(쉐이더도 하나하나의 프로그램이라 GPU에서도 이 프로그램을 이용해 렌더링 함,
그래서 바꿔야 하는 상황이 발생하면 꽤 많은 비용을 먹게 됨 > 성능 이슈)

[DirectX10 렌더링 예시]
하나의 오브젝트를 렌더링하기 위해 거치는 코드 예시

'공부 나눔 (Sharing Study) > Unity만' 카테고리의 다른 글
[Unity] 병목 현상 해결하기 (0) | 2023.09.11 |
---|---|
[Unity] 드로우콜과 배칭 (0) | 2023.09.11 |
[Unity] 미니맵 원하는 모양으로 만들기 (+컬링마스크) (2) | 2022.06.01 |
[Unity] Canvas/UI 에 영상 넣는 방법 (Raw Image, Render Texture) (3) | 2021.05.22 |
[Unity] 영상 넣는 방법 (알파값 있는 영상, 배경없는 영상) (2) | 2020.05.11 |