일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 그래프
- Trie
- MYSQL
- Dijkstra
- Brute Force
- Hash
- two pointer
- 이진탐색
- binary search
- SQL
- Stored Procedure
- String
- 다익스트라
- Two Points
- DP
- union find
- 스토어드 프로시저
- Today
- Total
목록전체 글 (418)
codingfarm

장치 초기화 : GPU에게 명령을 넘기기 위한 사전 작업 오늘은 방대한 양의 API가 나올건데 한번에 다 익히려 하지 말것 우선 이전시간까지 비어있던 Engine 프로젝트에 Engine 폴더에 아래와같은 클래스 파일들을 추가해준다. 각 기능들을 파일 단위로 분리하는것이 플젝의 관리에 용이하다 이제 EnginePch에 출력 윈도우 창의 핸들과 너비, 높이 및 전체창 여부를 저장하는 값들을 추가해준다. 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 // EnginePch.h // 이전 내용들... //----------------------- enum { SWAP_CHAIN_BUFFER_COUNT = 2 }; str..
버퍼 : 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)..