본문 바로가기

분류 전체보기238

[Unity] URP Asset: Lighting, Shadows ■ URP Asset[Lighting]Shadow resolution이 2048일 때 기준으로 예시를 들어보자면, 1. 태양은 씬에 2048 x 2048 크기의 텍스처를 적용한다. Unity는 이 텍스처의 픽셀마다 지오메트리를 계산하고, 각 지오메트리가 다른 지오메트리에 그림자를 드리우는지 확인한다. 위에 세팅한 텍스처에 그림자를 픽셀당 하나씩 찍고있는 셈인데 이를 섀도우 맵 (Shadow map)이라고 한다. 섀도우 맵의 해상도를 높여 그림자를 선명하게 만들 수 있다.2. 주 광원인 Directional Light에 대한 옵션은 아래와 같고 Additional Lights 옵션을 통해 Spot light 등의 부가적인 광원에 대한 옵션을 세팅해줄 수 있다.3. 해상도는 타겟 플랫폼과 목표 성능에 맞춰 .. 2025. 4. 14.
본체 청소 및 SSD 2종 방열판 부착 ■ 본체 청소 전 (문제 발생 및 성능 & 상태 확인)컴퓨터 구매 후 대략 2년 정도 지났다. 먼지가 너무 많이 쌓이기도 했고 최근에는 D드라이브로 사용하고 있는 Crucial P3 Plus 4TB 제품이 갑자기 인식이 안된 적이 있었다. Fast Boot를 Disabled하여 모든 하드웨어의 정상 작동 검사 후 부팅이 되도록 수정함으로써 정상 동작하는 것을 확인 하였으나, 근본적인 문제를 찾기 위해 CrystalDiskInfo와 CrystalDiskMark를 통해 SSD 성능 및 상태를 확인해봤다.[크리스탈 디스크 마크 벤치 테스트: 청소 및 방열판 부착 전]· SSD 970 EVO Plus : 최대 55도· Crucial P3 Plus 4TB : 최대 75도 원인은 작업 중 높아진 온도 때문인 것 같.. 2025. 4. 10.
[URP] Built-in Render Pipeline vs SRP ■ Built-in Render Pipeline (Legacy) 고사양 PC부터 저사양 모바일까지 원하는 만큼 다양한 플랫폼에 효율적으로 배포하기 위한 솔루션으로 개발되었음. 그래픽스 기능 조합을 지원하고 포워드 및 디퍼드 파이프라인과 함께 사용하기도 편리함. 하지만 지원 가능 플랫폼의 숫자가 늘어나면서 빌트인 렌더 파이프라인의 약점이 아래와 같이 점차 파악되어짐.기존 렌더 파이프라인의 단점1. 다량의 코드가 C++로 작성되어 있기 때문에 개발자의 수정 및 파악이 어려움2. Render Flow와 Render Pass가 미리 구성되어 있음3. 렌더링 알고리즘이 하드 코딩 되어있음4. 커스터마이징에 제약이 없어 모든 플랫폼에서 우수한 성능을 구현하기 어려움5. 렌더링 코드에 콜백이 노출되어 파이프라인에서 .. 2025. 4. 9.
[DOTS] ECS & C# Job System & Burst Compile 기초 실습 ■ 이론https://yjhdevelopdiary.tistory.com/247 [DOTS] C# Job System & Burst Compile 이론■ C# Job System 1. 유니티 내에서 멀티스레딩을 할 수 있는 방법 중 하나 2. 다른 방법들과의 차별점[장점]이 아래와 같이 있다. · Automates Scheduling · Safety Checks to avoid Race conditions and other yjhdevelopdiary.tistory.com■ 초기 예시 코드 (ECS중 Entity, Component) 1. RotateSpeedAuthoring (Entity) · 유니티 개체에 컴포넌트 부착을 위해 Monobehaviour 상속을 받음. [Bake]· Unity.Entiti.. 2025. 3. 1.
[DOTS] C# Job System & Burst Compile 이론 ■ C# Job System 1. 유니티 내에서 멀티스레딩을 할 수 있는 방법 중 하나 2. 다른 방법들과의 차별점[장점]이 아래와 같이 있다. · Automates Scheduling · Safety Checks to avoid Race conditions and other common issues with multi-threading  [Race Condition 발생 조건] 1. 공유 자원(Shared Resource)에 여러 스레드가 접근 2. 동기화가 제대로 이루어지지 않음 3. 스레드가 순서에 상관없이 실행됨  3. 많은 양의 연산 혹은 수행을 할 때 사용하기 적합하다. · 예로 Procedural Generation, Path Finding, Complex Algorithms 등등이 있다.·.. 2025. 3. 1.
[DOTS] Netcode For Entities, Physics ■ 참고https://www.youtube.com/watch?v=Bz24Jp30nkM ■ Netcode For Entities란?· Multiplayer networking compatible with ECS· 특히 경쟁 게임에서 사용하길 유니티에서 권장 및 강조함· Network Speed & Accurancy를 보장하기 때문 [Server Authoritative]1. 서버 중심 제어· 모든 중요한 게임 이벤트는 서버에서 검증되고 처리됨2. 클라의 역할· 주로 입력 값 (Input Data)를 서버에 전달하고 서버에서 수신한 결과를 화면에 표시하는 것[이점]1. 보안 강화· 클라가 게임 상태를 직접 제어하지 않음2. 동기화 안정성· 서버의 권위 상태를 따르기 때문에 Desync 발생 확률이 대폭 줄어.. 2025. 3. 1.
[DOTS] 기본 이론 및 ECS 내용 정리 ■ 참고https://www.youtube.com/watch?v=Bz24Jp30nkM ■ DOTS Packages Dots와 연관된 사항은 아래와 같다. 1. Entities (ECS) 2. Entities Graphics 3. Netcode for Entities 4. Physics 5. Jobs 6. Collections 7. Burst 8. Mathematics■ ECS (Entity Component System)  (1) 기존 OOP와 달리 ECS는 Data-Oriented Design (DOD) 원칙을 기반으로 게임 로직과 데이터를 분리하는 기법이다. · 이는 효율적인 데이터 처리 및 코드 모듈화와 확장성 증대 효과를 가져다준다. (2) ECS의 이름을 정확히 표현하자면 Entity & Com.. 2025. 3. 1.
[Unity] 사운드 출력기기 전환에 따른 이슈. ■ 이슈1. 게임에서 세팅한 AudioMixer의 Sound 옵션 값들이 리셋 된다.2. 배경 음악이 정지된다.■ 원인Unity 자체에서 사운드 출력기기 전환 시 Audio Engine을 re-init하고 있다. 이로 인하여 Audio Settings가 바뀌게 되므로 모든 Audio State의 추적이 끊기게 되어 Audio Mixer 등 오디오 관련 데이터들이 간접적으로 영향을 받을 수 있다. 구체적인 상황을 예로 들자면 안드로이드의 기본 스피커를 사용하고 있다가, 블루투스를 연동할 경우 재현이 가능하다.■ 해결1. Audio Settings의 Sampling Rate 복구 없이 Mixer의 볼륨 값만 다시 로드하니 해결되었음.2. 추후 이슈 재현 시 모든 세팅 값[AudioSettings 클래스] 값.. 2025. 2. 1.
[Unity] TMP폰트 관련 메모리 최적화 회사 프로젝트에서 다국어 작업 중 메모리 최적화를 진행한 적이 있었다.플레이 후 게임 옵션창에서 모든 언어를 한 번씩 설정을 해놓으면 폰트 관련 개체 및 아틀라스 텍스처 등이 425.4MB의 메모리를 차지하고 있었다. 여러 RnD 끝에 동일 환경에서 9.4MB까지 최적화에 성공했다.■ 기존  · Total: 425.4MB· Native Memory: 213.3 MB· GPU Memory: 212.0 MB· Managed: 108.5 KB 언어 변경 시 TMP 개체의 하위 개체로 Submesh UI개체가 생성된다. 이는 새로운 언어를 세팅한 뒤 렌더링 중인 문자가 기본 폰트에 포함되어 있지 않은 상황이라서 Fallback Font Asset들을 탐색하여 원하는 문자를 내포하고 있는 폰트 에셋의 Atlas .. 2025. 2. 1.