Replicated

[Graphics] 그래픽스 트러블 슈팅 본문

지식

[Graphics] 그래픽스 트러블 슈팅

라구넹 2025. 5. 30. 16:49

모델이 검게 나오는 경우

 

1. 조명

- 광원이 없는가

- 광원이 너무 멀거나 약한가

- 모델이 그림자 안에 있는가

 

2. 머티리얼/쉐이터

- 알베도 색이 검정인가

- 텍스처 누락, 에러

- 노말 맵 강도가 이상한가

- 쉐이더 오류

 

3. 노말 벡터 방향 확인

- 노말 벡터가 반전되어 있는가 (조명이 반대 방향으로 계산됨)

- 모델이 뒤집혀 있는가

 

4. 라이트맵, 전역 조명(GI) 관련

- 라이트맵이 깨졌는가

- GI 데이터 손상

- Light Probe 관련

 

5. 카메라 후처리 영향

 

6. 기타

- UV 오류

- 카메라 클리핑

- 백페이스 컬링

 


 

물체가 깜빡거리는 Z-figting 문제 원인과 해결책

두 개의 표면이 화면 상 거의 같은 깊이에 있을 때 발생, 렌더링 시 GPU가 어떤 면을 그릴지 결정하지 못해 생기는 오류

깊이 버퍼 상에서 서로 싸우듯 렌더링 순서가 뒤섞이는 현상임

 

원인

- 깊이 값이 거의 같은 두 면

- 카메라 near/far 비율 이상

- 중복 지오메트리 (똑같은 위치에 두 개의 면이 있으면 순서가 랜덤해짐)

 

해결 방법

- 오브젝트를 살짝 띄우기

- ZBias / Offset: 쉐이더나 머티리얼에서 깊이 편향 설정

- 카메라 near값 너무 작게 하지 않기

- Decal 전용 시스템 사용

- 중복 메시 제거

 


 

그래픽스 버그 디버깅 툴

- RenderDoc

- NVIDIA Nsight Graphics

- MS PIX

- Unity Frame Debugger

- Unreal View Modes & Debug Tools

 


 

쉐이더와 성능 저하

Vertex Shader: 정점 위치 계산

Fragment Shader: 픽셀 당 색 계산

 

복잡한 수학 연산, 분기문(GPU는 분기에 약함), 과다한 텍스처 샘플링, 불필요한 연산, 루프, 과한 반투명 오브젝트, ..

 

GPU 프로파일링 도구로 쉐이더 병목 찾기 가능

유니티: 프레임 디버거, 프로파일러,..

언리얼: Profile GPU, stat scenerendering ..

기타 그래픽스 디버깅 툴

 


 

부드러운 애니메이션 구현을 위해 고려할 사항

 

1.FPS

- 일관된 FPS

- 목표 프레임 설정

 

2. Delta Time 기반 애니메이션

- 모든 움직임, 회전, 변환은 DeltaTime을 곱해서 프레임 독립적으로 처리

 

3. 보간, 블렌딩

 

4. 입력 처리의 지연 최소화

 

5. CPU, GPU 병목 제거

 

6. 모션 블러와 같은 후처리