전체 글(295)
-
[Unity] Blender에서 Fluid Simulation을 Unity에 가져오기
Unity는 URP 환경에서 물의 부피를 구할 수 없다. HDRP로 가야 Water Volume을 구할 수 있어 보이는데, 텍스쳐 셰이더를 이용한 물의 흐름은 부피의 출렁거림을 표현하는 데에 제한적이기 때문에 URP에서도 물리적인 물을 어떻게 구현할지를 찾아보았다. 아래의 유튜브를 참고했다. https://www.youtube.com/watch?v=ihY4KkSXfhI https://www.youtube.com/watch?v=3EskeIwg2hA 블렌더에서는 다음과 같은 Fluid Simulation이 가능하다. 이런 시뮬레이션을 유니티로 가져와서 Timeline으로 실행하여 보여질 수 있게 할 수 있다. https://github.com/Unity-Technologies/com.unity.formats..
2024.04.03 -
[Unity] AssetBundle 정리
AssetBundle - 선택한 에셋을 포함하기 위해 내보낼 수 있는 파일. 어플리케이션에서 요청 시 로드할 수 있다. 게임의 다양한 콘텐츠를 효율적으로 관리하고 다운로드 크기를 최적화하는 데 도움이 된다. - 메모리를 효율적으로 관리할 수 있다. - 초기 인스톨 사이즈를 줄일 수 있다.(스토어에 올리기 위해서는 150MB의 용량 제한이 있다.) -> 모바일에서 유용 장점 자원 관리와 최적화: AssetBundle은 리소스를 패키징하여 런타임에 동적으로 로드하거나 언로드할 수 있으므로 게임의 자원 관리와 최적화에 도움이 된다. 필요한 리소스만 로드하여 메모리 사용량을 줄이고 성능을 향상시킬 수 있다. 동적 업데이트: 게임 또는 애플리케이션을 런타임에 업데이트하거나 새로운 콘텐츠를 추가할 수 있다. 새로운..
2024.03.28 -
[Blender] Blender에서 Blend Shape 적용
Blender에서는 Shape Keys로 Blend Shape을 적용할 수 있다. 아래의 유튜브 영상을 참고하였다. https://youtu.be/7WGtmADZCzU?feature=shared 처음 Blender에서 모델링을 누르고 [Data] 메뉴를 보면 아래와 같이 데이터가 모두 비어있는 모습을 볼 수 있다. Shape Keys에 '+' 버튼을 두 번 누르면, Basis와 Key 1이 생성된다. 바로 이 Key 값에 따라 모델이 Morph 되는 것이다. 이 Key 값을 1.000으로 값을 수정한 후 모델링을 Sculpting 모드로 모델을 끌던, 잡아 늘리던 수정하면, 값이 바뀔때 마다 모델이 움직이는 것을 볼 수 있다. 이후에 해당 Key에 영향을 받는 Vertex들을 선택한 후 새로운 [Vert..
2024.03.27 -
[Unity] IL2CPP 정리
IL2CPP는 Unity의 스크립트 언어인 C#으로 작성된 코드를 C++로 변환한 후 해당 코드를 네이티브 플랫폼의 기계어로 컴파일하는 Unity의 스크립팅 런타임이다. 여기에는 일반적으로 .NET 언어의 코드를 실행하기 위해 사용되는 Common Language Runtime (CLR) 또는 Mono의 가상 머신을 사용하는 대신에 C++ 컴파일러 및 최적화 도구를 사용한다. 장점 성능 향상: C++로의 변환과 네이티브 코드 컴파일은 실행 시간에 일어나는 JIT(Just-In-Time) 컴파일과 관련된 오버헤드를 줄여준다. 이로 인해 더 나은 성능을 제공할 수 있다. 플랫폼 호환성: IL2CPP는 여러 플랫폼에서 동작하며, 네이티브 코드로 컴파일되므로 플랫폼에 종속되지 않고 동작할 수 있다. 보안 강화:..
2024.03.26 -
[CS] Quick Sort, ArrayList/LinkedList, Concurrency/Parallelism, Critical Section/Mutex 정리
Quick Sort(퀵 정렬) 결정론적 알고리즘(Deterministic Algorithm) : 매번 똑같은 방식으로 각 단계를 거쳐가는 알고리즘 무작위 알고리즘(Randomized Algorithm) : 난수 생성 Partitioning -> 분할 작업. 기준이 되는 값은 pivot이 된다. pivot 보다 작은 수는 왼쪽에, 큰 숫자는 오른쪽에 위치하면서 정렬이 된다. 항상 첫 번째 요소를 선택할지, 랜덤으로 요소를 선택할지 달라질 수 있다. Quick Sort에 의한 시간 복잡도 -Best Case: 가장 좋은 케이스는 중간 값을 골라서 밸런스 있게 정렬을 나눌 때이다. -Average Case -Worst Case: 매우 불균형한 파티션으로 나눠지거나 가장 작은 값 또는 가장 큰 값이 선택 될 때..
2024.03.26 -
[Unity] Occlusion Culling, Overdraw, Sprite Atlas, Blend Tree, Set Pass Call, Batch, OBJ/FBX, NURBS/Polygon, Scriptable Object, 유니티 멀티쓰레드 오류, Euler 회전 문제점 정리
Occlusion Culling과 Culling Mask Occlusion Culling -객체가 다른 객체에 의해 완벽하게 가려지는 경우 렌더링 계산을 하지 않는다. -매 프레임마다 카메라는 씬에 있는 Renderer를 카메라로 부터 사다리꼴 방사 모양의 시야인 *[frustum culling]으로 조사한다. 여기서 불필요하게 소모되는 CPU와 GPU를 줄이기 위해 사용 되는 기능. (*frustum culling은 카메라 시야에 없는 객체를 culling 하는 것. culling plane을 가까운 것과 먼 것으로 하나씩 설정할 수 있다.) Occlusion Culling을 사용해야하는 경우 -유니티에 빌트인 되어있는 Occulsion Culling은 CPU에서 런타임으로 계산된다. Overdraw로..
2024.03.26