Unity/최적화 10

[Unity/최적화] Unity Korea Youtube - 알쓸유잡 메모리

Force To Mono : 스테레오 타입으로 변환, 모바일에서는 서라운드같은 음향효과가 크게 중요하지 않기 때문에 사용하는 편    (비권장)Decompress on load : 메모리에 압축을 풀어서 올림, 재생속도가 굉장히 빨라야되는거나 사이즈가 굉장히 작은 것 아니면 웬만해서 사용하지 않아야 함   (권장)Compressed into memory : 압축을 해서 올리는 것, 1메가 이하에 사용   (권장)Streaming : 긴 배경음악처럼 사이즈가 큰 것에 사용   IOS, AOS 상관없이 Vorbis 사용 권장배경음을 교체하는 경우   Mute를 사용해도 메모리에 올라가 있음   그러므로 사용할때마다 로드를 하는 방식을 권장

Unity/최적화 2023.05.31

[Unity/최적화] Unity Korea Youtube - Baked Lighting

https://youtu.be/J4iVXAYaJfQ실시간 라이팅과 shadow는 비싼 연산hard 는 한번만 샘플링, soft는 경계를 부드럽게 하기 위해 여러번 샘플링gi는 매우 비싸기 때문에 미리 구워놓는다lightmap: 빛을 텍스쳐로 만든것(19:00)ambiant occultion : on 하면 입체감 있게 표현가능(34:00) 다른 것보다 shadowmask가 더 자연스럽게 이어진다, 미리만든 텍스쳐 + 실시간 연산, 맵이 커지면 퀄이 낮아지기 때문에 밸런스가 중요DistanceShadowMask: 성능 조절을 위한 기능, 가까이 있는건 제일 자연스러워보이고 멀리 있는건 어색해보이나 성능을 높일 수 있음좁은 씬에 2048일때 6장이면 모바일에서 큰 편, 회사마다 다르므로 내부 회의 필수Form..

Unity/최적화 2023.04.10

[Unity/최적화] Unity Korea Youtube - 효율적인 텍스처 압축 이해하기& 꿀팁

텍스쳐 압축 DXT, ETC, PVRTC, ASTC - PNG, JPG : 비손실압축과 손실압축의 차이 > PNG, JPG 상관없음 어짜피 유니티에서 바꿔서 사용함 > 텍스쳐는 쉐이더에서 사용함 - 텍스쳐 압축(Texture compression) > 랜덤 액세스: 특정 지점에 바로 접근해서 빠르게 가져와야함 - png, jpg : 가변 비율 압축 PVRTC : POWER VR Texture compression - apple에서 주로 사용함 > 요즘은 ASTC로 쓰임 > 정사각형만 지원함, 블럭기반이므로 강제가 됨 > S3TC(블러기반) 와 차이는 블러 처리가 됨 ETC : 색상 저해상도로 저장, 밝기만 고해상도로 저장 - aos에서 주로 사용함 > 사람은 채도 변화에 둔감, 밝기 변화에 민감 > (4..

Unity/최적화 2023.04.04

[Unity/최적화] Unity Korea Youtube - 카메라와 컬링 완벽 이해

https://youtu.be/O0qliGO7Oesocculsition culling렌더링과 물리연산은 전혀 다른 이야기culling 후 layer 가 아니고 layer 후 culling!따라서 layer 처리를 한다고 해도 메시를 덜 그리는게 아님layer은 눈에만 안보이게 처리하는것LOD 시스템 : 멀리 있는 애들은 자름멀티 카메라보단 시네머신 사용 권장시네머신은 버츄얼 카메라로 카메라가 여러개 있는 것과는 다름카메라는 모델 -> 월드 -> 뷰 를 거쳐서 보여지게 하기 때문에 많은 연산이 들어감카메라에서 near farnear : 가까이 보여지는 영역far : 멀리 보여지는 영역멀리 보여지는 영역을 렌더링 하지 않는 방향으로 clipping far 과 fog 를 겹쳐서 사용

Unity/최적화 2023.04.03

[Unity/최적화] new Vector3 참조 타입? 값 타입?

vector3는 구조체 타입으로 스택에 저장되며 new를 한다고 힙에 메모리 할당이 일어나지 않는다고 함..ㄷㄷ..결론 -> Update에 new Vector3를 사용하는 것에 너무 걱정하지 말자관련 자료http://batmask.net/index.php/2020/04/17/414/ Unity: 매우 혼란스러운 Vector3 사용에 대한 이해unity를 써보면서 기본적이면서도 당황스러운 녀석이 Vector3였다. transform.position.set()을 해도 먹히지가 않네? update()안에서 이렇게 new를 남발해도 되나? 같은 것들. void Start() { transform.position.Set(1, 1,batmask.net

Unity/최적화 2023.03.17

[Unity/최적화] Unity Korea Youtube - 병목 현상

- 병목 확인 1. cpu gpu 중 누가 많이 쓰이는지 확인 > cpu가 gpu에게 명령을 내리는 것 : 드로우콜 > 명령을 하는건 따로 진행되는게 아니라 cpu가 진행하면서 gpu에게 던져주는 방식 ex) cpu 상사(물론 좋고 일잘러 상사), gpu 부하직원 -> 상사가 직원에게 일을 하나씩 주고 본인도 무지 바쁜 상황 > 둘은 평행구조라고 생각하면 됨 > 따라서 gpu가 바쁜데 cpu 문제를 고쳐봤자 최적화는 미비함, 반대도 마찬가지 안드로이드보다 아이폰이 최적화하기 쉬움 > 아이폰은 xcode로 프로파일링 2. 메모리(아직 확인 못함..) https://youtu.be/o3o7fVCV4OA

Unity/최적화 2023.03.09

[Unity/최적화] 거리 계산 Vector3.magnitude sqrMagnitude Distance

Vector3.normalize: 벡터의 방향(정규화, 길이를 1로 반환)벡터의 거리1) Vector3.magnitude2) Vector3.sqrMagnitude3) Vector3.Distance : 빼기 연산 없이 거리를 바로 구할 수 있음 개인 의견- 정확한 거리를 구할때는 Disatnce는 복잡한 계산이 들어가므로 magnitude가 더 좋다고 생각함.참고(*[4]가 기가막히게 설명을 잘써놨음) 1. https://obaltan-lab.tistory.com/552. https://docs.unity3d.com/ScriptReference/Vector3-sqrMagnitude.html 3. https://waraccc.tistory.com/114. https://answers.unity.com/que..

Unity/최적화 2023.02.02

[Unity/최적화] Update 비용 관련 참고 사항

신기한 update 비용 관련 테스트 https://velog.io/@leehs27/UpdateCallsCost Update를 호출할 때, 비용이 들까Unity에서 Update를 호출하는데 비용이 얼마나 드는지, 다른 방식을 이용할 때와 차이가 얼마나 나는지를 확인해봅시다.velog.io 원문은 이건듯?https://blog.unity.com/kr/technology/1k-update-calls 10000번의 Update() 호출 | Unity Blog솔직히 말씀드리면, 이 테스트가 매우 공정하다곤 생각하진 않습니다. 유니티는 당신의 Update문을 호출하기 위해 여러가지 작업들을 합니다. 이 GameObject는 Active되어 있는지, 이번 Update 루프가 진blog.unity.com 더 자세한 ..

Unity/최적화 2022.12.07

[Unity/최적화] Texture 2D Generate Physics Shape

최적화 관련 밉맵을 찾아보다가 texture을 확인했더니sprite는 Generate Physics Shape 기능이 있었다. 유니티 문서에서는 다음과 같이 이야기하고 있다.따라서 물리와 상호작용할 필요가 없는 경우 옵션을 비활성화 처리하는 것이 좋다.추가적으로 Mesh Type 과 관련한 내용도 있었는데기본적으로 Tight로 설정되어 있다.Full Rect 관련해서는 Sprite Atlas에서 겹치는 현상이 발생하면 변경해주면 해결된다는 말이 있었는데유니티 문서에서는 권장하지 않으므로 그냥 Tight를 사용하면 되겠다.텍스쳐, 메쉬 관련 최적화에 대해 아래 링크에서 자세히 다루어졌다.https://blog.unity.com/kr/technology/optimize-your-mobile-game-perf..

Unity/최적화 2022.09.16