| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 다익스트라
- Two Points
- 스토어드 프로시저
- Trie
- union find
- String
- binary search
- Hash
- Brute Force
- 이진탐색
- SQL
- Stored Procedure
- DP
- two pointer
- MYSQL
- Dijkstra
- 그래프
- Today
- Total
목록전체 글 (425)
codingfarm
버퍼 : shader 프로그램에서 참조하는 자료를 담는 GPU 자원(ID3D12Resource)의 예 버퍼의 종류 : 텍스처, 기타 버퍼 자원등 0. 상수버퍼 정의 장면의 물체마다 달라지는 상수 데이터를 담기 위한 저장공간 vertex buffer나 index buffer와 달리 constant buffer는 CPU가 프레임당 한번 갱신하는것이 일반적이다. 가령 카메라가 매 프레임 이동한다면, 프레임마다 상수 버퍼를 새 시야 행렬로 갱신해야 한다. 크기가 반드시 최소 하드웨어 할당 크기(256 바이트)의 배수 여야 한다. 가령 이전에 배운 vertex shader에서 아래와 같은 코드를 본적 있을것이다. 1 2 3 cbuffer cbPerObject : register(b0) { float4x4 gWor..
픽셀 셰이더 vertex shader(또는 기하 셰이더)가 출력한 정점 특성들은 래스터화 단계에서 삼각형의 픽셀들을 따라 보간되며, 보간된 결과는 pixel shader에 입력된다. 아래 코드는 기하 셰이더가 없는 경우에서 vertex 자료가 pixel shader에 도달하는 경로를 나타낸다. 정점 셰이더와 마찬가지로 픽셸 셰이더도 본질적으로 하나의 함수이나, 정점 셰이더와 달리 하나의 픽셀 단편(pixel fragment)마다 실행된다. 역할 : 주어진 입력으로부터 pixel fragment의 색상을 계산한다 후면버퍼의 한 픽셀에는 최종적으로 그 픽셀이 될 수 있는 '후보'로서의 pixel fragment들이 여러개 존재할 수 있다. 대부분의 pixel들은 pipeline의 pixel shader이후 ..
HLSL(high level shading language) 정의 : 셰이더를 작성하기 위한 고수준 셰이딩 언어 텍스트 파일로 작성, 확장자 .hlsl로 저장 HLSL에서 함수는 항상 인라인화 됨 다음은 간단한 정점 셰이더의 구현이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cbuffer cbPerObject : register(b0) { float4x4 gWorldViewProj; }; void VS(float3 iPosL : POSITION, float4 iColor : COLOR, out float4 oPosH : SV_POSITION, out float4 oColor : COLOR) { // 동차 절단 공간으로 변환 oPosH = mul(float4(iPosL, 1.0f)..
앞서 버퍼는 GPU가 접근 가능한 GPU 자원(ID3D12Resource) 공간으로 저장했다. 이 버퍼를 통해 GPU는 vertex 정보 접근할 수 있으며, GPU가 색인(index)들의 배열에 접근할 수 있으려면 색인들의 버퍼 GPU자원(ID3D12Resource)에 넣어 두어야 한다. index를 담는 버퍼를 index buffer라 부른다. Index Buffer 앞서 우리는 vertex buffer를 이용하여 화면에 삼각형 mesh를 출력하는 방법을 배웠다. 하지만 이전 코드를 보면 동일한 vertex가 여러번 선언되는것을 볼 수 있으며, 이는 프로그램의 효율을 떨어뜨린다. 그러므로 필요한 vertex의 목록을 만든뒤, 필요할때마다 해당 vertex의 index를 이용해 간접 참조하는 방식으로 효..