Vulkan 元素

本文介绍了Vulkan的主要元素,包括VkInstance、VkPhysicalDevice、VkDevice、VkQueue、VkSurfaceKHR、VkSwapchainKHR、VkImageView、VkFramebuffer、VkRenderPass、VkPipeline、VkCommandPool和VkCommandBuffer。此外,还详细讲解了如何使用常量、划分缓冲区、应用特化常量、处理纹理数组、实现多渲染目标、实例化、使用Compute Shader以及开启曲面细分等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

  • 本文是《Vulkan 应用开发指南》的笔记,以及一些用法补充(我现在也只是跟着书码了一遍,额外查了一些操作方法)
  • 这篇文章是Vulkan的“主要元素和部分特性”,之后会有“有一定完成度的渲染管线” 和 “PhysX接入” 计划是三篇文章。(因为剔除、抗锯齿、后处理等等也是“大量借鉴”,不会详细写。想要有一定完成度还挺花时间的,或许会有Content部分,但我其实不太想花时间搞,或许会有个简单的场景目录)

正文

正文分两部分:构建主要元素、一些具体操作

Vulkan 主要元素

主要是针对Vulkan的类,其他库内容略

1. VkInstance 和 VkPhysicalDevice

Vulkan程序需要创建一个VkInstance来启用vulkan API.在创建Instance时你需要准确的描述你的应用程序的一些属性,以及你需要使用的各种API。在创建Instance之后,你需要查询硬件对vulkan的支持,并选择一个或者多个VkPhysicalDevices。

2. VkDevice 和 VkQueue

在决定使用哪块显卡之后,你需要创建一个VkDevice (logical device),在创建过程中你还要更详细的描述你用到的硬件特性(VkPhysicalDeviceFeatures)。

大部分Vulkan操作, 比如绘制命令和内存/显存操作, 都需要通过提交到VkQueue之后异步执行。Queue是从queue family分配的,每个queue family中的Queue只支持某个特定集合的操作
比如:创建 graphics Queue 提交渲染指令,创建 present Queue 用来请求呈现图像

3. VkSurfaceKHR 和 VkSwapchainKHR

Surface是一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值