환영합니다
지난 강의에서 높이 마스크와 경사 마스크를 합쳐 성공적으로 foliage(폴리지) 마스크를
만들었습니다
이제 이 마스크를 사용하여 Landscape(Landscape(랜드스케이프))에 Foliage(폴리지)를 채울 수 있습니다
지금 Landscape(랜드스케이프) 상태입니다
현재 Foliage(폴리지)가 없고 이것이 Frame Rate(프레임 레이트)이며 저는 녹화 중이므로
이 scene(씬)의 성능을 정확하게 나타내지 않을 것입니다
따라서 여러분 각자의 Frame Rate(프레임 레이트)를 참고하셔야 합니다
머티리얼 인스턴스로 이동합니다
UseAutoGrass를 체크하면
Frame Rate(프레임 레이트)가 상당히 줄어드는 것이 보이며 대략 70 정도입니다
따라서 Foliage(폴리지)는 비싼 에셋 유형이며 그러나 scene(씬)의 성능을
향상 시키기 위한 방법이 몇 가지 있습니다
이번 강의에서 몇 가지 방향과 방안을 제시하여
여러분의 성능에 도움이 되는지 직접 확인하실 수 있습니다
처음으로 볼 것은 Virtual Shadow Map(버추얼 섀도 맵)입니다
버추얼 섀도 맵은 해상도가 매우 높은 섀도 맵입니다
자료 드롭 다운에 링크를 남겨 놓을 것이니 살펴보시면 됩니다
그곳에서 이것이 무엇이고 어떤 것을 할 수 있는지 상세하게 확인하실 수 있습니다. 그러나
제공되는 섀도의 퀄리티로 인해 scene(씬)에 매우 비쌀 수 있습니다
따라서 Edit으로 들어가서 Project Settings로 들어가서 'shadowmap'을
입력하면
Shadow Map Method(섀도 맵 매서드)가 보입니다
그리고 Virtual Shadow Map에서 Shadow Maps로 변경합니다. 이를 통해 Frame Rate(프레임 레이트)가
상당히 올라가는 것이 보입니다
그러나 대신에 버추얼 섀도 맵을 사용할 때만큼 그림자가 자연스러워 보이지 않습니다
이것이 전환 섀도 맵이고 버추얼 섀도 맵으로 바꾸면
이것이 버추얼 섀도 맵입니다
이 두 방법의 차이가 보입니다
버추얼 섀도 맵이 더 멋진 그림자를 제공합니다
그렇다면 버추얼 섀도 맵을 유지하면서 성능을 다소 올릴 수 있는 방법이 있을까요?
살펴볼 만한 방향이 몇 가지 있습니다
먼저, 사용해볼 수 있는 console command(콘솔 명령어)이 두 가지 있습니다
첫 번째는 r.Shadow.Virtual.NonNanite.IncludeInCoarsePages 0입니다
이 콘솔 명령어를 입력하고 0을 넣음으로써 non-nanite(비나나이트) 메시에 대해 Coarse Page(코어스 페이지)를 비활성화합니다
여기서 너무 기술적으로 설명하지 않을 것이기 때문에 코어스 페이지가 무엇인지 궁금하시다면 이 역시
링크에서 찾아보실 수 있습니다
Foliage(폴리지)의 경우 Epic에서 이를 끄는 것을 권장하며 버추얼 섀도 맵을 사용할 때
성능을 상당히 향상 시킬 수 있습니다
이를 먼저 시도해 보겠습니다
프로젝트로 돌아갑니다
키보드에 물결(~)키를 두 번 누르면
출력 로그가 나옵니다
여기에 r.shadow
virtual.non을 입력합니다
보시면 NonNanite.IncludeInCoarsePages가 보입니다
뒤에 0을 입력하면 이 기능이 꺼집니다
Enter키를 누르면 Frame Rate(프레임 레이트)가 80으로 올라갑니다
따라서 섀도의 품질을 유지하고 싶다면 이 콘솔 명령을 이용하여
Frame Rate(프레임 레이트)를 약간 향상 시킬 수 있습니다
사용할 수 있는 다음 명령은 r.Shadow.Virtual.UseFarShadowCulling 0입니다
마찬가지로 0을 입력하여 이를 끌 수 있습니다
scene(씬)에 저에게서 아주 멀리 떨어진 풀이 있습니다
이 명령을 사용하여 그림자를 끄고 성능을 약간 향상 시킬 수
있습니다
물결 키를 또 눌러줍니다. 이번에는 'r.shadow.virtual.use'를 입력합니다
여기 UseShadowCulling이 보입니다
그리고 잊지 말고 0을 입력해야 합니다
입력해야 꺼집니다. 이제 Enter를 누릅니다
이 명령은 scene(씬)에 Foliage(폴리지)가 많은 경우, 특히 멀리 있는 Foliage(폴리지)가 많은 경우
성능이 약간 향상 될 수 있습니다. 저는 화면을 녹화하고 있기 때문에
scene(씬)의 성능을 정확하게 반영하지 않을 수 있습니다
그러니 여러분 각자의 scene(씬)을 참고하여 이 명령문이 할 수 있는 것을 확인하시기 바랍니다
콘솔 명령 이외에도 여러분이 살펴볼 수 있는 몇 가지 다른 방향이 있습니다
예를 들어 Dynamic Shadow(다이내믹 섀도)입니다
다이내믹 섀도는 장점이 많지만 비싼 편이며 이를 끄면서
성능을 약간 향상 시킬 수 있습니다
이를 위해 LGT_Grass로 이동합니다. 여기에 Cast Dynamic Shadow(다이내믹 섀도 드리우기) 체크를 해제합니다
이제 또 Frame Rate(프레임 레이트)가 올라간 것이 보이며 그러나 이로 인해 풀이
덜 자연스러워 보입니다
항상 품질과 성능의 교환이 있으므로 여러분 개인이 선호하는 것에
맞춰 정하셔야 합니다
저는 다이내믹 섀도를 다시 켜 줄 것입니다
다음으로 볼 수 있는 것은 LOD입니다
이미 각 LOD는 각기 다른 트라이앵글 수가 있는 것을 알고 있습니다
scene(씬)의 트라이앵글 숫자를 줄임으로써 성능은 향상
됩니다
이를 이용하여 할 수 있는 것이 상당히 있습니다
풀이 위치한 곳으로 이동하여 더블 클릭하여 열어줍니다
LOD 전환 시작을 원하는 곳을 수동으로 override(오버라이드)할 수 있습니다
여기 LOD 2로 가면 화면 크기가 이 값을 도달하면 자동으로 풀이
LOD 2로 전환됩니다
그러나 화면 크기를 키운다면, 0.5로 올리겠습니다. 여기는 0.2까지 밖에 올라가지 않지만 무슨 의미인지 아실 것입니다
이제 scene(씬)에
LOD 2가 더 많이 있습니다
scene(씬)에 트라이앵글이 적을수록 성능에 도움이 될 것입니다
이를 0.08로 다시 설정합니다. 또한 LOD 별로 섀도 드리우기를 끌 수 있습니다
그러나 이 풀에는 LOD 1과 LOD 2에는 섀도가 생기지
않습니다
이 방법은 scene(씬)의 성능을 향상 시키는데 일반적으로 도움이 되는 기술입니다
세 번째는 Cull Distance(컬 디스턴스)입니다
이 컬 디스턴스를 줄임으로써 scene(씬)의 풀을 줄일 수 있습니다. 이를 통해 성능을 향상
시킬 수 있습니다
이를 하는 것은
상당히 간단합니다
LGT_Grass로 돌아가서 시작 컬 디스턴스와 끝 컬 디스턴스를 바꿀 수 있습니다
값을 8000에서 5000으로 바꾸고 끝 컬 디스턴스는 5500으로 해보겠습니다
이제 scene(씬)에 풀이 줄어들고 값을 1000으로 더 줄이고 끝 컬 디스턴스는
2000으로 줄이면 scene(씬)에 훨씬 적은 풀이 있으므로 당연히 성능에 도움을 줄 것입니다
그러나 이로 인해 여러분이 원하는 풀 양이 생기지 않을 것입니다
마지막으로 도움이 되는 것은 wind(바람)를 비활성화하는 것입니다
scene(씬)에 임포트하는 대부분의 Foliage(폴리지)는 바람 효과가 있습니다
그러나 이 기능을 비활성화하면 성능이 향상할 수 있습니다
이를 위해 풀의 마스터 머티리얼로 이동해야 합니다
이를 위해 돋보기를 클릭하시면 됩니다
M_FieldGrass_01이
마스터 머티리얼입니다
더블 클릭하여 열어줍니다. 바람을 끄기 위해
Time 노드가 위치한 곳으로 이동하고 핀 연결을 제거합니다
이것으로 이 유형의 메시의 바람과 움직임을 모두 비활성화할 수 있습니다
다시 활성화는 원한다면 소켓에 다시 연결하면 됩니다
Apply를 누르고 셰이더가 재컴파일되기를 기다립니다
이제 풀에 바람이 사라졌습니다
이것도 여러분이 사용해볼 수 있는 옵션이며 성능이 향상되는지 확인해 보실 수 있습니다
Foliage(폴리지)에 바람이 부는 것이 마음에 드신다면 하실 필요 없습니다
좋습니다
이제 여러분이 직접 해볼 차례입니다
여러분이 할 수 있는 두 가지 방법이 있습니다. 콘솔 명령과 Foliage(폴리지)에 취할 수 있는
액션이며 여러 방법을 사용해보시고 여러분에게 알맞는 방법을 찾아보시기 바랍니다
영상을 멈추고 진행해보시기 바랍니다
다시 오신 것을 환영합니다
어떠셨나요? scene(씬)의 Frame Rate(프레임 레이트)를 성공적으로 올리셨나요?
여러분에게 알맞는 방법을 찾으셨기를 바랍니다. 그것이 버추얼 섀도를 바꾸는 방법이든지
콘솔 명령을 사용하시든지 말입니다
이제 풀에 해결할 문제가 두 가지 있습니다
첫 번째는 LOD 간의 전환입니다
scene(씬)에 돌아다니면 LOD가 전환되면서 굉장히 눈에 띄는
테두리가 보입니다
또 다른 문제는 컬 디스턴스의 강력한 전환선입니다
따라서 scene(씬)에 돌아다니면 풀이 계속 튀어나옵니다
다음 강의에서 이 두 문제를 해결하는 방법을 알아보겠습니다
이번 강의에서 성능을 최적화하기 위한 방법을 살펴보았습니다
컴퓨터에 따라, 그리고 풀 양에 따라 결과가 다를 수 있습니다
그러나 시도할 수 있는 다양한 방법이 있다는 것을 알두는 것이 좋습니다
또, 성능과 품질이 항상 상충관계에 있다는 것을 잊으시면 안됩니다
다음 강의에서 뵙겠습니다