분류 전체보기
2024.08.07 운동일지
2024.08.07 운동일지
2024.08.07등+팔 웨이트 1시간
2024.08.06 운동일지
2024.08.06 운동일지
2024.08.07다리운동 1시간
[Vulkan] Vulkan Fence
[Vulkan] Vulkan Fence
2024.08.07목차 Vulkan Fence Vulkan Fence를 사용하는 이유는? VUID-vkAcquireNextImageKHR-semaphore-01780: semaphore and fence must not both be equal to VK_NULL_HANDLE 위의 에러 메시지는, ' vkAcquireNextImageKHR 호출 시 Semaphore와 Fence 중 하나 이상이 VK_NULL_HANDLE이 아니어야 한다 '는 메시지다. Vulkan Fence를 사용하면 Validation Error를 해결할 수 있다. Vulkan Fence란? 작업의 완료를 Host(CPU)에서 확인할 수 있게 하는 동기화 객체다. Vulkan Fence는 두가지 상태, Signal 상태, Unsignal ..
[Vulkan] 화면에 색 출력하기
[Vulkan] 화면에 색 출력하기
2024.08.07목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! 화면에 색 출력하기 화면에 단색 출력하기 Vulkan Swapchain의 Vulkan Image를 단색으로 초기화한다.Command를 기록하기 위해 Vulkan Command buffer를 Recording 상태로 변경한다.Vulkan Swapchain의 Vulkan Image를 단색으로 클리어하는 Command를 기록한다.Vulkan Command buffer의 기록을 끝마친다. 상태는 Executable다.Vulkan Command buffer를 Vulkan Queue에 제출한다.제출된 Vulkan Command buffer가 처리될 때까지 기다린다..
[백준 14391번 C/C++] 종이 조각
[백준 14391번 C/C++] 종이 조각
2024.08.07[백준 14391번 C/C++] 종이 조각 https://www.acmicpc.net/problem/14391 해결전략 비트마스킹 Bitmasking 정답코드 #include #include #include using namespace std;int n, m;int answer = 0;vector> v;int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m; v.resize(n, vector(m)); for (int y = 0; y > c; v[y][x] = c - '0'; // 문자를 숫자로 변환 } } // Rule 정하기: 0이면 세로, 1이..
[Vulkan] Command buffer
[Vulkan] Command buffer
2024.08.06목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! Command buffer Command buffer란? Vulkan Command buffer는 Command를 기록하는데 사용되는 객체다.Command는 무언가를 그리거나 계산하기 위해 필요한 모든 행동을 의미한다. Vulkan Command buffer 생명 주기 Vulkan Command buffer는 내부적으로 생명 주기를 가지고 있다.초기 상태는 Initial이며, VkQueue에 제출하기 위해서는 Executable 상태여야 한다. Initial Command buffer가 할당되고 아직 어떠한 Command도 기록되지 않은 상태R..
[Vulkan] Command Pool
[Vulkan] Command Pool
2024.08.06목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! Command Pool Vulkan Command pool이란? Vulkan Command buffer를 할당하고 관리하는 객체다.Vulkan Command pool은 특정 Queue family에 바인딩된다.Vulkan Command pool은 스레드 안정성이 보장되지 않아 스레드마다 생성해야 한다.Vulkan은 최대한 오버헤드를 줄이기 위해 설계되었다스레드 안정을 보장하는 것은 동기화 비용을 발생시키기 때문에, Vulkan의 경우 개발자가 명시적으로 Command Pool의 동기화를 직접 관리하게 했다. 이렇게 명시적으로 관리함으로써 더 효율적인..
[백준 15661번 C++] 링크와 스타트
[백준 15661번 C++] 링크와 스타트
2024.08.06[백준 15661번 C++] 링크와 스타트 https://www.acmicpc.net/problem/15661 해결전략비트마스킹 Bitmasking백트래킹 Backtracking 정답코드 - 비트 마스킹 #include #include #include using namespace std;int n; // 팀의 인원 수int answer = 987654321;vector> v;int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; v.resize(n, vector(n)); for (int y = 0; y > v[y][x]; } } // 모든 가능한 팀 조합을 비트마스크로 생성 for (unsigned int bitmask..
[Vulkan] Command
[Vulkan] Command
2024.08.05목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! Command Command란? Command는 ' 사용자가 컴퓨터에게 특정 작업을 수행하도록 지시하는 입력 '이다. glUseProgram(program);glBindVertexArray(vertexArray);glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0)glBindVertexArray(0);glUseProgram(0);위의 코드는 OpenGL의 코드다. program을 사용하고 vertexArray를 바인딩하고 primitive를 드로우하고 있다.각 API의 호출이 GPU에게 특정 작업을 수행하도록 지..
[Vulkan] Vulkan Swapchain
[Vulkan] Vulkan Swapchain
2024.08.05목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! Vulkan Swapchain Vulkan Swapchain이란? Vulkan Swapchain은 화면에 출력되는 버퍼를 관리하는 객체다.Vulkan Swapchain을 생성시, 화면 출력을 위한 컬러 스페이스, 이미지 포맷 등 다양한 옵션을 설정할 수 있다. 일련의 chain된 이미지가 있고 화면에 표시하기 위해 Swap한다.ex. GPU가 ImageB를 렌더링 하는 동안 ImageA를 사용자에게 보여준다. Vulkan Swapchain 생성 VkSwapchainCreateInfoKHR 구조체 typedef struct VkSwapchainCr..
[백준 11723번 C/C++] 집합
[백준 11723번 C/C++] 집합
2024.08.05[백준 11723번 C/C++] 집합 https://www.acmicpc.net/problem/11723 해결전략 비트마스킹 Bitmasking 정답 코드 #include using namespace std;int m;int answer;int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> m; string input, int x; for (int i = 0; i > input; if (input == "add"){ cin >> x; answer |= (1 > x; answer &= ~(1 > x; if (answer & (1 > x; answer ^= (1
[백준 1052번 C/C++] 물병
[백준 1052번 C/C++] 물병
2024.08.05[백준 1052번 C/C++] 물병 https://www.acmicpc.net/problem/1052 해결전 수학 그리디 알고리즘 비트마스킹 각 물병은 서로 다른 물병과 합쳐질 수 있다. 이 합치는 과정은 물병의 2진수로 표현한다.예를 들어, 물병 3개(2진수로 11)를 2개씩 합치면 2진수 100이 되어 물병 1개가 된다. 물병을 모두 합쳐서 k개의 물병 이하로 만들어야 한다.n이 k보다 작거나 같으면 추가 물병이 필요 없으므로 0을 반환합니다.비트마스킹n의 2진수 표현에서 1의 개수는 현재 물병의 수가 어떻게 조합될 수 있는지를 나타낸다.int BitCnt(int x)n의 2진수 표현에서 1의 개수가 k보다 많으면, 물병을 추가하여 이 개수를 줄여야 한다. 이를 위해 n을 하나씩 증가시키면서 1의 ..