일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 3d
- Windows Build
- OculusMotionVectorPass
- 벡터
- C언어
- 메모리 누수
- URP
- 개인 바이트
- Three(Two) Tone Shading
- ColorGradingLutPass
- 가상 바이트
- 작업 집합
- URP로 변경
- Cell Shader
- Toon Shader
- Private Bytes
- Rim Light
- Specular
- Cell Look
- VR
- ASW(Application SpaceWarp)
- 프로그래밍 기초
- AppSW
- 게임 수학
- working set
- Virtual Byte
- Cartoon Rendering
- Today
- Total
목록전체 글 (258)
WinCNT
힙 정렬(Heap sort)이란 원소들을 전부 힙에 삽입한다. 힙의 루트에 있는 값은 남은 수들 중에서 최솟값(혹은 최댓값)을 가지므로 루트를 출력하고 힙에서 제거한다. 힙이 빌 때까지 2의 과정을 반복한다. B Tree B Tree는 이진 트리를 확장한 것으로 이진 트리는 하나의 노드가 가질 수 있는 자식 노드의 수가 최대 2개지만 B-tree는 2개 이상을 가질 수 있다 모든 노드에 있는 값들은 정렬되어 있는 상태이며 order를 나타내는 숫자인 m을 가질 수 있다 이 B-tree 를 B-tree of order m 이라고 한다 B-tree of order m은 다음과 같은 조건을 만족 시킨다. 모든 노드가 가질 수 있는 자식 노드의 최대 수는 m이다. 루트 노드를 제외한 내부 노드 들은 적어도 [m..
자료 구조를 쓰는 이유는 결국 탐색해서 다시 사용하기 위해서이다 데이터를 넣을 때 정렬되고, 정렬된 데이터를 가져오는 것이 바로 알고리즘이다 이번에는 대표적인 자료 구조인 트리(Tree)와 힙(Heap)에 대해서 정리해보자 힙(Heap)은 무엇인가를 차곡차곡 쌓아올린 더미란 의미기 때문에 CS에서 다양한 곳에서 사용된다 여기서는 자료 구조로서의 힙(Heap)에 대해서 정리한다 트리(Tree) 수학, 특히 그래프 이론에서 회로(Cycle)가 없는 연결된 무향의 그래프를 트리라고 한다(by 나무위키) 트리 구조는 비선형적이지만 현실 세계에 있는 익숙한 구조이다 트리는 탐색기, 책의 목차 등에 주로 사용된다 용어 정리 노드(Node) : 트리를 구성하는 기본 원소, 값과 다음 노드에 대한 정보를 가짐 루트 노..
Has a이냐 Is a이냐... 다중 상속 장점 포함으로도 다중 상속과 같은 기능은 할 수 있다 상속이 포함보다 할 수 있는 것이 많음 계층도가 깔끔해지고 재정의도 가능하고 코드도 줄어든다 문제점 모호성, 위험성 새 + 말 = 페가소스 하지만 새에도 hp, 말에도 hp에도 있다면? 페가소스는 어느 hp를 가져야 하지? 죽음의 다이아몬드 하나의 클래스가 간접적으로 두 번 이상 동작됨 새도 동물, 말도 동물... 이를 해결하기 위해 virtual 키워드로 상속한다 다만, 그러면 virtual 테이블이 생겨서 관리하게 되는데 그로 인해 성능이 더 떨어질 수 있음 RTTI(Runtime Type Identification) 실행 중 객체의 타입(자료형)에 대해서 알 수 있는 매커니즘 문법적인 사용법으로는 dyn..
GamePlay Framework 요약 활용을 하기위해서는 관련 클래스와 내부 이벤트를 알아야한다. 블루 프린트 라이브러리 함수는 어느 곳이든 호출가능 새로운 액터가 필요하다면 블루 프린트 클래스 or C++상속 새로운 컴포넌트 필요하다면 블루 프린트 클래스 or C++상속 게임 플레이를 만든다 = 컴포넌트의 조합으로 액터를 만들기 + 이벤트를 처리 GamePlay Framework란? 엔진이 게임 플레이에 대하여 설계한 클래스와 노드 이를 활용(상속,함수재정의,이벤트 바인딩)하여 게임플레이를 구현할 수있다. 이벤트 바인딩 이벤트 바인딩이 되면, 따로 클래스 상속 없이, 이미 인스턴스 안에 있는 것에 포인터를 등록해서 함수를 호출하게 해줌 언리얼 클래스 Level - 경기장 GameMode - 레벨마다 ..
다형성을 쓰는 이유? 이동하는 개념은 같은데 실제로 수행하는 방법이 다르다 배열에다가 클래스의 포인터를 넣어서 수행을 했는데 실제로 수행하는 처리가 다르게 할 수 있음 메모리에서 부모를 new한 주소(포인터)나 자식와 new한 주소(포인터)는 같다 자식들은 부모의 포인터와 부모가 가진 변수 등의 가진 영역까지 같다 예를 들어 Draw()을 구현한다고 할 때... 다형성을 이용하면 같은 그리기 함수를 클래스별로 다르게 작동할 수 있다 다형적 동작을 하기 위해, 부모와 자식의 함수의 시그니쳐(함수의 모양)이 같다는 뜻이다 하지만 각각의 도형은 필요한 데이터(인자)가 다를 텐데... 예) 원 - 중점, 반지름, 사각형 - 네 점의 좌표 어떻게 해야 할까? 필요한 정보를 Information Class로 빼두고..
상속을 만든 이유 공통되는 부분을 모아서 부모 오브젝트로 묶음 그 부모 오브젝트를 상속함 상속을 하게 되면, 부모의 멤버를 사용 가능 (다이어그램에서는 자식이 부모를 가르킴) 복잡한 프로그램을 여러 명이서 문제 없이 프로그래밍하기 위해서 필요함 (doxygen) 상속 계층도(Hierachy) 설계하기 나름 어떤 것을 묶을 것인가 어떤 철학으로 접근할 것인가 프로그래밍 설계에 정답은 여러 개 존재하지만 잘못 설계한 것은 존재한다 Has - a 관계(포함) Is - a 관계(상속) 함수 재정의(Overriding) Method Overriding 동적 바인딩과 그것을 이용한 다형성(Subtype polymorphism) Abstraction(추상화) SSS
탐색 알고리즘 Linear Search 배열의 시작 부터 나올 때까지 탐색 정렬할 필요가 없음 Binary Search 정렬된 배열의 중간 부터 비교 검색 반경을 반으로 나누어 반복 Quick Search 퀵 정렬의 응용 버전 탐색이기 때문에 전체 정렬이 아니라 부분 정렬 정렬 알고리즘 캐시의 히트율을 높히기 위해 주로 배열을 사용하는 정렬 알고리즘에는 다음이 있다. 추가적으로 메모리 버퍼를 사용하지 않은 정렬 알고리즘(In_Place) Bubble Sort(버블 정렬) 두 인접한 원소를 검사하여 정렬하는 방법, 시간복잡도는 O(n^2) 비교, O(n^2) 교환 장점: 코드가 단순하여 자주 사용됨 단점: 상당히 느리다 Select Sort(선택 정렬) 처음부터 마지막까지 봐서 가장 작은 게 1번째, 2번..
1. C에서의 동적메모리 할당 주된 함수 - malloc 단순히 메모리의 할당/해제만 해준다 객체(즉, 복잡한 대상)을 다루기에는 적합하지 않다 2. C++ - new/delete 키워드 - 포인터 동적할당 C++의 연산자, malloc을 대체하는 것이 new, free를 대체하는 것이 delete new와 delete는 연산자(즉, 오버로딩이 가능하다) 3. 생성자 / 소멸자 생성자, 소멸자, 복사 생성자, 대입 연산자 오버로딩 클래스를 완전하게 만들기 위해서 필요한 것들 예) 행렬끼리의 덧셈, 할 수는 있는데 그에 대한 연산을 프로그래머가 해야 한다 4. 이것저것 Uniform Init Field Init Delegate Constructor nullptr C에서는 0이지만, C++에서는 객체 thi..
언리얼 엔진 소개 요약 툴(임포터,에디터)과 프레임 워크를 제공한다 외부리소스를 임포트하고 에디터를 이용하여 엔진 데이터를 생성 프레임 워크에서 발생하는 이벤트를 처리한다 게임 플레이 구현에 유연함이 필요하다면 블루프린트를 사용한다 레벨 블루프린트 , 클래스 블루프린트가 존재한다. 블루프린트는 실시간 가상머신으로 번역되므로 비용이 발생한다 블루프린트는 게임플레이 관점에서 엔진을 이해하는 쉬운방법이다 게임 엔진의 정의 게임 개발 제작 노하우를 게임컨텐츠와 구현기술을 분리하여 또 다른 게임 제작을 용이하게 하는 도구(Toolset) 와 기능(Framework) 모음 언리얼 엔진의 도구 (Toolset) 엔진의 기능(Frameword) 엔진에서 작업한 데이터랑 게임 플레이 관련된 스크립트 내용 게임 엔진은 물..
클래스 구조체가 진화한 것이 클래스 (클래스도 네임스페이지 않을까...?) (C++)클래스의 특징 캡슐화/은닉화 C++에서의 구조체(Struct)와 클래스(Class)의 차이는? 디폴트의 접근 한정자가 다르다 왜 쓸까요? 자동차 운전 시, 운전자는 실제 부품들이 움직이는 것은 신경 안 쓰는 것처럼, 대부분은 숨기면서 필요한 것만 오픈하는 것처럼 데이터도 은닉함 특징 캡슐화 / 은닉화 캡슐화와 은닉화는 기본적으로 세트 캡슐화는 둘러싸는 것, 은닉화는 그로인해 숨겨지는 것 생성자 / 소멸자 int a를 선언하면 a라는 공간(4바이트)이 생긴다 마찬가지로 클래스로 객체를 생성, 즉 메모리의 공간을 잡을 때 호출되는 함수 소멸자는 동적 할당된 메모리의 공간을 해제하는 함수를 의미한다 변수의 수명과 유사한 면이 ..