WindowsWindows라는 제품명과 같이 Windows용 응용 프로그램을 프로그래밍할 때 주된 주제 하나는 '창(Window)'을 만들고 관리하는 것이다. windows 응용 프로그램의 여러 구성요소, [주 창, 도구 모음, 메뉴, 스크롤바, 버튼, 기타 대화상자 컨트롤]은 모두 창이다. 따라서 windows 응용 프로그램은 일반적으로 다수의 창으로 구성된다. 1. 자원 Windows에서는 여러 개의 응용 프로그램이 동시에 실행될 수 있다. 따라서 CPU나 메모리, 모니터 화면 같은 하드웨어 자원들을 여러 응용 프로그램이 공유해야 한다. 그렇게 되면 여러 응용 프로그램이 자원(Resource)에 무질서하게 접근하게 된다. 이를 막기 위해 windows는 응용 프로그램이 하드웨어에 직접 접근을 못..
경기도 수원 화성시에 있는 유기견 보호소 봉사활동을 다녀왔다. 너무 오랜만에 간 봉사활동…. 다시 종종 다녀야겠다.봉사활동 중 유기견 봉사는 내가 아이들에게 도움을 주고, 나도 아이들에게 마음의 위로를 받는 활동이여서 좋아한다.여기는 강아지 약 90마리, 고양이 약 30마리 정도가 있었다. 이번에 또 2마리를 누군가 보호소에 두고 갔다고 한다. 한 아이의 삶을 책임지지 못할 거면 시작조차 하면 안된다. 에휴 .. 1. 아이들 밥그릇 물그릇 설거지 후 다시 배치 밥그릇 물그릇마다 이름표가 있어서 이름 찾아서 다시 배치해주고 밥과 물을 채워주면 끝청소하는 동안에는 애들 마당에서 놀도록 모두 풀어줬다. 2. 뒷견사, 앞견사 청소 담당이 아니였다. 설거지 하는동안 마당에 멍멍이 풀어두고 청소하는..
1. 장면 깊이 렌더링 광원의 시점에서 본 장면의 깊이를 렌더링하는 과정이 있다. 이는 텍스처 대상 렌더링 ( render - to - texture )의 일종이며, 광원의 시점에서 본 장면의 깊이 값들을 깊이 버퍼에 기록하는 것을 뜻한다. 그림자 매핑 알고리즘에는 두 번의 렌더링 패스가 필요하다. 광원의 시점에서 본 장면 깊이를 그림자 맵에 렌더링플레이어 카메라에서 본 장면을 후면 버퍼에 렌더링 2. 직교 투영/정사영 (Orthographic_Projection)그림자 매핑에서 평행 광이 만들어 내는 그림자를 본뜰때 직교 투영이 필요하다. (2.1). 직교 투영 행렬 구하기 (orthogonal_projection_matrix) 벡터를 특정 벡터 공간 또는 부분 공간에 직교적으로 투영할 떄 사용하는..
며칠 전 아빠랑 영상통화를 했다. 그냥 자주 하지 않는 영상통화여서 그런지 모르겠지만 화면 속에 비친 밝은 미소의 아빠 얼굴을 보면서 통화를 하고 나서 많은 생각이 들었다. 그걸 기록하고 기억하고 싶어서 끄적여본다. 현재 우리 아빠는 기숙사 생활을 하신다. 60세가 넘으셨지만, 아직도 일을 하고 계시고 그것도 공장에서 일을 하신다. 30년 넘게 한 업종에서 계속해서 일을 하신다. 허리 디스크도 있으시고 무릎도 좋지 않은데 가정을 위해 조금이나마 벌이가 괜찮은 곳에서 하시겠다고 꾸준히 하시고 계신다. 오늘 한 번 내가 아빠를 존경하고 사랑하는 이유에 대해서 적어보려고 한다. 첫 번째, 불평이 없으시다. 이건 우리 아빠만 해당하는 게 아닌 우리 부모님의 특징이다. 뭐…. 내가 [그것이 알고 싶다.], [..
휴 ,,, 드디어 성공했다..큐브맵 자체를 만드는 건 어렵지 않다.하지만 이전 프로젝트와 큐브맵 프로젝트에서 달라지는 것이 많았다.매 장 새로운 걸 받아들이는 부분에서 제공해 주는 코드와 비교해 보면 달라지는 부분이 많다directX12 문법을 이해하고 연관성을 알아야만 큐브맵을 완성할 수 있었다. 1. 큐브맵 cubeMap / 입방체 매핑큐브맵의 텍스처는 단지 텍스처 여섯 장을 담은 배열이다. 2. 큐브맵 적용하기 🔸1) RootSignature Texture Cube를 쉐이더와 연결하기 위해 table을 만들어준다.여기서 빨간색으로 표시한 RootParameterIndex(3)을 Texture Cube로 만들 거고 Init 매개변수 3번째 인자 0이므로 shader에서 t0으로 사용된다. ?..
1. 스텐실 버퍼 Stencil Buffer🔸 특징스텐실 버퍼는 후면 버퍼 및 깊이 버퍼와 해상도가 같다.스텐실 버퍼를 지정하면 그 스텐실 버퍼는 깊이 버퍼에 부착된다.픽셀 단편들이 후면 버퍼에 기록되지 못하게 하는 역할을 한다.CD3DX12_DEPTH_STENCIL_DESC구조체 채우고, D3D12_GRAPHICS_PIPELINE_STATE_DESC 설정한다. 2. 스텐실 판정 스텐실 버퍼를 이용하면 장면이 후면 버퍼의 특정 영역에만 렌더링되지 않게 만들수 있다. 스텐실을 적용하는 경우, 주어진 한 픽셀이 후면 버퍼에 기록되는지 아닌지는 스텐실 판정의 결과에 따라 결정된다. 스텐실 판정은 픽셀이 래스터화되는 과정에서, 즉 출력 병합기 단계에서 일어난다. 픽셀을 허용 : 후면 버퍼에 그리겠다. 픽셀..
" (백준/c++) 1987 - 알파벳/ DFS, 백트래킹"https://www.acmicpc.net/problem/1987🏆 solved.ac 난이도: 골드4 BFS로 풀었다가 ~ DFS와 Set을 함께해서 풀었다가 시간초과로 막혀서 Set을 없애고 문제를 풀었다.. 🔸 BFS로 풀었을 때 나왔던 이슈 - BFS는 넓이 우선으로 빨간색으로 체크한 부분이 이전 파란색 Que에 [F]가 담겨 파란색[E] 주변 노란색[H] [F]을 담으려 할 때 [F]가 빠지게 된다. 🔸 DFS + Set 풀이 Set으로 find해서 지나간 경로에 현재 알파벳이 포함되었는지 확인하려고했다.Set의 find 시간복잡도는 O(logN)배열은 바로 접근 가능하기 때문에 O(1)set alphabets;alphabets..
"(백준/c++) 1238 - 파티 / 최단경로그래프, 플로이드 워샬"https://www.acmicpc.net/problem/1238 🏆 solved.ac 난이도: 골드3 🔸 문제 핵심 단방향 도로갔다가 돌아오는 최단경로 🔹 주요 코드 부분파란줄: form ~ stopper 시작점부터 경유지까지 무한이면, 연결되어 있지 않는다는 뜻이기 때문에 무시해주자.노란줄: 시작점부터 도착점 > 시작점부터 경유지 + 경유지부터 도착점이 구조를 외우지 말고 완화(relax)를 이해하자. #include#include#includeusing namespace std;//vector> students[1'001]; int students[1'001][1'001];int result[1'001];int main(v..
"벨만 포드(bellman-ford) 알고리즘 " 알고리즘 이름이 맘에 안든다. =3= 알고리즘이나 수학적 법칙을 보면 발견한 사람들의 이름으로 이름을 만든다. 직관적이지 않아서 계속 까먹게 된다. 직관적으로 이름을 지어줬으면 좋겠다. 예를 들어, "음수사이클 다익스트라" 이런식으로 ~ 1. 최단 경로 트리 (shortest-path tree), 최적해 구조(optimal substructure 알고리즘이다. 답은 여러개가 존재 할 수 있으면 가중치가 있는 그래프로 최단 경로를 찾는다. 2. 음수 사이클의 유무를 확인할 수 있다. 다익스트라랑 다른 점!!으로 음수 사이클의 발생으로 최단 경로가 무한으로 빠지는 음수차이클을 찾는다. 3. 모든 음수 간선이 문제다 ? 아니다. (-) 마이너스 값이 있는..
"(백준/c++) 10026 - 적록색약 / BFS, 그래프"🏆 solved.ac 난이도: 골드5 #include#includeusing namespace std;char grid[101][101];bool visited[101][101] = {false,};bool visitesd[101][101] = { false, };int direction[4][2] = { {-1, 0} , {0, 1}, {1, 0}, {0 ,-1} };int mTC;int normalCount = 0;int blindnessCount = 0;queue> normalPerson; queue colorblindness;void normalFunc(int i, int j);void bilndnessFunc(int i, int j..
"(백준/c++) 11403 - 경로찾기 / BFS, 그래프"https://www.acmicpc.net/problem/11403 🏆 solved.ac 난이도: 실버1 오늘 쉬는 날이라 문제 푸는게 재미있다.Array 변수 이름은 Floyed이지만? 플로이드 와샬보다 BFS를 사용해서 푸는게 더 편할거 같아서 BFS로 풀었다. 다른 BFS와 다른 점은 모든 점에서 방문을 초기화 시켜줘야한다. ex ) 1 -> 5 -> 6 -> 7 이런 연결이 있을 때, 1을 5, 6, 7을 모두 방문 할 수 있다는 표시를 해줘야하고 그 다음 5번, 6번, 7번점도 이전에 방문 했더라도 연결되었는지 확인하기 위해 점 시작점에서 방문을 초기화 해야한다. #include#include#include#includeusing..
"(백준/c++) 11724 - 연결 요소의 개수 / BFS, 그래프"https://www.acmicpc.net/problem/11724🏆 solved.ac 난이도: 실버2 난이도는 쉬웠다. DFS, BFS 아무거나 골라서 풀수 있는 문제이다. 하지만~ 나는 5번 정도 틀렸다. 이유는 방향성이 없는 그래프인데 방향성이 있게 한 쪽만 입력해주고 있었다. ㅠㅠ 방향성이 없는 그래프라면 꼭 정점 양쪽을 비교할 수 있도록 해주자. // 연결 요소의 개수 #include#include#includeusing namespace std; bool visit[1001] = { false, }; vector distributingLine[1001]; queue que;int main(void){ int N, M; ..