Browse Source

添加简介

master
zara 3 years ago
parent
commit
ca4c37cac3
  1. 38
      简介.md

38
简介.md

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
# 简介
* 关于
* 教程大纲
## 简介
本教程旨在介绍Vulkan图像和计算API的基本用法。Vulkan是由Khronos组织发布的新的API,提供了对新型图形硬件更好的抽象。相比OpenGL、Direct3D12,Vulkan能为你的应用提供更好的描述,一次提高应用性能、减少硬件功耗,但Vulkan还可以跨平台使用,你可以在Windows、Linux和Android等设备上同时使用Vulkan编写的程序。
不过,为获取以上提升,你需要使用的是一些更为冗长的API。你需要设置与程序相关的每一小处细节,包括创建初始帧缓冲区、管理缓冲区和纹理图像等对象的内存。图形硬件只提供底层功能,因此你需要为你的应用做更多设置以保证其正确运行。
首先说一下,Vulkan并不适合所有人。Vulkan的目标用户是有热衷于高性能计算机图形学的程序员,以及其他对此有兴趣的人。如果你仅对游戏开发感兴趣,推荐使用OpenGL或Direct3D。或者使用虚幻引擎或Unity,这些引擎提供封装好的Vulkan函数和功能。
我们需要如下条件:
1. 能够运行Vulkan的图形硬件,如nVidia、AMD、Inter、Apple等厂商的图形硬件
2. 熟悉C++
3. 支持C++17特性的编译器(MSVC2017、GCC7、Clang5 以上编译器)
4. 关于三维计算机图形的基础经验
本教程不需要你曾经学习过OpenGL或Direct3D,但需要你了解基础的计算机三维图形。如,我们不会解释透视投影背后的数学原理,以下是一些计算机图形学的介绍
[现代3D图形编程](https://paroj.github.io/gltut/)
[一周末完成光追](https://github.com/RayTracing/raytracing.github.io)
[物理渲染基础](http://www.pbr-book.org/)
你也可以使用C来代替C++,不过你需要换一个线性代数库,以及你需要自行编写数据结构。我们会使用C++中的一些特性如类、RAII(资源获取就是初始化)来管理逻辑和资源的生命周期。也有为Rust准备的Vulkan教程。
为方便使用其他语言的程序员学习,也为了能学习这些基础API的使用经验,我们使用Vulkan的C语言API来教学。如果你使用c++,你更应该使用新的Vulkan-Hpp来完成一些繁琐的工作,并且预防某些类型错误。
## 教程结构
我们将从简略介绍Vulkan是如何工作的,并且将在屏幕上显示第一个三角形。在你理解了显示图形的过程中的每一步的作用之后,你就会对每一步的操作有更深的理解。其次,我们会使用VulkanSDK,GLM线性代数库和GLFW视窗管理库来搭建开发环境。本教程涵盖Windows上使用VS开发,和在Linux上使用GCC开发。
然后我们将学习渲染你的第一个三角形时所需要用到的每一个Vulkan组件,每一章节都有如下三个部分
1. 介绍一个新的概念及其目的
2. 介绍一个相关的API并加入你的项目中来
3. 将它抽象成辅助的函数 ///没翻出来
尽管每一章节都需要前面章节的知识,但每一章都可以单独的学习Vulkan
Loading…
Cancel
Save