본문 바로가기
유니티 성능향상 - IL2CPP 3: IL2CPP란? 혹시 앞의 글을 읽지 않았다면 유니티 성능향상 - IL2CPP 2: mono, JIT방식, IL이란? - https://daisy0461.tistory.com/m/51 유니티 성능향상 - IL2CPP 2: mono, JIT방식, IL이란? 유니티 성능향상 - IL2CPP 1: C#과 C++의차이 - https://daisy0461.tistory.com/m/50 유니티 성능향상 - IL2CPP 1: C#과 C++의차이 유니티 성능 향상을 공부하다가 IL2CPP라는 것을 알게 되었다. 이 기능을 공부하.. daisy0461.tistory.com 읽고 오는 것이 이해하기 더 편할 것 같다. https://youtu.be/-9X965jXrn8 해당 동영상을 기반으로 공부한 내용을 작성한다. 1, 2를 통해 긴 .. 2022. 4. 1.
유니티 성능향상 - IL2CPP 2: mono, JIT방식, IL이란? 유니티 성능향상 - IL2CPP 1: C#과 C++의차이 - https://daisy0461.tistory.com/m/50 유니티 성능향상 - IL2CPP 1: C#과 C++의차이 유니티 성능 향상을 공부하다가 IL2CPP라는 것을 알게 되었다. 이 기능을 공부하기 위해 https://youtu.be/-9X965jXrn8 을 참고해서 블로그 글로 남긴다. 다들 알고 있겠지만 C#은 C++보다 느리다는 인식이 daisy0461.tistory.com 해당 글의 연장글이다. 동일하게 아래의 동영상을 참고해서 글을 남긴다. https://youtu.be/-9X965jXrn8 이전글을 읽고 왔다면 C#은 .Net Framework에서 돌아간다. 근데 java나 ios같은 경우는 MS제품군이 아니기 때문에 .Net.. 2022. 3. 31.
유니티 성능향상 - IL2CPP 1: C#과 C++의차이 유니티 성능 향상을 공부하다가 IL2CPP라는 것을 알게 되었다. 이 기능을 공부하기 위해 https://youtu.be/-9X965jXrn8 을 참고해서 블로그 글로 남긴다. 다들 알고 있겠지만 C#은 C++보다 느리다는 인식이 있다. 그래서 Unity도 C#을 사용하기 때문에 느리다는 인식이 있는데 그 말은 틀린 말이다. Unity내부 엔진은 C++로 되어있다. 그렇기에 Unity가 느리다는 말은 틀렸다. 유저에게 노출되는 api부분만 C#으로 되어있다. 겉은 C# 안은 C++로 되어있는 것이다. 요즘 IL2CPP라는 말을 많이 들어보았을 것이다, 이것이 도입되면서 게임 엔진 내부 뿐만 아니라 유저 코드 부분도 C++로 돌릴 수가 있다. 즉, 게임엔진과 유저코드 모두 C++로 돌아가기 때문에 전반적인.. 2022. 3. 30.
유니티 쉐이더 - 랜더링 파이프라인 렌더링 파이프라인? 렌더링 파이프라인은 3D 물체를 2D화면까지 표현하는 과정입니다. 다음 사진과 같이 Unity는 3D물체를 사용하지만 모니터는 2D입니다. 모니터에 이 3D물체를 나타내기 위한 과정을 렌더링 파이프라인이 합니다. 이제 렌더링 파이프라인의 각 단계에 관해서 설명하겠습니다. 1. 정점 조립 쿼드가 있다고 합시다. 다음과 같이 생겼습니다. 쿼드는 정점이 4개인 사각형이고 중심은 가운데에 있습니다. 다음과 같이 선을 그리고 면을 표현하는 최소가 삼각형이여야 모든 면을 표현할 수 있습니다. 이 작업은 그래픽카드가 알아서 해줍니다. 2. 버텍스 쉐이더 정점을 조립하면 면이 만들어지게 됩니다. 정점들에는 노말 벡터 또한 있습니다. 노말 벡터는 면에서 바깥로 향하는 방향입니다. 빨간색 화살표는 탄젠.. 2022. 2. 20.
Unity 쉐이더 공부 - 쉐이더란?? Unity 2020.2.6f1 기준으로 작성한 글입니다. 쉐이더 쉐이더를 구글에 검색을 해보면 다양한 사진이 나오게됩니다. 유튜브에서도 쉐이더를 검색하면 다양한 예시가 나오는데 마인크래프트가 많이 나옵니다. 왼쪽은 쉐이더를 적용하지 않은 사진이고 오른쪽은 쉐이더를 적용한 것입니다. 간단하게 쉐이더 = 이쁜 것 이라고 생각합니다. 정확하게는 정점의 위치나 픽셀 색깔을 계산하는 함수입니다. 정점의 위치의 예시는 바람이 불면 나뭇잎이 흔들리는 것이 하나의 예시이고 픽셀의 색깔을 계산한다는 것은 예시는 물을 예시로 들 수 있습니다.물에서 반사되어 오브젝트가 물에 비치는 현상 또는 물 색깔에 의해 다른 색으로 보이는 현상도 쉐이더의 역할입니다. 쉐이더 = 머티리얼? 언리얼은 공부를 하지 않아서 잘 모르지만 언리얼.. 2022. 2. 9.
Unity Object Pooling 서론: 공부의 의유 이번에는 Object Pooling에 대해서 공부를 해보았습니다. 이것은 아예 존재 자체도 모르고 있었습니다. 그렇게 다양하게 프로젝트를 해볼때도 생각도 못하고 있었습니다. 이것의 중요성을 알게된 계기는 오픈카톡방에서 누군가가 최적화와 관련된 질문을 하셨고 파괴, 생성을 지양하고 풀링기법을 이용하라고 말씀해주셨습니다. 지금까지 파괴 생성을 했던 저로써는 쇼킹했고 공부의 필요성을 느꼈습니다. 많은 부분에서 도움을 받은 영상입니다. https://www.youtube.com/watch?v=xiojw0lHzro&t=2s Object Pooling의 존재 이유 프로그래밍에서 Object를 생성 or 파괴는 꽤나 무거운 작업입니다. 생성은 메모리를 새로 할당하고 리소스를 로드하는 등의 초기화 .. 2021. 6. 17.
C# Unity [SerializeField]와 [HideInInspector] 다양한 코드를 보면서 [SerializeField]와 [HideInInspector]를 많이 보았었습니다. 그런데 그 당시에는 한번 유니티 따라서 코드를 해보면서 익숙해지자 그리고 흥미를 가져보자라는 생각이 커서 이것이 확실히 무엇을 의미하는지 생각하지 않고 잉? 뭐 이상한게 위에 있네? 이건 뭐지.. 이런 생각만 하고 넘어갔습니다. 그런데 지금 다른 사람들이 짰던 코드들을 보면서 나와서 아 저번에 미뤘는데 한번 공부하고 블로그에 포스팅을 해보자 생각이 들어서 지금 해보겠습니다. [SerializeField] 일단 [SerializeFiled] 먼저 설명드리겠습니다. 아마 이 블로그까지 들어오셨고 이런게 궁금하신 분들은 아실 내용인데 public으로 만들어진 변수는 Inspector창에 나타나게 되고 p.. 2021. 4. 19.
Unity Mathf.Lerp 공부 docs.unity3d.com/ScriptReference/Mathf.Lerp.html Unity - Scripting API: Mathf.Lerp public static float Lerp(float a, float b, float t); docs.unity3d.com 2020.3 버전 API입니다. public static float Lerp (float a , float b , float t ); 다음과 같이 사용을 합니다. 각 매개변수에 대해서 알아보자면 a 시작하는 값 b 끝나는 값 t a와 b사이의 보간 값 return 값은 a,,b 사이의 보간 된 결과입니다. 위에서 뜬금없이 나오는 단어가 있습니다. '보간'이라는 단어입니다. 이 '보간'의 의미를 알아야 이 함수를 잘 이해를 하고 쓸 수 .. 2021. 3. 29.
Unity Object.Instantiate() 설명 docs.unity3d.com/ScriptReference/Object.Instantiate.html Unity - Scripting API: Object.Instantiate This function makes a copy of an object in a similar way to the Duplicate command in the editor. If you are cloning a GameObject you can specify its position and rotation (these default to the original GameObject's position and rotation otherwise). If you docs.unity3d.com 위에 나와있는 것이 Unity Scription.. 2021. 3. 21.