일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 형변환
- Realtime Rendering
- C++
- UE4
- 게임QA
- java
- metascore
- sort함수
- know
- might have p.p
- html
- continue to
- by any chance
- happen to
- 코로나19
- keep -ing
- for ing
- relif
- 명절 표현
- it's a good thing
- if조건절
- by until
- I'm glad
- counldn't have
- gameQA
- 명세기반테스트
- 제5인격
- end up ing
- ISTQB
- 변수
- Today
- Total
Records rather than Memories
Real-Time Rendering Fundamentals 본문

Real-Time Rendreing의 특징
A mix of solutions
- Real-time rendering is complex and demanding
- Plus we often need a patchwork of different solutions to overcome a challenge
Real-Time 렌더링은 다양한 솔루션의 종합판이라고 할 수 있습니다.
그 이유는 복잡하고 어렵기 때문인데 렌더링의 각 단계를 미리 계산하기 위해 최대한 부담을 줄여야합니다.
- Plus we often need a patchwork of different solutions to overcome a challenge
직면하는 문제가 복잡하기 대문에 여러가지 솔루션을 조합해서 사용합니다.
여기서는 조합하는 Real-Time 렌더링의 두 그룹으로 살펴보겠습니다.
1. 미리 계산
2. 실제 실시간 렌더링
그 중 하나 오클루전 시스템이 좋은 예입니다. 오클루전은 어떤 것이 보이고 안보이는지 결정하는 것입니다.(해당 프레임에서 렌더링할 것과 렌더링하지 않을 것을 결정)
Ex. 벽에 가려 보이지 않는 것과 보이는 부분을 결정하는 것이 오클루전 프로세스
그런데 이러한 오클루전 시스템에는 일부 미리 계산하는 부분이 있고 실제 실시간인 단계가 있습니다. 이에 대한 솔루션은 여러가지가 있는데 가시화되는 대상을 정하는 것 자체 또한 어려운 작업이기 때문입니다.
Scalability
- Real-time rendering은 기본적으로 렌더링 퀄리티를 언제든 바꿀 수 있어야합니다. 즉 렌더링 도중에 스케일을 자체적으로 조절할 수 있어야합니다.
> 속도를 올려 퀄리티를 낮춤 또는 속도를 늦춰 퀄리티를 높임
> 이러한 자체 조절 능력이 있다면 콘텐츠 스케일을 자체 조절할 수 있어 다양한 디바이스에서 실행할 수 있습니다.(모바일,PC 등)
- 확장성을 위한 R. commands
- Maintaining good perfomance is a combination of mastering the scalability settings, and correctly authoring the content
*R. commands 활용
- 콘솔에서 명령어를 입력해 확인 가능


Two ways of rendering
- Deferred Rendiring & Forward Rendering
UE에만 있는 기능은 아니고 사용하는 소프트웨어와 엔진 관계없이 사용되는 렌더링 방법입니다. 기본적으로는 Deferred Rendering이지만 설정에따라 Forward Rendering을 사용합니다.
매우매우 간단하게 나누자면 일반적으로
1. 디퍼드 렌더링은 고사양 애플리케이션에서 안정적인 퍼포먼스(고급 애플리케이션)
2. 포워드 렌더링은 간단한 용도나 하드웨어 성능이 제약된 상황에서 좋은 퍼포먼스(모바일, VR, 모바일VR)
또한 디퍼드는 더 많은 추가 기능을 가지고 있고 이러한 이유로 디퍼드를 기본적으로 사용하고 제약이 있을 경우 포워드를 사용하게되는 것입니다.
두 가지의 또다른 차이점들을 보자면,
- 안티 앨리어싱의 경우 포워드에서 더 잘 구현됩니다.
- 디퍼드는 Temporal Anti-Aliasing의 약자인 TAA만을 제공합니다.(이때문에 프레임에서 약간의 고스트 현상이 발생)
[추가로 포스팅할 개념]
*Anti-Aliasing
*고스트 현상(잔상 현상)
GBuffer
- 각 프레임 이미지 세트를 말합니다.(기본적으로 디퍼드 렌더링에서 사용)
- 이미지에 저장되는 모든 정보가 렌더링 작업에 쓰이고 여기서 말하는 작업은 실시간 합성입니다.
- 화면을 다양한 버전으로 렌더링 출력 > 그룹화 하여 GBuffer에 두고 > 여러 버전을 활용해 다른 작업을 할 때 사용할 수 있습니다.
Ex. 씬에 안개를 적용하고 싶다면? 앞서 저장한 GBuffer 패스에서 배경의 뎁스를 캡처합니다.
> 이 모든 작업은 백그라운드에서 이루어지지만 GBuffer의 존재 및 의미를 이해하는 것은 실시간 렌더링이 좋고 좋지 않은 부분에 대한 이해를 할 수있기 때문입니다.

위 사진의 오른쪽 리스트에 있는 이미지 모음이 GBuffer입니다. 각각 GBufferD, GBufferC...
각 이미지는 픽셀 방향, 머티리얼의 메탈릭, 베이스 컬러 등입니다.
Pixel and Vertex Shaders
- 렌더링 도중에는 아주 단순한 계산을 쉴새 없이 반복해야합니다.
- 이 계산을 일반 프로세서에서 처리하기에는 느린 작업이 되기 때문에 그런 작업만을 담당하는 HW, SW를 만들었는데 그것이 Shader입니다.
- Shader는 GPU 하드웨어의 전담 부분에서 단순 계산을 반복합니다. 즉, 당연하게도 Shader의 성능은 렌더링 성능에 크게 영향을 미칩니다.
- PIxel Shader는 값을 조정하고 색을 변환해 새로 출력합니다.(픽셀 셰이더는 픽셀 단위, 버텍스 셰이더는 버텍스 단위)
- All real-time lighting, shading, the rendering of th materials, fog, post process effects and agreat many things more are Pixel Shaders
'UE-4' 카테고리의 다른 글
Ureal Engine 이란? (0) | 2022.03.06 |
---|---|
Unreal Engine 5 - 루멘(01/22) (0) | 2022.01.18 |
[UE-4] 언리얼 엔진 4 용어 정리 (0) | 2021.12.28 |
UE-4 온라인 러닝 (0) | 2021.12.28 |