숲지역의 경우는 나무의 폴리곤 양이 많고 나무 간 밀도가 높기 때문에 Batches와 Shadow casters의 수치가 높습니다.

SetPass calls도 높습니다. 포퍼먼스에 상당한 영향이 있습니다.ㅠㅠ

이걸 최적화하는건 참 쉬움 일이 아닙니다.

우선은, Occlusion을 이용하여 보이지 않을 물체들을 그리지 않게 합니다. (의미 없는 스테이지도 있긴 합니다.)

Occlusion 적용전
bake
Occlusion이 적용된 상태

그리고, 시야에서 멀리는 물체에 LOD에 그림자가 생기지 않도록 만들었습니다.

그리고, GPU인스턴스를 이용해서 배치수를 줄이는 작업을 진행하였습니다.

이렇게 하니, 절반 정도 줄어들었군요.

그림자가 없어짐으로써 자칫 퀄리티가 떨어지는 문제가 있기 때문에 이 부분도 많이 신경을 써야 합니다.

아직도 갈길이 멀군요.

'업무일지' 카테고리의 다른 글

업무일지<shaderloader>  (0) 2023.02.24
업무일지<Memory>  (0) 2023.02.17
업무일지<어드레서블 시스템>  (0) 2023.02.01
업무일지<Terrain을 수동으로>  (0) 2023.01.19
업무일지<Terrain To mesh>  (0) 2023.01.17

중국에서 이펙트를 보내왔는데, 유니티에서는 멀쩡한데, 빌드만 되면 제대로 나오질 않는 문제가 발생.

핑크이거나 아예 안나오는 경우는 셰이더가 잘못된 가능성이 높은데, 나오기는 하지만 모두 하얗군요.

 

문제는 이펙트만 따로 빌드하면 멀쩡한데... 셰이더베리언트를 추가해도 제대로 나오질 않고...

이렇게 유니티에서는  멀쩡히 잘 돌아가는 셰이더는 문제점을 찾기가 어렵다는...

 

또 한가지 문제는 셰이더 그래프나 엠플리파이 셰이더를 이용한게 아니라  HLSL코드로 짠듯한 느낌입니다.

가득이나 HDRP의 셰이더 코드는 알아보기가 어려워 파악에 어려움이 있는데, 5000줄이 넘는 코드로 되어있어서, 이걸 이펙터가 짠거라면 보기드문 실력자라는 생각이 들긴한데, 내가 이 코드를 분석하기에는 어려움이 있군요.

이게 예전부터 있던 문제인데, 가장 의심되는 부분은 에셋번들인데, 여기만 거치면 셰이더에 매번 문제가 발생하는군요.

이걸 어드레서블 시스템으로 바꿨으면 좋겠는데, 개발쪽에서 개선의 의지가 없어서 아쉬움이 있습니다.

 

-- 이펙터가 우회적인 방법으로 해결한거 같은데, 모르겠군요...

 

'업무일지' 카테고리의 다른 글

업무일지<Memory>  (0) 2023.02.17
업무일지<Tree / Occlusion>  (0) 2023.02.13
업무일지<Terrain을 수동으로>  (0) 2023.01.19
업무일지<Terrain To mesh>  (0) 2023.01.17
업무일지<Texture량과 채널>  (0) 2023.01.16

에셋에서 구매한 Terrain to mesh는 바닥 부분을 자체적으로 셰이더을 사용하는데 이게 그리 가벼워 보이진 않습니다.

그리고 에셋에 종속된 형태라 좀 사용이 용이 하지 않습니다.

좀더 가볍게 만드는게 좋을거 같다고 판단하여 불필요한 부분을 통합하고 간편화시켰습니다.

바닥 텍스쳐를 6채널을 쓰다보니 좀 더 최적화하여, 4채널로 변경하고, 노멀과 마스크를 적게 사용하도록 변경하였습니다.
(본래라면 4개의 채널에 맞는 각각의 노멀과 마스크를 넣는게 맞겠지만, 저희 게임은 그렇게까지 할 필요는 없다고 판단 했습니다. )

결국 터레인도 Lerp으로 설계했을거라 생각하고 유사한 레이어를 구성하였습니다.

(역시나 뽑은 채널이 잘 적용됩니다.)

완성... 잘된거 같네요.

 

 

'업무일지' 카테고리의 다른 글

업무일지<Tree / Occlusion>  (0) 2023.02.13
업무일지<어드레서블 시스템>  (0) 2023.02.01
업무일지<Terrain To mesh>  (0) 2023.01.17
업무일지<Texture량과 채널>  (0) 2023.01.16
업무일지<PIX>  (0) 2023.01.12

아무리봐도 터레인이 무겁다고 느껴지네요. GPU인스턴스를 사용을 해도 여전히 무겁고...제어하기도 쉽지 않고...

그래서 터레인을 그대로 mesh로 옮기는 방법을 찾아봤습니다.

빌트인,URP,HDRP가 모두 사용이 가능한 어셋을 발견.

터레인 바닥과 나무들까지 깔끔하게 뽑힙니다.

다만, 나무들 방향이 정확하지 않은 단점이 있는데, 애초에 터레인도 나무가 내 맘대로 안되는거였으니, 어느정도 감수하고 수동으로 돌리면 됩니다.

'업무일지' 카테고리의 다른 글

업무일지<어드레서블 시스템>  (0) 2023.02.01
업무일지<Terrain을 수동으로>  (0) 2023.01.19
업무일지<Texture량과 채널>  (0) 2023.01.16
업무일지<PIX>  (0) 2023.01.12
업무일지<인디케이터효과>  (0) 2023.01.09

좌 19개 Texture, 우 14개&nbsp;Texture

캐릭터의 텍스쳐를 많이 사용하고 있다고 판단하여 이것을 줄일 수 있는 방법이 있는지 테스트하였습니다.

 

좌는 텍스쳐 19장을 사용한 것이고, 우는 텍스쳐 14장을 사용한 것입니다.

좌는 텍스쳐를 사용하되 채널을 R 하나만 사용하여 여러 텍스쳐로 구성되어 있고,

우는 metallic, smoothness, AO를 하나의 텍스쳐로 묶었습니다.

 

애초 생각은 여러 단일 텍스쳐를 하나의 텍스쳐로 묶으면 다 나은 결과가 나올 거라 생각했지만, 전혀 다른 결과가 나왔음.

단일 채널을 사용한 텍스쳐 쪽이 오히려 효율이 좋았습니다.

 

결론, 채널을 묶어서 텍스쳐량이 적어진다고 더 효율이 좋을 거라고 생각하지 않도록 하자.

단일 채널의 텍스쳐가 오히려 효과적일 수 있다.

'업무일지' 카테고리의 다른 글

업무일지<Terrain을 수동으로>  (0) 2023.01.19
업무일지<Terrain To mesh>  (0) 2023.01.17
업무일지<PIX>  (0) 2023.01.12
업무일지<인디케이터효과>  (0) 2023.01.09
업무일지<셰이더정리/추가 작업>  (0) 2023.01.05

최적화 관련 이슈를 보고 있습니다.

HDRP 커스텀 Lit에 텍스쳐만 넣은것
HDRP에 제공되는 Lit
Unlit에 Rim을 적용한 셰이더

 

수치가 매번 바뀌어 정확하진 않지만 대략적인 짐작은 할수있습니다.(만족스럽진 않지만 걍 참고정도만...)

확실히 Unlit과 Lit의 차이가 많이 나는걸 볼수있어요.

'업무일지' 카테고리의 다른 글

업무일지<Terrain To mesh>  (0) 2023.01.17
업무일지<Texture량과 채널>  (0) 2023.01.16
업무일지<인디케이터효과>  (0) 2023.01.09
업무일지<셰이더정리/추가 작업>  (0) 2023.01.05
업무일지<배경제작>  (0) 2023.01.03

새로운 배경을 제작하면서 이전에 사용하던 셰이더를 일부 정리하고 추가하는 작업중에 있습니다.

캐릭터 인디케이터와 일부 표식을 처리중인데 특정맵에서는 눈에 안띄인다고 하네요. 이를 개선작업하는 작업을 진행했습니다.

 

lerp와 boolen관련하여 어느것이 포퍼먼스에 좋은가에 대해서 좀 검색을 해봤는데 ChatGPT가 괜찮은 답변을 주는군요.

 

'업무일지' 카테고리의 다른 글

업무일지<PIX>  (0) 2023.01.12
업무일지<인디케이터효과>  (0) 2023.01.09
업무일지<배경제작>  (0) 2023.01.03
업무일지<fake shadow>  (0) 2022.12.29
업무일지<Depth Write>  (0) 2022.12.23

각종 나무와 바닥 재질을 어셋에서 구매하여 배경을 제작중입니다.

(예전에 제작했던 배경을 새로운 그래픽에 맞춰 퀄리티 업을 하고 있어요.)

오랜만에 터레인을 만지고 있네요.

항상 그래픽은 일단 퀄리티를 높게 만들고 최적화를 하는게 퀄리티에 좋습니다.

처음부터 최적화를 생각하고 만들면 퀄업이 힘들기 마련이라는...

'업무일지' 카테고리의 다른 글

업무일지<인디케이터효과>  (0) 2023.01.09
업무일지<셰이더정리/추가 작업>  (0) 2023.01.05
업무일지<fake shadow>  (0) 2022.12.29
업무일지<Depth Write>  (0) 2022.12.23
업무일지<HairShader>  (0) 2022.12.21

우리게임은 기본적으로 PBR방식의 셰이더를 사용하고 있습니다.

그래서 3D UI는 Unlit으로 만들 필요가 있다고 판단했습니다.

셰이더 그래프로 Lambert 구현하려고 하니...Lambert 공식을 본지 너무 오래되서 기억이 전혀 안나는군요.

그래서 얼추 비슷한걸 만들었습니다.

'업무일지' 카테고리의 다른 글

업무일지<셰이더정리/추가 작업>  (0) 2023.01.05
업무일지<배경제작>  (0) 2023.01.03
업무일지<Depth Write>  (0) 2022.12.23
업무일지<HairShader>  (0) 2022.12.21
업무일지<요상한 3dsmax>  (0) 2022.12.15