UDN
Search public documentation:
GPUProfilingHomeKR
English Translation
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
UE3 홈 > 퍼포먼스, 프로파일링, 최적화 > GPU 퍼포먼스와 프로파일링
GPU 퍼포먼스와 프로파일링
문서 변경내역: Jeff Wilson 작성. 홍성진 번역.
개요
픽셀 셰이딩
오버드로
반투명 머티리얼은 GPU 퍼포먼스에 큰 문제가 될 수 있는데, 여러 개의 반투명 머티리얼이 겹칠 때, 또는 오버드로(overdraw) 때문에 더욱 그렇습니다. 일반적으로 어느 때고 반투명 머티리얼을 차지하는 화면공간 양을 제한하는 것이 좋을 텐데, 특히나 반투명 머티리얼이 겹칠 수 있을 때는 더욱 그러합니다. 파티클 시스템은 이 부분에 더욱 큰 영향을 끼칩니다. 파티클에 사용되는 머티리얼은 보통 반투명이기에, 어느 한 시스템에 파티클이 많이 그려진다 치면 오버드로가 엄청날 수 있는 것입니다. 파티클의 오버드로를 제한하기 위한 팁 몇 가지는 아래와 같습니다:- 복잡한 파티클을 조금 - 단순한 파티클을 많이 두는 것 보다는 복잡한 파티클을 조금 사용하는 파티클 시스템이 퍼포먼스면에서 좋습니다. 다수의 파티클이 만들어내는 이펙트를 머티리얼 안에서 만들 수 있다면, 하나의 파티클에 적용하는 것이 낫습니다.
- 화면공간 범위 제한 - 어느 파티클 이펙트가 화면상에서 차지하는 공간을 제한할 수 있다면, 그 이펙트의 오버드로 악영향도 제한됩니다.
- 겹치는 이펙트 제한 - 이펙트가 여럿 겹치면 어느 한 이펙트의 오버드로 영향이 증폭됩니다. 가능하면 동일 위치에 스폰해되는 다수의 이펙트를 찾아내어 그 대신 하나의 이펙트만 스폰하십시오.
불투명 마스킹
마스크드 머티리얼은 GPU 퍼포먼스 낭비의 원흉이 될 수 있는데, 지오메트리의 표면 각 픽셀은 결국 표시가 되든 안되든 평가(evaluation)를 거쳐야 하기 때문입니다. 마스크드 머티리얼 부하량을 최소화하기 위한 최적화 방법이 몇 있습니다.- 지오메트리를 표시 머티리얼 구역에 일치 - 픽셀이 엄청나게 낭비되는 단순 지오메트리를 사용하는 것 보다는, 메시에 디테일을 추가하여 그에 적용되는 머티리얼의 표시 구역에 가깝게 일치시키는 것이 훨씬 효율적입니다.
- 스페큘러 제거 - 꼭 필요하지 않다면, 마스크드 머티리얼에는 스페큘러 컴포넌트를 제거하여 픽셀 계산 낭비를 가급적 줄이는 것이 좋습니다.
- Non-Directional Lighting 사용 - 논-디렉셔널 라이트를 사용하면 낭비 픽셀 라이팅 계산에 필요한 인스트럭션을 줄일 수 있어서 퍼포먼스가 나아집니다.
다이내믹 라이팅
다이내믹 섀도우
SHOW DYNAMICSHADOWS
콘솔 명령으로 꺼 보면 빠르게 알아볼 수 있습니다. 키를 눌렀을 때 꺼지고 뗐을 때 켜질 수 있도록, 이 기능에 키를 지정하는 것도 추천할 만 하며, 다음 콘솔 명령으로 간단합니다: SETBIND F SHOW DYNAMICSHADOWS | ONRELEASE SHOW DYNAMICSHADOWS
.
언리얼스크립트에서 생성된 액터에 대해 ShadowParenting (그림자 부모화)를 활용하려 합니다. 이는 기본적으로 한 액터가 어태치먼트를 많이 가질 수 있어도 (부착된 것이 많아도) 딱 하나의 다이내믹 섀도우만 드리우게 한다는 뜻입니다. 무기, 헬멧, 배낭, 기타 부착을 가진 폰이 있을 때, 그 모든 "부착" 그림자를 폰 자체에 부모화시키는 것이 좋습니다. 그 방법은: Attachment.SetShadowParent(Parent.Mesh)