Vulkan 画三角形 第八章 图形流水线介绍
接下来的文章我们将会配置图形流水线来绘制我们的三角形。图形流水线就是一系列的操作,这些操作把我们的网格体中的顶点和纹理转换成渲染目标上的像素点
接下来的文章我们将会配置图形流水线来绘制我们的三角形。图形流水线就是一系列的操作,这些操作把我们的网格体中的顶点和纹理转换成渲染目标上的像素点
为了能够使用 VkImage,包括交换链中的在内,我们需要在渲染管线中创建 VkImageView。一个图像视图真的就是字面意思的图像的视图。它描述了如何访问这个图像以及访问这个图像的哪个部分,例如图像可能被当作不需要 Mipmap 的二维深度贴图
我们在把图像展示到屏幕之前,需要先把它们渲染到缓冲区中,而交换链就是存放缓冲区的地方。交换链本质上是一个存放需要展示到屏幕的图像的队列。我们的应用程序要做的就是从这个队列中取出一个图像,然后在上面渲染,最后再返回给队列。这个队列是怎么工作的以及队列中的图像什么时候展示到屏幕上,它们都取决于交换链是怎么创建的,但是交换链一般的目的都是同步图像展示和屏幕刷新率
选取了物理设备之后,我们需要创建一个逻辑设备来跟它进行交互。逻辑设备的创建过程跟实例的创建过程类似,我们需要描述要用到的特性。我们还需要根据之前查询好的队列族,指定需要创建的队列。我们甚至可以对于同一个物理设备创建多个逻辑设备来应对不同的需求
创建了表面之后我们接下来就可以在系统中选取一张显卡,事实上我们可以选取多张显卡并同时使用它们,但是在本文中我们只用一张显卡作为示范
Vulkan 是一个跨平台的 API,它不能够直接与不同平台的窗体系统进行交互。为了在 Vulkan 与窗体系统之间建立连接来把渲染结果展示到屏幕上,我们需要使用一些 WSI 扩展。本文将会介绍 VK_KHR_surface 扩展。它暴露一个 VkSurfaceKHR 对象,这个对象代表一个我们可以把图像渲染上去的抽象表面
开始一切之前,我们先引入 Vulkan 的头文件
Vulkan 是一个跨平台的图形与计算 API,本系列文章将使用 Vulkan 绘制一个三角形,旨在为上手 Vulkan 提供帮助
懒加载是指在用到某个变量时才进行初始化
然后并发环境下懒加载可能会有访问冲突、重复初始化等问题,很容易爆炸
因此需要一些操作
相对于 Git 和 SVN,Perforce 在管理二进制文件上更方便
HTTP 协议中的请求只能由客户端发起,如果需要服务端主动向客户端发送信息,就会用到 WebSocket
UE4 的材质编辑器中我们可以创建材质结点然后给它们连线来创建材质
本文将根据源码解析材质结点在内存中的数据结构
在游戏工业中的模块化设计是指把可复用、可内联的模块组织起来形成更大的结构或者环境,以此降低工作量,同时还能减少运行时内存消耗
使用 UE4 的材质编辑器的时候我们可以为材质的颜色、粗糙度、金属度等连接一个常量或者纹理结点,如果要实现复杂效果可能还会用到混合结点,最后就可能看到一个完整的材质其实是由一堆结点和它们之间的连线组成
渲染管线会把内存中的三维模型输出到二维的屏幕上,它具有明显的先后顺序,每一个阶段的输出都会作为下一个阶段的输入。它也可以翻译为渲染流水线