4
社区成员
发帖
与我相关
我的任务
分享
| 阶段 | 核心Vulkan对象 | 数量 | 作用 |
|---|---|---|---|
| ① | VkInstance VkSurfaceKHR DebugMessenger | 各1 | 连接Vulkan库与操作系统窗口 |
| ② | VkPhysicalDevice VkDevice VkQueue | 设备1, 队列2+ | 选择GPU, 创建交互接口 |
| ③ | VkSwapchainKHR VkImage[] VkImageView[] | 交换链1, 图像N | 管理屏幕显示缓冲区链 |
| ④ | VkRenderPass VkPipelineLayout VkPipeline | 各1+ | 定义从顶点到像素的完整处理流程 |
| ⑤ | VkCommandPool VkCommandBuffer[] VkSemaphore[] VkFence[] VkFramebuffer[] | CB=飞行帧数, 同步=2x飞行帧数, FB=图像数 | 多帧并行渲染基础设施 |
| ⑥ | VkBuffer VkImage VkDescriptorSet VkSampler | 按需 | 顶点/纹理/Uniform等实际数据 |
| ⑦ | while循环 + 每帧录制命令 | 持续运行 | 录制命令→提交→呈现 |
| ⑧ | 逆序 vkDestroy* | 销毁所有 | 安全释放所有GPU资源 |
text
1. Fence (CPU↔GPU): vkWaitForFences 确保CPU不覆盖GPU正在使用的帧资源 2. Semaphore (GPU↔GPU): ImageAvailable → 渲染开始, 渲染完成 → 呈现开始 3. 帧索引轮转: currentFrame = 0 → 1 → 0 → 1 → ... 每帧用独立资源组