vulkan

01VulKan——在Windows系统+NuGet环境搭建

百般思念 提交于 2020-08-14 14:11:10
1.Vulkan SDK下载 下载网址 https://vulkan.lunarg.com/sdk/home ,选择Windows平台下的最新SDK下载安装。 2.安装Vulkan,双击.exe文件 安装 3.测试 安装完成了,到安装的新形成的目录下 Bin32 运行 vkcube.exe ,测试一下安装是否成功,你的PC显卡驱动程序是否支持Vulkan,如下所示: 若出现如下图所示,则说明成功: 4. 创建Visual Studio工程并新建CPP文件 输入以下程序: #define GLFW_INCLUDE_VULKAN #include <GLFW/glfw3.h> #define GLM_FORCE_RADIANS #define GLM_FORCE_DEPTH_ZERO_TO_ONE #include <glm/vec4.hpp> #include <glm/mat4x4.hpp> #include <iostream> int main() { glfwInit(); glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); GLFWwindow* window = glfwCreateWindow(800, 600, "Vulkan window", nullptr, nullptr); uint32_t extensionCount

10VulKan——深度缓冲 模型加载

梦想的初衷 提交于 2020-08-13 01:03:57
整体思路: GLM生产出的透视投影矩阵默认使用OpenGL的深度范围,收敛在 -1.0 到 1.0 。我们需要使用 GLM_FORCE_DEPTH_ZERO_TO_ONE 定义将其配置为使用 0.0 到 1.0 的Vulkan深度范围 ; 使用 tinyobjloader 库来从OBJ文件中加载vertices和faces数据 ,并将 tiny_obj_loader.h 头文件( https://github.com/tinyobjloader/tinyobjloader ) 下载到库目录中的文件夹中;模型使用的是viking_room.obj( https://github.com/Overv/VulkanTutorial/tree/master/resources )。 注意: 索引数据类型 为uint32_t 。因为将会有超过65535个或者更多的顶点。 顶点着色器: #version 450 #extension GL_ARB_separate_shader_objects : enable layout(binding = 0) uniform UniformBufferObject { mat4 ModelMatrix; mat4 ViewMatrix; mat4 ProjectiveMatrix; } UBO; layout(location = 0) in vec3

新闻速读 > Windows 10 的 Linux 内核将像驱动程序一样由微软更新服务进行更新

邮差的信 提交于 2020-08-12 01:48:57
Windows 10 的 Linux 内核将像驱动程序一样由微软更新服务进行更新 在最新的 Windows 10 预览版中,Windows 10 改变了 WSL 2 内部 Linux 内核的服务模式,将 Linux 内核从 Windows 镜像中移除,让它通过微软更新服务进行更新,就像如今在你的机器上安装和更新第三方驱动程序(如图形,或触摸板驱动程序)一样。 来源: softpedia 硬核老王点评:微软终将吞噬开源,Windows 最后会吃掉 Linux。 Ubuntu 发行商 Canonical 将参加微软欧洲虚拟开源峰会 Ubuntu 背后的 Canonical 宣布,其公有云副总裁将会在会上举行主题演讲,讨论 Ubuntu Pro for Azure 的开源问题。此外,Canonical 还将在微软欧洲虚拟开源峰会上拥有自己的“虚拟”展台。Canonical 是微软在这一领域最重要的合作伙伴之一,例如 Ubuntu 就已经完全兼容 WSL。此外,Canonical 还通过开发 Ubuntu Pro for Azure 等产品,在这一战略上不断投入。 来源: softpedia 硬核老王点评:Canonical 是最积极向微软靠拢的开源公司——让我们“期待”它被微软收购的那一天。 树莓派支持 Vulkan 最新进展:通过 70000 项测试

Android Emulator

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-10 19:30:08
问题 This is error constantly troubling me. 2:48 PM Emulator: E0703 14:48:54.862877684 8457 socket_utils_common_posix.cc:201] check for SO_REUSEPORT: {"created":"@1593767934.862700600","description":"SO_REUSEPORT unavailable on compiling system","file":"/mnt/tmpfs/src/android/emu-master-dev/external/grpc/src/core/lib/iomgr/socket_utils_common_posix.cc","file_line":169} The description given is : "description":"SO_REUSEPORT unavailable on compiling system","file":"/mnt/tmpfs/src/android/emu-master

21VulKan——纹理绘制

此生再无相见时 提交于 2020-08-09 05:23:43
绘制函数 该方法会执行下面的操作: 1.从交换链获取图像; 2.用该图像作为帧缓冲中的附件来执行命令缓冲; 3.将图像返回给交换链以便呈现。 这些事件每一个都是使用单个方法调用来启动的,但是它们 都是异步 的。方法调用会在实际操作结束之前返回,且执行顺序也是不一定的。这就很不幸了,因为每个操作都依赖于之前的操作完成才行。 有两种方式来 同步交换链 事件:栅栏和信号量。它们俩对象都能用于协调操作,方式就是设置一个操作信号,另一个操作等到一个栅栏或者信号量,然后从一个未标记的状态变成标记的状态。 不同之处是栅栏状态可以从你的程序中通过类似vkWaitForFences的调用来访问,而信号量却不行。栅栏主要是设计用于同步你的 应用和渲染 操作的,然而信号量用于同 步命令队列操作 。想要同步绘制命令和呈现的序列操作,选用信号量最合适。 尽管现在我们设置了需要的对象来促进同时使用多帧,我们还是没有防止有多余MAX_FRAMES_IN_FLIGHT的工作提交。当前只有GPU-GPU同步而没有CPU-GPU同步以跟踪任务如何进行。我们可能在0号帧还未准备好的时候用0号帧的对象。 为了进行CPU-GPU同步,Vulkan提供了第二种同步原语叫做 栅栏 。栅栏和信号量类似,它们可以被标记和等待,但是这次我们实际上在自己的代码中等待。 来源: oschina 链接: https://my

20Vulkan———绘制对象

旧时模样 提交于 2020-08-09 01:54:36
1.绘制对象过程 包括记录和执行绘图对象的命令缓冲区。 记录将 Render Pass,framebuffer 和管线与视口和几何数据相关联。 命令缓冲区执行涉及在设备队列中提交命令缓冲区,并将绘制的交换链图像呈现在展示引擎上。 1.产生命令缓冲区并记录绘图指令 准备绘图对象:此阶段生成绘制对象所需的 命令缓冲区 : 命令缓冲区创建 :Command buffer creation,对于每个交换链彩色图像,需要创建一个相应的命令缓冲区对象。 例如,如果交换链是双缓冲区,那么它将包含两个彩色图像。 因此,我们应该创建两个命令缓冲区对应于每个图像。 命令缓冲区记录 :Command buffer recording,对于创建的命令缓冲区,一次记录 Render Pass 实例命令的一个子通道,请参阅以下步骤: 将创建的 Render Pass 对象和 framebuffer 与展示渲染区域所需的尺寸关联。 指定清除背景色和深度图的标量值。 我们在第 7 章“缓冲区资源”,“渲染通道”,“帧缓冲区”和“使用 SPIR-V 的着色器”中实现了此步骤。 有关更多信息,请参阅“清除背景色”部分。 绑定图形管线对象 graphics pipeline object。 绑定管线使用的资源,包括顶点缓冲区 vertex buffers 和描述符集 descriptor sets。 定义视口

Is there a programmatic way to see what graphics API a game is using?

杀马特。学长 韩版系。学妹 提交于 2020-08-06 04:46:57
问题 For games like DOTA 2 which can be run with different graphics API's such as DX9, DX11, Vulkan, I have not been able to come up with a viable solution to checking which of the API's its currently using. I want to do this to correctly inject a dll in order to display images over the game. I have looked into manually checking what dll's the games have loaded, this tool for example: https://docs.microsoft.com/en-us/sysinternals/downloads/listdlls however, in the case of DOTA, it loads in both

Is there a programmatic way to see what graphics API a game is using?

感情迁移 提交于 2020-08-06 04:46:10
问题 For games like DOTA 2 which can be run with different graphics API's such as DX9, DX11, Vulkan, I have not been able to come up with a viable solution to checking which of the API's its currently using. I want to do this to correctly inject a dll in order to display images over the game. I have looked into manually checking what dll's the games have loaded, this tool for example: https://docs.microsoft.com/en-us/sysinternals/downloads/listdlls however, in the case of DOTA, it loads in both

16Vulkan——图像资源和SwapChain

纵然是瞬间 提交于 2020-08-05 17:05:39
1.图像资源 Vulkan 图像以 1D / 2D / 3D 形式表示连续的纹理数据。 这些图像主要用作附件或纹理: 附件 Attachment :图像可以被附加到管线,用于帧缓冲区的颜色附件或深度附件,也可以用作辅助表面,用于多通道处理目的。 纹理 Texture :图像用作描述符的接口,并以采样器的形式在着色器阶段(片段着色器)共享。 Vulkan 中纹理的概念主要使用 图像 , 图像布局 和 图像视图 来解释: 图像 Image:图像代表 Vulkan 中的纹理对象, 其中包含用于计算内存需求的元数据。 收集的内存需求在内存分配期间很有用。 图像可以表示其他以及众多类型的信息,例如格式,大小和类型(稀疏映射,立方体映射等)。 单个图像可能包含多个子资源,例如基于 mipmap 级别或一系列层的多个图像。 每个图像或图像子资源都使用图像布局进行指定。 图像布局 Image layout:图像布局是在图像内存存储空间中,以网格坐标表示形式存储图像纹理信息的一种特定实现方法 。 存储在图像内存中的图像非常依赖具体的实现;每个图像都有特定的用法,例如,颜色附件,着色器中的采样图像,图像加载、存储或大图像的稀疏纹理。 对于这些特殊用途,实现提供了专门用于图像内存使用的图像布局,用来提供最佳的性能。 图像视图 Image view :图像不能直接通过 API 调用或管线着色器用于读写目的

新技能Get! 手把手教你接入CG Kit

末鹿安然 提交于 2020-08-05 03:21:19
1 初始准备 1.1 CGKit简介   CGKit是华为推出的一套高性能渲染框架,提供了渲染所需的原子能力,如材质、模型、灯光以及一些后期特效等。另外提供了高性能渲染组件,如抗锯齿和基于Vulkan的多线程组件等。除此之外还提供了Smart Cache以及Pre-rotation等扩展能力,并整合了前沿计算机图形学、计算机视觉和深度学习等最新研究成果。 1.2 官方指导   华为开发者的主页如下:    https://developer.huawei.com/consumer/cn/   在该页面有CGKit的链接:   点击该链接即可转到CGKit的主页,其地址如下:    https://developer.huawei.com/consumer/cn/hms/huawei-computer-graphics/   这里会有CGKit的基本介绍,如下:   这里主要关注开发,点击“查看文档”,即可转到如下地址:    https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/introduction-0000001050197938   该网页是进行CGKit开发的官方页面,有关介绍这里不再重复。   重点关注以下两点即可:   其中示例代码是一套Android Studio工程