Vulkan Tutorial 24 Descriptor pool and sets】的更多相关文章

操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 Introduction 描述符布局描述了前一章节讨论过的可以绑定的描述符的类型.在本章节,我们创建描述符集,它将实际指定一个VkBuffer来绑定到一个uniform buffer描述符. Descriptor pool 描述符集合不能集合创建,它们必须像命令缓冲区一样,从对象池中分配使用.对于描述符集合相当于调用描述符对象池.我们将写一个新的函数createDescriptor…
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 Introduction 我们现在可以将任意属性传递给每个顶点的顶点着色器使用.但是全局变量呢?我们将会从本章开始介绍3D图形相关的内容,并需要一个模型视图投影矩阵.我们确实可以将它一顶点的方式包含,但是这非常浪费带宽.内存,并且需要我们在变换的时候更新顶点缓冲区的数据.这种变换通常发生在每一帧. 在Vulkan中正确处理此问题的途径是使用资源描述符.描述符是着色器资源访问诸如缓冲…
当我们有了一个uniform buff之后,vulkan 还不知道这个信息,需要通过descriptor进行描述. Descriptors and Descriptor Sets A descriptor is a special opaque shader variable(隐藏变量) that shaders use to access buffer and image resources in an indirect fashion. It can be thought of as a "…
[译]Vulkan教程(24)索引buffer Index buffer 索引buffer Introduction 入门 The 3D meshes you'll be rendering in a real world application will often share vertices between multiple triangles. This already happens even with something simple like drawing a rectangle…
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 诸如绘制和内存操作相关命令,在Vulkan中不是通过函数直接调用的.我们需要在命令缓冲区对象中记录我们期望的任何操作.这样做的优点是可以提前在多线程中完成所有绘制命令先关的装配工作,并在主线程循环结构中通知Vulkan执行具体的命令. Command pools 我们在使用任何command buffers之前需要创建命令对象池command pool.Command pools管…
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 Introduction 现在我们已经成功的在屏幕上绘制出三角形,但是在某些情况下,它会出现异常情况.窗体surface会发生改变,使得交换链不在于其兼容.可能导致这种情况发生的原因之一是窗体的大小变化.我们必须在这个时机重新创建交换链. Recreating the swap chain 添加新的函数recreateSwapChain并调用createSwapChain及依赖于交…
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 Introduction 到目前为止,我们所使用的几何图形为3D,但仍然完全扁平的.在本章节中我们添加Z坐标到3D模型数据中.我们将使用这个第三个坐标在当前平面上放置一个正方形,以查看几何图形没有进行深度排序造成的问题. 3D geometry 修改 Vertex 结构体使用3D vector作为位置,并且更新对应VkVertexInputAttributeDescription的…
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 相信很多人在开始学习Vulkan开发的起始阶段都会在开发环境的配置上下一些功夫,那么本问将会引导大家快速的完成Vulkan在Windows下的开发环境,并使用几个常用的开发工具库. Vulkan SDK 开发Vulkan应用程序所需的最重要的组件就是SDK.它包括核心头文件.标准的Validation layers及调试工具集.和驱动Loader,如果现在这些关键词不是很明白的话,…
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 General structure 在上一节中,我们创建了一个正确配置.可运行的的Vulkan应用程序,并使用测试代码进行了测试.本节中我们从头开始,使用如下代码构建一个基于GLFW的Vulkan应用程序原型框架的雏形. #include <vulkan/vulkan.h> #include <iostream> #include <stdexcept>…
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 Selecting a physical device 通过VkInstance初始化Vulkan后,我们需要在系统中查找并选择一个支持我们所需功能的显卡.实际上,我们可以选择任意数量的显卡并同时使用他们,但是在我小节中,我们坚持使用第一个适合我们需要的显卡. 我们添加函数pickPhysicalDevice并在initVulkan函数中调用. void initVulkan()…