목록전체 글 (22)
달려라 달려 이랴 이랴
11729번: 하노이 탑 이동 순서 풀이 정말 오랜만에 보는 하노이탑문제다. 하노이 탑은 전형적인 “재귀”문제이다. 알고리즘은 다음과 같다. 원반이 한 개면 그냥 옮기면 끝이다(종료 조건). 원반이 n개일 때 1번 기둥에 있는 n개 원반 중 n-1개를 2번 기둥으로 옮긴다(3번 기둥을 보조 기둥으로 사용). 1번 기둥에 남아 있는 가장 큰 원반을 3번 기둥으로 옮긴다. 2번 기둥에 있는 n-1개 원반을 다시 3번 기둥으로 옮긴다(1번 기둥을 보조 기둥으로 사용). 이 과정이 머릿속에서 이해가 되어야 재귀구조가 눈에보이기 시작한다. (사실 까먹어서 다시 검색하긴 했다.. ㅎㅎ) 문제를 해결하는 관건은 n개를 옮겨야하는 문제를 3가지 단계로 보는것이다. (if n=3) 1번기둥의 원판1과 원판2를 2번 기둥..
RenderingPath에서 Deferred와 Forward의 의미 Built-in Rendering Path. Unity에서 렌더링을 당연하게도 여러가지를 지원한다. (기기의 성능별, 상황별로 렌더링을 달리할수 있다는점은 여러가지 측면에서 최적화의 이점을 제공해서 그런것같다) 즉 각각의 Path(경로)마다 각기다른 기능및 성능 특성을 갖고 있다. 이런 Path들은 카메라에 오버라이드 시킬수 있다. 참고로 유니티에선 실행하는 기기의 GPU가 해당 RenderingPath를 지원하지 않을 경우 더 하위레벨의 것을 사용한다. (ex_ Deferred를 못하면 forward를 사용함) Forward Rendering Built-in의 기본 RenderingPath(렌더링 경로)이다. 실시간 렌더링은 힘들어함...
built-in, SRP, URP, HDRP 자세한 내용은 아래 참조로 이동. 참고:https://learnandcreate.tistory.com/477 랜더링 파이프라인이란? 화면에 그리기까지의 단계들을 각각의 파이프라고 생각하고 이것들의 전후관계를 파이프라인이라고 본다.(라고 저는 생각합니다 ㅎ) Render Pipeline들. 렌더 파이프라인은 씬의 내용들을 취하여 컬링(culling), 렌더링(rendering), 포스트프로세싱(post-processing)등의 작업을 수행하고 그것을 스크린에 표시하는 역할을한다. 유니티는 몇가지 서로 다른 렌더 파이프라인을 제공한다(built-in, URP, HDRP) 렌더 파이프라인은 모두 다른 기능과 특성을 가지고있다. 사용자는 개발의 초기 단계에서 프로젝트..
이 페이지는 아래 글을 읽어보며 번역한 글입니다. Unity UI optimization tips 캔버스를 분리하자. 문제: UI캔버스에서 단순한 변경이 생겨도 전체캔버스를 더럽힐 수 있다. Canvas는 Unity의 UI에서 기초적인 컴포넌트이다. Canvas는 DrawCall을 GPU에게 요청하여 화면에 그려지게 된다. 이 과정에서 Batch Generation이라는 것을 통해 그릴것,안그릴것을 확인하고 그리는단계를 최적화하는데 이는성능비용이 꽤나 비싸다. 단순한 변경이 생겨도 최적화를 위해 그릴대상들을 분석하는 과정이 생기면 최적화를 위해 비싼 batch generation을 해야한다. 대부분의 사용자는 Canvas하나에 엄청나게 많은 요소들을 때려박아서 사용한다. 이때 사소하더라도 변경사항이 생긴..

9주차 새롭게 배운 것들. 8주차때는... 죄송합니다.. 너무 신나게 놀아버린바람에 넘겨버렸습니다. 앞으로는 퍼뜩퍼뜩 작성하겠습니다! ^^ 우선 이번 9주차는 월요일을 하루쉬었기 때문에 화,수,목,금동안 교육을 받았는데 이중 수요일 금요일은 중간테스트가 존재했었습니다. 중간테스트 중간테스트는 두가지로 나뉘었었습니다. C#을 얼마나 다룰줄아는지 확인하기 위한 알고리즘테스트, 그리고 유니티를 얼마나 다룰줄 아는지 확인하기 위한 기획개발테스트. 저는 전공자인덕분에 알고리즘테스트는 수월했지만 기획개발테스트는 어려움을 느꼈었습니다. 기획개발테스트는 재미는 있었습니다. 기획서처럼 요구사항들이 있고 이 요구사항에 맞춰서 정해진 시간내에 구현하는 것이었습니다. 난이도 자체는 높지않았습니다. 그러나 지금까지는 시간을 여..

7주차 새롭게 배운 것들. 8월의 첫주를 마치면서 STARTERS에서의 7주차도 마무리 했습니다. 지난6주차와 비슷하게 주어진 주간과제를 진행하느라 이번주도 정신없이 흘러갔던것 같습니다. 이번 7주차의 주요 강의 키워드는 유니티에서의 Animation, FSM, PostProcessing, ParticleSystem이었습니다. 이중 PostProcessing을 제외하면 기존에 수강했던 유데미 강의 중 retro님의 유니티강의 덕분에 선수학습이 진행된 덕인지 복습하는 기분으로 강의를 들을 수 있었습니다. 주간과제) 포트리스-like 게임 with SingletonPattern 이 과제의 목표는 GameManager라는 코드에 싱글턴을 붙여서 전체적인 게임을 관리하는 중앙객체를 실습하는 것이라고 느꼇습니다...

6주차 새롭게 배운 것들. 본격적인 유니티강의가 시작된지 이제 2주차가 지났습니다. 월화수는 처음으로 받은 유니티과제를 진행하고, 목금은 다시또 논스톱 유니티강의를 들으면서 시간이 빨리 지나간것 같네요. 주간 과제) 플랫포머 게임 with ObjectPooling 주간과제는 심화와 기본이 나뉘었습니다. 기본은 맵이 고정이고 심화는 랜덤하게 생성되는 맵을 적용하는것이었고 저는 심화를 선택하여 진행했었습니다. 구현을 하면서 중점적으로 고려했던 부분은 확장성이었던것 같습니다. 그래서 한지점에서 다른지점으로 이동하는 프리펩, 맵의 기본단위를 이루는 맵블럭프리펩 이라는 것을 정의하는것을 시작으로 했었습니다. 이후 강사님께서 주신 귀여운 캐릭터에 애니메이션을 추가하고, PlayerController코드를 추가하여 ..

5주차 새롭게 배운 것들. 이제 C#기본은 끝나고 본격적인 유니티 강의가 시작되었습니다. 이번주는 기본적인 유니티 에디터 사용법과 물리엔진에 대한 강의가 있었습니다. 그리고 월화수 자습하는날에는 더이상 C#패턴을 공부하기보다 유니티를 더 우선적으로 공부하며 도중에 필요한것 같은 패턴이 있다면 그때 패턴강의를 찾아 들으려고 합니다. 그래서 이번주는 udemy강의는 유니티만 들었던것 같습니다. udemy) 유니티 애니메이션 retr0의 유니티 (Unity C#) 게임 프로그래밍 에센스를 통해 유니티 애니메이션 챕터를 수강하였습니다. 실습을 위해 UnityChan이라는 모델을 불러왔고, 이 모델을 통해 애니메이션 간에 Transition과 state세팅, Blend Tree, IK를 통한 시선처리 등을 실습해..