본문 바로가기

Vertex buffer creation 이전 글 : Vertex input description다음 글 : Staging buffer Vertex buffer creation 버텍스 버퍼 생성 Introduction Vulkan의 버퍼는 그래픽 카드에서 읽을 수 있는 임의의 데이터를 저장하는 데 사용되는 메모리 영역입니다. 이것들은 정점 데이터를 저장하는 데 사용할 수 있습니다.이 장에서는 앞으로 다룰 다른 많은 목적으로 사용할 수 있습니다. 지금까지 다루어 왔던 Vulkan 객체와 달리 버퍼는 자동으로 메모리를 할당하지 않습니다. 이전 장들의 설명에서 Vulkan API는 프로그래머가 거의 모든 것을 제어 할 수 있다는 것을 보여 주었고 메모리 관리는 이러한 것들 중 하나입니다. Buffer creation 새 함수를 createVertex.. 더보기
Vertex input description 이전 글 : Swap chain recreation다음 글 : Vertex buffer creation Vertex input description 정점 입력 설명Introduction 다음 몇 장에서는 버텍스 쉐이더자체에 하드 코드 된 버텍스 데이터를 메모리의 버텍스 버퍼로 대체 할 것입니다. CPU 가 버퍼를 생성하고 memcpy를 사용하여 정점 데이터를 직접 복사하는 가장 쉬운 방법부터 시작하여 스테이징 버퍼를 사용하여 고성능 메모리로 정점 데이터를 복사하는 방법을 살펴 보겠습니다. Vertex shader 먼저 셰이더 코드 자체에 버텍스 데이터를 포함하지 않도록 버텍스 셰이더를 변경하십시오. 버텍스 쉐이더는 in 키워드를 사용하여 버텍스 버퍼로부터 입력을받습니다. #version 450 #exte.. 더보기
Swap chain recreation 이전 글 : Drawing - Rendering and presentation다음 글 : Vertex input description Swap chain recreation 스왑 체인 레크리에이션Introduction 우리는 이제 삼각형을 성공적으로 그렸지만 아직 제대로 처리하지 못하는 상황이 있습니다. 스왑 체인이 더 이상 서피스에 호환되지 않을때가 있습니다. 이 문제를 일으킬 수 있는 이유 중 하나는 창 크기가 변하는 것입니다. 우리는 이러한 사건이 발생하면 스왑 체인을 다시 만들어야 합니다. Recreating the swap chain 스왑 체인 다시 만들기 createSwapChain을 호출하는 새로운 recreateSwapChain 함수를 만들고 스왑 체인이나 창 크기에 의존하는 객체의 모든 .. 더보기
Drawing - Rendering and presentation 이전 글 : Drawing - Command buffers 다음 글 : Swap chain recreation Rendering and presentation 렌더링과 프리젠테이션Setup 이번에는 앞에서 설명한 모든 것이 함께 조립될 것 입니다.. 삼각형을 화면에 올리기 위해 메인 루프에서 호출 할 drawFrame 함수를 작성합니다. 함수를 만들고 mainLoop에서 호출하십시오. void mainLoop() { while (!glfwWindowShouldClose(window)) { glfwPollEvents(); drawFrame(); } } ... void drawFrame() { } Synchronization동기화 drawFrame 함수는 다음 작업을 수행합니다. 스왑 체인에서 이미지를 가져.. 더보기
Drawing - Command buffers 이전 글 : Drawing - Framebuffers다음 글 : Drawing - Rendering and presentation Drawing - Command buffers 커멘드 버퍼, 명령 버퍼Vulkan의 명령은 그리기 작업 및 메모리 전송과 마찬 가지로 함수 호출을 사용하여 직접 실행하지 않습니다. 명령 버퍼 객체에서 수행 하려는 모든 작업을 기록 해야합니다. 이것의 장점은 미리 그리기 명령을 설정하는 모든 작업이 사전에 그리고 여러 스레드에서 수행 될 수 있다는 것입니다. 그 후에 Vulkan에게 메인 루프에서 명령을 실행하도록 명령하면 됩니다. Command pools 명령 버퍼를 만들기 전에 명령 풀을 만들어야합니다. 명령 풀은 버퍼를 저장하는 데 사용되는 메모리를 관리하며 각 명령 버퍼.. 더보기