일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- String
- two pointer
- 그래프
- Dijkstra
- 스토어드 프로시저
- Brute Force
- DP
- Hash
- SQL
- 이진탐색
- Trie
- MYSQL
- Stored Procedure
- union find
- binary search
- Two Points
- 다익스트라
- Today
- Total
목록전체 글 (425)
codingfarm
렌더링 과정에서 GPU는 자원들에 자료를 기록하거나(후면 버퍼나 깊이, 스텐실 버퍼 등) 자원들에서 자료를 읽어들인다.(표면의 모습을 서술하는 텍스처나 장면안의 기하구조의 3차원 위치들을 담은 버퍼 등) 그리기 명령을 제출하기 전에, 먼저 해당 그리기 호출이 참조할 자원들을 렌더링 파이프라인에 묶어야(bind)한다. 이를 가리켜 자원을 파이프라인에 "연결(Link)한다" 또는 "바인딩(Binding)한다" 라고 말하기도 한다. 그리기 호출마다 달라지는 자원도 있으며, 필요에 따라 그리기 호출마다 그런 자원들의 바인딩을 갱신해 주어야 한다. 그런데 GPU 자원들이 파이프라인에 직접 묶이는것은 아니다. 실제로 파이프라인에 묶이는것은 해당 자원을 참조하는 서술자(Descriptor) 객체이다. 서술자 객체는 ..

깊이 버퍼(Depth Buffer)는 이미지 자료를 담지 않는 텍스처의 한 예이다. 깊이 버퍼는 각 픽셀의 깊이 정보를 담는다. 픽셀의 깊이는 0.0에서 1.0 까지의 값으로, 0.0은 관찰자와 최대한 가까운 픽셀에 해당하고 1.0은 최대한 먼 픽셀에 해당한다. 깊이 버퍼의 원소들과 후면 버퍼의 픽셀들은 일대일로 대응된다. 즉, 깊이 버퍼와 후면버퍼는 같은 해상도를 지닌다. 아래 그림처럼 몇몇 물체가 다른 물체들을 가리고 있다고 해보자 한 물체의 픽셀들이 다른 물체보다 앞에 있는지 판정 하기 위해 Direct3D는 깊이 버퍼링 또는 z-버퍼링이라는 기법을 사용한다.깊이 버퍼링을 이용하면 물체들을 그리는 순서에 상관없이 물체들이 제대로 가려진다. 깊이 문제를 해결하는 방법은 장면의 물체를 먼것에서 가까운것..

모니터에 하나의 프레임 버퍼를 가지고 게임화면을 표현한다면, 매 프레임마다 버퍼를 지우고 그리거나 이미 그려진 버퍼에 덮어쓸것이다 전자의 경우에는 버퍼가 지워지는 찰나의 순간이 화면에 표시되면 화면 깜빡임(Screen Flickering)현상이 나타나며, 후자의 경우에는 화면이 그려지는 도중에 이전 화면가 현재화면이 겹처지면서 화면 찢어짐(Screen Tearing)현상이 생길것이다. 결국 이는 보는이에게 불편함을 끼치게 된다. 이러한 현상을 피하고자 사용하는 방법이 2개의 프레임 버퍼를 이용하는것이다. 각각의 프레임 버퍼는 각 화면 바깥의 텍스처인 후면 버퍼(Back Buffer)와 전면 버퍼(Front Buffer)을 뜻한다. 전면버퍼를 이용해 현재 화면을 표현하면서, 다음 화면이 될 장면을 후면 버..
2차원 텍스처는 자료 원소들의 행렬(2차원 배열)이다. 2차원 텍스처의 용도 중 하나는 2차원 이미지 자료를 저장하는 것인데, 이때 텍스처의 각 원소는 픽셀 하나의 색상을 담는다. 하지만 텍스처가 꼭 이미지 자료의 저장만을 위해 사용되는 것은 아니며 훨씬 범용적으로 사용된다. 예를 들면 법선 매핑 같은 경우 텍스처에 각 원소의 색상이 아닌 3차원 벡터를 담는다. 텍스처에는 아무 자료나 담을 수 있는 것은 아니다. 텍스처에는 특정 형식(format)의 자료 원소들만 담을 수 있는데, 구체적인 형식은 DXGI_FORMAT이라는 열거형으로 지정한다. 자료 원소 형식들을 나열하면 다음과 같다. docs.microsoft.com/en-us/windows/win32/api/dxgiformat/ne-dxgiforma..