본문 바로가기

전체 글

(339)
[UIToolkit]UI Toolkit 개요 (사진 출처: 유나이트 서울 2020 - UI 통합 솔루션 UI Toolkit 살펴보기) UI Toolkit은 기존의 UI 시스템의 단점을 보완하기 위해 제작된 UI 시스템으로 레이아웃(UXML), 스타일(USS), 로직(C#)을 분리하여 UI를 설계할 수 있는 시스템입니다. 주로 기존의 IMGUI를 대체하기 위해 사용하는 것 같습니다. 기존 유니티의 UI 시스템보다는 웹 프론트 개발과 가까운 방식으로 설계되어 있습니다. UI Toolkit은 에디터 확장과 런타임을 모두 지원하고 있으며, 필요할 때에만 업데이트 되기 때문에 성능적으로도 유리함을 가지고 있습니다. 기존 IMGUI와의 호환성을 고려하여 'IMGUIContainer'를 이용해 IMGUI에서 사용하던 요소들을 UI Toolkit에서도 사용할 수..
컴퓨터 그래픽스의 기본 요소 - 점, 선, 원뿔곡선, 다각형 컴퓨터 그래픽스의 기본 요소 DDA 알고리즘 - Digital Differential Analyzer - |m|에 따라 기준 축을 정한 후, 기준 축의 좌표가 1만큼 변화할 때 나머지 축 좌표의 변화를 구하여 다음 점의 좌표를 계산 - |m| 1인 경우: y축 좌표를 1씩 변화시킬 때, x축 좌표를 1/m만큼 변화시켜 다음 점의 좌표를 계산(기울기가 완만한 경우) - 계산된 좌표를 반올림하여 구한 정수 좌표 위치에 점을 그림 ​ |Xend - X0| >= |Yend - y0| - 완만한 경우, x의 이동을 기준 - Xk+1 = Xl + 1, Yk+1 = Yk + m ​ |Xend - x0| < |Yend - Y0| - 가파른 경우, y의 이동을 기준 - Yk+1 = Yl + 1, Xk+1 = Xk + 1..
인프런 언리얼 엔진4 입문 (C++ 기반) 완강 인프런 Rookiss님의 강의를 보고 따라 작업한 영상입니다. 언리얼의 큰 작업 방식을 빠르게 익힐 수 있었습니다. 아트리소스 몇개 추가하고 애니메이션이나 AI 디테일 더 살려주고 저만의 아이디어를 추가하면 좋은 프로젝트로 발전시킬 수 있을듯 합니다. ​ (아직 연재중인 엔진분석강의는 진행하지 않았습니다. 해당 부분 듣게된다면 따로 글을 올리도록 하겠습니다) ​ 언리얼 엔진4 입문 (C++ 기반) - 인프런 | 강의 언리얼 엔진을 아예 처음 사용하는 분들을 대상으로, UE5로 넘어가기 위해 알고 가면 좋은 UE4 기초를 다룹니다., - 강의 소개 | 인프런... www.inflearn.com
[기술면접]C# 델리게이트와 이벤트 델리게이트와 이벤트 Delegate 메소드에 대한 참조, 변수가 아닌 메소드 자체를 넘기고 싶을 때 델리게이트를 사용한다. 델리게이트 체인 델리게이트에 메소드를 등록할 떄 += 연산자 또는 Delegate.Combine()메소드를 이용하여 델리게이트 실행시 실행될 메소드를 등록할 수 있다. 이 때 여러개의 메소드를 동시에 참조할 수 있는데 이를 델리게이트 체인이라고 한다. 델리게이트 체인은 참조된 순서대로 함수들을 호출하며, -= 연산자 또는 Delegate.Remove()메소드를 이용하여 체인을 끊을 수 있다. 익명 메소드 델리게이트로 참조할 메소드가 다시 사용할 일이 없다고 판단되면 익명 메소드를 통해 메소드를 연결시켜주는것이 효율적일 수 있다. 익명 메소드는 아래와 같은 형식으로 선언할 수 있다. ..
[기술면접]C# 가비지콜렉션(GC) Garbage Collection 메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능. 할당된 힙 안의 객체들의 크기가 임계치를 넘어가는 순간 GC(Garbage Collection)을 수행하여 힙 메모리를 관리함. GC가 수행되는 순간 현재 수행중인 Thread들을 모두 중단시키고 GC Thread를 활성화한다. GC Thread는 힙 상에서 사용 중인 객체 참조 그래프를 생성하고 사용 중인 객체의 위치를 재조정함으로써 사용하지 않는 객체들을 모두 힙 상에서 제거한다. 장점 유효하지 않은 포인터 접근 방지 포인터 이중 해제 방지 메모리 누수 방지 단점 어떤 메모리를 해제할 지 결정하는 데 비용이 든다 GC가 일어나는 타이밍이나 점유 시간을 ..
[기술면접]메모리 관리 전략 메모리 관리 전략 프로세스는 독립된 메모리 공간을 갖고 있고, 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제약이 걸려 있다. 오로지 운영체제 만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 제약을 받지 않는다. Swapping: 메모리의 관리를 위해 사용되는 기법. 표준 Swapping 방식으로는 round-robin과 같은 스케줄링의 다중 프로그래밍 환경에서 CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억장치(하드디스크)로 내보내고 다른 프로세스의 메모리를 불러 들일 수 있다. swap에는 큰 디스크 전송시간이 필요하기 때문에 현재에는 메모리 공간이 부족할때 Swapping이 시작된다. 단편화(Fragmentation) 프로세스들이 메모리에 적재되고 제거되는 일이 반복..
[기술면접]프로세스와 스레드 프로세스와 스레드 프로세스: 프로그램 메모리 상에서 실행중인 작업 스레드: 프로세스 안에서 실행되는 여러 흐름 단위 기본적으로 프로세스마다 최소 1개의 스레드 소유(메인 스레드 포함) 메모리 영역 Code: 코드 자체를 구성하는 메모리 영역(프로그램 명령) Data: 전역변수, 정적변수, 배열 등data: 초기화 된 데이터가 저장되는 영역bss: 초기화 되지 않은 데이터가 저장되는 영역 Heap: 동적 할당 시 사용 Stack: 지역변수, 매개변수, 리턴 값 등 임시 메모리 영역 스레드데이터영역 (연두색: Heap, Data, 파란색: thread, 노란색: stack) 스레드는 Stack만 따로 할당 받고 나머지 영역은 서로 공유 하나의 프로세스가 생성될 때, 기본적으로 하나의 스레드가 같이 생성됨 프..
[기술면접]크자이공부 SRTRP(스자이공부) 월드 스페이스에서 물체를 월드 좌표에 배치할 때 행렬을 연산하는 순서 이때 하나의 연산을 표현하기 위해 4X4 행렬을 사용하며, 이를 변환행렬이라고 한다. (맨 앞의 S를 '크기'라고 발음하여 크자이공부라고 부르기도 한다) 4X4 행렬을 사용하는 이유 3차원 벡터의 Translation을 표현하기 위해서는 4x4행렬이 필요하다. 왜냐하면 행렬은 위치와 무관하게 오직 방향과 크기만 서술하기 때문이다. 이를 이용하기 위해 3차원 벡터를 (x,y,z,1)과 같은 형태의 4차원 벡터로 가정하고 연산을 진행하며 이를 동차 좌표계라고 한다. 4차원 벡터의 w값을 0으로 설정하는 경우 이동 변환은 적용되지 않는다. 이동 행렬 이동행렬 회전 행렬 회전행렬 스케일 행렬 스케일 행렬 행렬의 연산 순..