Vulakn 教程
lbknxy
这个作者很懒,什么都没留下…
展开
-
vulakn教程--Drawing a Triangle--Presentation-- Image views
原文地址: vulkan-tutorialImage views为了使用VkImage,不管是在Swap Chain 还是在Pipeline 中,我们都必须创建VkImageView,就如同它的字面意思一样,imageView是image的一个 view.他描述了我们如何访问image、访问image的哪一部分等。这一部分我们将创建VkImageViews , 并把它用作 color targe翻译 2016-09-09 20:52:02 · 743 阅读 · 0 评论 -
vulakn教程--Drawing a Triangle--Presentation--SwapChain
原文链接: Vulakn-tutorialSwapChain这一章节我们将学习这样一种结构/基础(infrastructure),它能为我们提供要渲染的图片,然后渲染结的果可以显到屏幕上。这样的结构就是Swap Chain , Swap Chain必须被Vulkan显示的创建。从本质上讲,Swap Chain就是一个图片的队列(a queue of images),这里的图片等着被翻译 2016-09-08 19:49:19 · 2214 阅读 · 0 评论 -
vulakn教程--Drawing a Triangle--Draw--CommandBuffer
原文地址 : vulkan-tutorialCommand buffers在Vulkan中,像绘画命令、内存转换等操作并不是直接通过方法调用去完成的,而是需要把所有的操作放在Command Buffer 里。这样的一个好处就是:那些已设置好的具有难度的绘图工作都可以在多线程的情况下提前完成。Command poolsCommand pools 管理Command buffer 的内存而且Comma翻译 2016-09-20 20:53:46 · 1505 阅读 · 0 评论 -
vulakn教程--Drawing a Triangle--Set up--Physical Device and Queue Family
原文链接:Vulkan-tutorialPhysical Device and Queue好了,我们已经用VkINstance初始化了Vulkan API,是时候选择一个具有我们需要的特性的显卡了(graphics card),事实上,我们可以同时使用多个显卡,为了简单起见,我们只选择第一个满足我们要求的显卡。VkPhysicalDevice physicalDevice=翻译 2016-09-04 19:09:05 · 1369 阅读 · 0 评论 -
vulakn教程--Drawing a Triangle--Draw--Framebuffer
原文地址 : vulkan-tutorialFramebuffers我们已在之前的章节中多次提到FrameBuffer 并且在创建Render Pass时,我们期望拥有一个和Swap Chain 里image具有相同格式(format)的FrameBuffer。 接下来我们就将创建这种FrameBufefr. 我们将attachments包裹在FrameBuffer中,FrameBuffer 通翻译 2016-09-19 20:49:20 · 887 阅读 · 0 评论 -
vulakn教程--Drawing a Triangle--Presentation--Window surface
原文链接: Vulkan-tutorialWindow surface因为Vulkan是平台(platform)无关的,它不能直接与平台窗体系统(window system)进行通信,为了连接Vulkan和窗体系统,使得被渲染后的结果显示到屏幕上,我们需要使用WSI扩展(Window System Integration extensions),在这个章节我们将使用VK_KHR_surface,它提翻译 2016-09-06 21:45:50 · 1310 阅读 · 0 评论 -
vulakn教程--Drawing a Triangle--Set up--Logical Device
原文链接 : Vulakn-tutorialLogical Device只有Physical Device 还不行,我们还需要创建Logical Device 来与它相联。Physical Device的创建和VkInstance的创建过程差不多,需要明确我们所需的特性(features)、extensions、Validation layers 、queue等。声明 :VDeleter<VkDev翻译 2016-09-05 22:53:55 · 895 阅读 · 0 评论 -
vulkan 教程--Development environmen
原文链接 : vulkan-tutorial 。本打算直接在Android上学习Vulkan,但奈何Android 上的资料实在是太少,也可能我的网被墙了没找到。目前找到了一些sample code:GitHub ,也没什么教程,所以就打算先在PC上搞一阵子,毕竟PC上有这篇教程,熟悉之后再转到Android。因为公司工作机上是Windows 7系统,所以这里重点强调Vulkan翻译 2016-09-02 12:58:54 · 2173 阅读 · 0 评论 -
vulakn教程--Drawing a Triangle--Set up--Validation layers
原文链接:Vulkan-tutorialValidation layers 验证层为什么要用Validation layers ? Vulkan的设计理念是:使驱动(driver)的负担最小化。一个明显的表现就是它有限的错误检测,像设置错误的枚举值或者将必须的函数参数传递为空指针(NULL)这类简单的操作都没有明确的处理,Vulkan只是简单的Crash或者产生一些未定义的行为(undefined翻译 2016-09-04 10:04:43 · 1691 阅读 · 0 评论 -
vulakn教程--Drawing a Triangle--Set up--Instance
InstanceCreating an instance在 initVulkan 里添加函数createInstance :void initVulkan() { createInstance();}声明变量:private:VDeleter<VkInstance> instance {vkDestroyInstance};然后需要填充两个结构体: VkApplicationInfo和翻译 2016-09-03 11:57:41 · 1094 阅读 · 1 评论 -
vulakn教程--Drawing a Triangle--Pipeline--Render passes
原文链接 : vulkan-tutorialRender Pass在创建Pipeline 之前我们必须告诉Vulkan在渲染时要使用的FrameBuffer 附件(attachments),需要定义使用color buffer 以及 depth buffer attachments的数量,要使用多少个采样(samples)以及应该如何处理采样的内容。所有这些信息都可以填写在Render Pass里翻译 2016-09-15 21:29:40 · 1012 阅读 · 0 评论 -
vulakn教程--Drawing a Triangle--Pipeline--Fixed function
原文地址 : vulkan-tutorial Fixed functions这一章节的内容大部分设计Pipeline中不可编程部分的配置。Vertex inputVkPipelineVertexInputStateCreateInfo 代表我们传递给Vertex Shader 顶点数据的格式,它涉及以下两个方面:顶点数据的描述(Bindings) :数据间的间翻译 2016-09-14 21:17:48 · 1654 阅读 · 0 评论 -
vulakn教程--Drawing a Triangle--Set up--Base code
Base codeGeneral structure上一章通过构建一个窗体来完成VS对Vulkan的配置,并将配置好的工程设置为模板以备后续的使用。在上一章的最后我们用这个模板创建了一个名为:Hello Triangle 的新工程,现在让我们为这个工程搭建一个框架。#include <iostream>#include <stdexcept>#include <functional>class翻译 2016-09-03 11:02:34 · 1123 阅读 · 0 评论 -
Vulkan教程--Introduction
这是一篇告诉你如何使用Vulkan 图形(Graphics)和计算(Compute)API 基础的教程。Vulkan是一个来自 Khronos group的新的图形API,它使你能更好的描述你的应用的目的,它为你的应用带来更高的性能,和现存的API( OPengl 和 Direct3D )相比,Vulkan 具有更少的不确定行为。Vulkan的思想和Dirext3D 以及Metal 十分相似,翻译 2016-08-31 14:46:45 · 2592 阅读 · 0 评论 -
Vulkan 教程--Overview
原文地址 Vulkan-tutorial 。Origin of Vulkan和其他图形API一样,Vulkan也被设计成跨平台。但是以前的这些图形API在设计时和当时的显卡关系密切,只是提供了一些可配置的固定功能。编程人员不得不在显卡厂商的怜悯之下,使用所谓标准格式的顶点数据来勉强进行光照( lighting )和着色( shading )操作。随着翻译 2016-09-01 15:44:23 · 2416 阅读 · 2 评论 -
vulakn教程--Drawing a Triangle--Pipeline--Shader Module
原文地址 : vulkan-tutorial着色器模块 Shader modulesVulkan 和之前的图形API有所不同,为了避免不同厂商移植代码的复杂性,Vulkan的着色器代码(shader code)采用字节码格式(bytecode) SPIR-V,而非人类可以阅读的文本格式,如GLSL(opengl 的一套体系)等。但这并不意味着我们要亲自手写字节码, 幸运的是LunarG SDK 已翻译 2016-09-12 21:47:15 · 1332 阅读 · 0 评论 -
Vulkan教程说明
首先,这是一篇译文,原文网址是:Vulkan-tutorial 你可以在这个网址下看到本系列所有文章的原文。本人目前刚出来实习,两个月前我还以为自己的工作是写Android 应用的,并且之前我也一直往这个方向努力。但在公司实习后,接触的更多是Native层的东西,和之前写Android应用,画画界面、用些第三方库、写个网络访问等有好大的差别。虽然目前也是做Android方向,但公司这些东西从翻译 2016-08-30 23:40:17 · 1761 阅读 · 0 评论 -
vulakn教程--Drawing a Triangle--Pipeline--Introduction
原文链接: vulkan-tutorialPipeline前言(Introduction)Pipeline 是指图形系统对图像信息进行一系列处理的过程,这些图像信息包括顶点信息(坐标、法向量…),像素信息(图像、纹理…)等,最终这些处理好的数据将被放到帧缓冲区(FrameBuffer)中供应用获取。 图1-Pipeline过程a.输入装配器(Input assembler) : 从Vertex翻译 2016-09-10 22:25:45 · 825 阅读 · 0 评论 -
vulakn教程--Drawing a Triangle--Draw--Render and presentation
原文地址 : vulkan-tutorialRendering and presentation接下来我们将使用drawFrame() 函数将三角形显示到屏幕上。 drawFrame()要做如下几件事:从Swap Chain 请求一个image。执行带有这个image的command buffer ,这个image曾被当做attachment存储在framebuffer中(Execute t翻译 2016-09-21 23:11:29 · 1797 阅读 · 1 评论