[Unreal Engine 5] Virtual Shadow Map - 렌더패스 분석
·
언리얼 엔진
이전 포스트https://jooh3444.tistory.com/36 [Unreal Engine 5] Virtual Shadow Map기본 아이디어Shadow Map 해상도가 낮으면 그림자에 aliasing이 발생한다.이를 해결하기 위해 다양한 시도들이 있다.Cascaded Shadow Map : 거리에 따른 Shadow map 분리Variance Shadow Map : 텍스쳐 샘플링 때, 분jooh3444.tistory.com 먼저, 이 글에서는 분석 단순화를 위해 directional light, clipmap 동작에 대해서만 분석하는 것을 목표로 한다.Directional Light는 Mipmap을 사용하지 않기 때문에 이 글에서 mipmap관련 처리 패스 InitPageRectBounds, Gen..
[Unreal Engine 5] Virtual Shadow Map
·
언리얼 엔진
기본 아이디어Shadow Map 해상도가 낮으면 그림자에 aliasing이 발생한다.이를 해결하기 위해 다양한 시도들이 있다.Cascaded Shadow Map : 거리에 따른 Shadow map 분리Variance Shadow Map : 텍스쳐 샘플링 때, 분산에 따른 필터링 방법…Virtual Shadow Map은 Shadow map 해상도를 16K 같이 고해상도로 늘리는 방식이다. 이 방식은 aliasing은 줄이겠지만, 16K 텍스쳐는 메모리를 엄청 사용한다. 단순히 D32 float의 depth만 저장하더라도 2^14 * 2^14 * 4 = 10억 Byte = 1GB16K 텍스쳐 한장에 1GB 정도 사용한다. Mipmap까지 포함하면 대략 1.3GB 정도는 사용한다.Directional Ligh..
[Unreal Engine 5] Nanite Basepass 분석
·
언리얼 엔진
선행 내용https://jooh3444.tistory.com/32 Two-pass Occlusion CullingHZB Occlusion CullingHZB란? depth buffer의 Mipmap 이다.원본 depth buffer에서 downsampling을 해서 만들되, 상위 4 texel의 min / max 값을 가지고 있다.reversed-Z 여부에 따라 min/max 값 결정한다. (필요에 따라 둘 다 저jooh3444.tistory.com http://filmicworlds.com/blog/visibility-buffer-rendering-with-material-graphs/ Visibility Buffer Rendering with Material Graphs filmicworlds.com..
Multi-Scattering BRDF
·
Computer Graphics
Image Based Lighting - Single Scatter model이전 포스트 (https://jooh3444.tistory.com/33) 에 구현된 라이팅 모델 결과물입니다.SingleScattering 이라고 부르는 이유는 글 뒷부분에서 언급됩니다. Energy Loss on rough surfaceRoughness가 낮을수록 어두운 느낌이 드는데요, White furnace test를 해서 에너지가 잘 보존되고 있는지 확인해볼 수 있습니다. White Furnace Test라이팅 모델이 잘 구현된 경우, 모든 방향에서 완벽한 흰색 light가 들어온다고 가정하면 물체는 완벽한 흰색 (1,1,1)이 되어서 배경과 구분할 수 없게 됩니다.그래서 내 라이팅 모델이 제대로 구현되었는지 이 테스..
Image Based Lighting
·
Computer Graphics
Reflectance functionLo : Out Radiance - 점 p에서 Wo(카메라 방향) 으로 반사하는 RadianceLi : Incident Radiance - 점 p에서 Wi (광원 입사 방향) 으로 입사하는 Radiancefr : BRDF 함수. 점 p에서 Wi 방향으로 입사한 빛이 Wo 방향으로 반사하는 비율.Sn dot wi : 램버트 코사인 법칙. 광량은 입사각에 따라 감쇠. 중요한 것은 BRDF 함수이것에 따라서 렌더링 결과물이 달라진다.Physically Based Rendering에서는 미세면이론, 에너지 보존을 고려하여 모델링한다.PBR 계산을 위한 재질 파라미터albedo, metalic, roughness, normal, fresnel (F0)F0 은 normal 방향의..
Two Pass Occlusion Culling
·
Computer Graphics
HZB Occlusion CullingHZB란? depth buffer의 Mipmap 이다.원본 depth buffer에서 downsampling을 해서 만들되, 상위 4 texel의 min / max 값을 가지고 있다.reversed-Z 여부에 따라 min/max 값 결정한다. (필요에 따라 둘 다 저장) HZB 사용처Occlusion cullingScreen Space Reflections ( screen space ray casting 가속을 위해)Volumetric Fog보통 HZB에 대해 뎁스테스팅은 Compute Shader에서 AABB 로만 보수적으로 진행한다.결과물을 indirct draw call arguments 버퍼를 만들어 저장해두고, 그 후, 결과물을 Indirect Draw Ca..