| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- DrawCall
- SetPass Call
- 이중우선순위큐
- 코딩테스트
- Tesselation
- 개발자면접
- Fetching
- im뱅크
- 취준
- c++
- 어레이
- 포워드 렌더링
- UnReal
- Output Merge
- 데이터분석
- graphics rendering pipeline
- priority_queue
- batches
- std::vector
- vertex shader
- 힙
- Mipmap
- occlusion culling
- Stack
- 그래픽스 파이프라인
- rasterization
- Input Assembler
- 디퍼드 렌더링
- 스택
- bvh
- Today
- Total
목록전체 글 (25)
평생 배우는 개발자
프로세스 내에는 가상메모리가 존재한다.이 메모리는 크게 네 가지 영역으로 나뉘는데 코드, 데이터, 힙, 스택 영역으로 나뉜다.여기서 스택영역은 가상 메모리 상에서 페이지(page)단위로 관리된다.스택에서 새로운 함수 호출이나 지역 변수가 할당되면 가상 메모리 상에서 해당되는 페이지가 사용된다. 만약 이 스택이 확장되어서 새로운 페이지가 필요로 하게 된다면, 운영체제는 페이지폴트(page fault)를 통해서 새로운 페이지를 할당하고 물리적 메모리에 로드한다. 위 내용에서 '가상 메모리'에서 과정이 진행된다고 언급하였는데, 우리가 함수 호출이나 지역변수를 선언하고 이것이 스택공간에 저장될 때 바로 우리의 물리적 메모리인 RAM에 저장되는 것이 아닌 virtual memory로서 저장이 된 이후에 다른 과정..
서론어레이에는 정적어레이, 동적어레이가 있다.어레이와 리스트의 차이점은 무엇이고 각각은 어떤 상황에서 가장 쓰기 적합할까?본론어레이와 리스트의 가장 큰 차이점은 "연결되어 있냐" 일 것이다.어레이는 말 그대로 데이터들이 연속적인 메모리에 저장되어있는것이다.이때 정적어레이는 선언 시에 그 크기가 정해지고 런타임에서는 크기를 변경할 수 없다.즉, int arr [10];이라고 선언한 후에 이 크기를 다른 크기로 변경할 수 없다는 말이다. 하지만 이와는 별개로 배열은 연속적으로 저장되어 있다. 즉 arr의 데이터들의 메모리 위치를 보면 arr [0]과 arr [1]의 차이는 int의 크기만큼인 4byte이다. 즉 연속되어 저장된다는 말이다. 동적어레이는 런타임에 크기 변경이 가능하고 메모리의 위치를 보면 정적..
서론렌더링, 즉 어떤 오브젝트를 화면상에 그릴 때 포워드 렌더링을 하는 방법과 디퍼드 렌더링을 하는 방법이 있다. 각각은 어떤 것을 의미하고 어떤 상황에서 쓰며, 장단점은 무엇일까? 본론포워드 렌더링이란?포워드 렌더링은 말 그대로 해석해보면 앞에서 렌더링 한다는 말이다.vertex buffer에 있는 정보를 CPU에서 GPU로 전달. 즉, object 단위로 vertex shader와 fragment shader를 거쳐서 렌더링 한다. 이때 fragment shader에서 라이팅 처리를 수행한다.따라서 각 오브젝트와 각 광원에 대해 실시간 라이팅을 계산한다. 디퍼드 렌더링이란? 디퍼드 렌더링은 말 그대로 해석 해보면 지연된 렌더링이란 뜻이다.즉, 각각의 정보를 바로바로 CPU에서 GPU로 전달 하는 ..
서론스택공간과 힙공간이 있는데 이것들은 무엇이며 언제 쓰고 어떤 역할을 할까? 본론 스택스택은 정적 메모리 할당에 사용되는 공간이다. 스택은 함수 호출이나 로컬 변수가 저장된다. 이 때 LIFO(Last In First Out) 구조로 메모리가 자동으로 저장이 되고 해제가 된다. #include using namespace std;void functionB(int a) { int localB = a * 2; // 지역 변수 cout 위의 예시코드를 실행 해보면서 stack에 어떤 값들이 저장되는지 알아보자.main함수가 호출되면 Compiler의 Call Stack이라는 곳에 main함수를 실행했다는 call이 저장된다.처음 main함수에서 functionA가 호출 되면 Call Stack에..
서론항상 c++ 만 공부해 왔었기에 c#에 관한 내용은 무지했다. 하지만 Unity Engine은 C#으로 코딩하기 때문에 c#에 기초적인 내용은 알아야 한다.개요c++에 관해서는 가상함수, 순수가상함수, 추상클래스에 대한 개념을 알고 있었다. 가상함수란, 함수를 선언할 때 virtual이라는 keyword를 사용해 부모클래스에 있는 가상함수를 override 해서 자식함수에서 재정의 하여 쓰기 위해 사용된다.가상함수 예시class A {public: virtual void foo() { std::cout 순수가상함수란, 함수를 선언할 때 virtual이라는 keyword와 함께 함수의 선언 끝에 = 0을 붙여준다. 또한, 함수에 대한 정의를 바로 해주지 않는다.순수가상함수 예시cla..