분류 전체보기
[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의 ..
[Vulkan] Vulkan Surface
[Vulkan] Vulkan Surface
2024.08.04Vulkan은 플랫폼에 구애받지 않는 API이기 때문에 자체적으로 윈도우 시스템과 직접 인터페이스할 수 없다. 화면에 결과를 제시하기 위해 Vulkan과 VK_KHR_surface 확장을 사용해야 한다. 목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! Vulkan Surface Vulkan Surface란? Vulkan Surface는 Window를 나타내는 객체다.Vulkan Surface를 통해 Window와 Window에 연결된 Display에 대한 정보를 얻을 수 있다. Android에서 Vulkan Surface 생성하기 위한 준비 Vulkan Surface를 생성하기 위해서는 Wind..
[Vulkan] 화면 출력을 위해 필요한 Vulkan Extension
[Vulkan] 화면 출력을 위해 필요한 Vulkan Extension
2024.08.04목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! 화면 출력을 위해 필요한 Vulkan Extension 화면 출력 기능에 대한 Vulkan의 정책 대개 Graphics API를 사용해서 렌더링 결과를 화면에 출력하는 것이 일반적이다. ex. DirectX12, Metal 하지만 Vulkan 렌더링 결과를 화면에 출력하는 기능은 필수가 기능이 아닌 Extension으로 분류하고 있다. (원하지 않으면 안 그릴 수 있다.)렌더링 결과를 화면에 직접 출력할 필요가 없는 서버 사이드 렌더링이 대표적인 예다. ex. Stadia게임이 서버에 렌더링되고 결과가 사용자의 모니터로만 전송된다. Vulkan에서 렌더..
[Vulkan] Vulkan Device
[Vulkan] Vulkan Device
2024.08.02목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! Vulkan Device Vulkan Device란? 렌더링이나 컴퓨팅을 하기 위해서는 Vulkan Device가 반드시 필요함.Vulkan Device는 Logical한 자원임.Vulkan Physical Device를 Vulkan Device를 통해 추상화함으로써 하드웨어 의존성을 벗어날 수 있음.NVIDIA GPU와 AMD GPU가 Logical하게 같다면 두 Vulkan Device를 동일하다고 생각할 수 있다.Logical하게 같은 두 Vulkan Device를 하나로 묶어서 mGPU로 사용할 수 있습니다. Vulkan Device 생성 ..
[Vulkan] Vulkan Physical device
[Vulkan] Vulkan Physical device
2024.08.02목차 Vulkan Physical device Vulkan Physical device란? Vulkan Physical device는 보통 GPU를 말한다. 개발자는 Vulkan Physical device를 통해서 어떤 GPU로 Vulkan을 실행시킬지 결정할 수 있다. OpenGL과 달리 Vulkan은 개발자가 어플리케이션에 더 적합한 GPU를 선택할 수 있다. GPU가 2개 이상인 경우 컴퓨터에 Intel GPU와 NVIDIA GPU가 탑재되어 있는 경우가 많다.성능이 중요하다면 NVIDIA GPU를 사용하고 전력 소비량이 중요하면 Intel GPU를 사용하게 된다. 상황에 따라 둘 다 사용하게 설정할 수도 있다. 데스크탑이나 워크스테이션의 경우 여러개의 GPU를 장착할 수 있다...
[Vulkan] Vulkan Instance
[Vulkan] Vulkan Instance
2024.08.02목차 인프런 삼각형님의 '삼각형의 실전! Vulkan 중급' 강의를 참고하였습니다. 😎 [삼각형의 실전! Vulkan 중급] 강의 들으러 가기! Vulkan Instance Vulkan Instance란? Vulkan Instance는 Vulkan API를 사용하기 위해 필요한 객체다. (OpenGL의 컨텍스트와 같은 레벨으로 봐도 된다) 어플리케이션과 Vulkan 드라이버 간의 연결을 초기화하고 관리한다.사용할 Instance Layer를 정의한다.사용할 Instance Extension을 정의한다.어플리케이션 정보를 Vulkan 드라이버에 제공한다. Vulkan Instance를 통해 Vulkan Loader를 설정한다! Vulkan Instance 생성 typedef struct V..
[백준 16938번 C/C++] 캠프 준비
[백준 16938번 C/C++] 캠프 준비
2024.08.02[백준 16938번 C/C++] 캠프 준비 https://www.acmicpc.net/problem/16938 해결전략 비트마스킹 Bitmasking백트래킹 Backtacking 정답코드 #include #include using namespace std;int n, l, r, x; // 문제의 개수, 난이도 합의 최소값, 난이도 합의 최대값, 가장 어려운 문제와 쉬운 문제의 난이도 차이 최소값vector A; // 각 문제의 난이도int answer; // 조건을 만족하는 경우의 수int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> l >> r >> x; A.resize(n); for (int i ..
2024.08.01 운동일지
2024.08.01 운동일지
2024.08.01다리운동 40분 + 유산소 20분
[Vulkan] Vulkan Application/ Loader/ Layer/ Driver
[Vulkan] Vulkan Application/ Loader/ Layer/ Driver
2024.08.01Loader는 Application을 Layer 및 클라이언트 드라이버(ICD)에 매핑하는 역할을 한다. 목차 Vulkan Vulkan Loader의 역할 Vulkan Loader는 Application의 요청을 받아 Layer들이 순차적으로 실행되게 한다.그리고 마지막에 Driver가 호출되도록 한다. Vulkan API 호출 시Layer A → Layer B → Layer C → Vulkan ICD 순서로 호출'레이어 구조' 라고 부른다. Vulkan Loader의 장점 장점 #1: 레이어 구조 - Release 때 불필요한 부분 제외Vulkan 프로그래밍 시 위와 같이 순서대로 모두 실행되어야 한다. 하.지.만. 배포하는 Release 때는 불필요한 Layer가 있을 수 있..
[Vulkan] Vulkan / Android Studio / NDK 설치
[Vulkan] Vulkan / Android Studio / NDK 설치
2024.08.01Vulkan을 사용하기 전에 필수로 설치되어야 할 것들을 설치하자. 먼저, Vulkan을 설치하고 Android 환경에서 작업하기 위해 Android Stduio를 설치하자. 목차 Vulkan / Android Studio / NDK 설치 Vulkan 설치 1. 다운로드https://vulkan.lunarg.com/ LunarXchangeLunarG uses cookies on our site to help us deliver the best user experience. Review our Privacy Policy for more information. Do you accept cookies? Accept All Accept Necessary Manage Cookiesvulkan.lunarg..