原文连接:https://Vulkan-tutorial.com/OverviewVulkan是新一代计算机图形API图形API的的作用是让CPU可以操作GPU进行计算和图形渲染先前著名的图形API有OpenGL和Direct3D但随着时间的推移先前的图形API已经不能更好的满足图形编成的需要了,因此Vulkan诞生了下面通过分析原文中的两句话来认识一下Vulkan与先前的图形API的区别,今天小编就来聊一聊关于编程斜杠是什么意思?接下来我们就一起去研究一下吧!

编程斜杠是什么意思(程序员读VulkanTutorial学英语之Origin)

编程斜杠是什么意思

原文连接:Vulkan-tutorial/Overview

Vulkan简介

Vulkan是新一代计算机图形API。图形API的的作用是让CPU可以操作GPU进行计算和图形渲染。先前著名的图形API有OpenGL和Direct3D。但随着时间的推移先前的图形API已经不能更好的满足图形编成的需要了,因此Vulkan诞生了。下面通过分析原文中的两句话来认识一下Vulkan与先前的图形API的区别。

第一句

Just like the previous graphics APIs, Vulkan is designed as a cross-platform abstraction over GPUs.

翻译:就如同先前的图形API,Vulkan是对GPU的抽象并且是跨平台的。

理解这句话的关键在于“as”和“over GPUs”。

“as”可以作为副词、连词、介词,这里“as”后面接了一个名词成分“a cross-platform abstraction”,因此这里的“as”是连词,是“作为”的意思。因此直译“Vulkan is designed as a cross-platform abstraction”为“Vulkan被作为跨平台的抽象而被设计”。

“over”是介词,含义是“跨越...之上”,比如"The bridge over the river",桥跨越了河流;“look over there”,“看在那边”其要表达的含义是眺望,就是在观察者和被观察者之间有一些障碍物或者距离,需要跨过这些障碍物或距离才能看见。“over GPUs”是作为“abstraction”的定语,用来表明Vulkan这种abstraction跨越了多种GPU。这点很重要因为目前GPU的厂商有很多Intel、AMD、NVIDA以及众多移动端的GPU(如高通)。这句话的含义就是Vulkan不单单是对某种GPU的抽象,而是对所有现代GPU的抽象。

第二句

The problem with most of these APIs is that the era in which they were designed featured graphics hardware that was mostly limited to configurable fixed functionality.

翻译:先前的大多数API都是围绕图形硬件来设计的,而这样做造成了API受限于图形硬件提供的固定功能,而用户只能通过参数配置来调整这些功能最终产生的效果。

“The problem with most of these APIs is that”中的“most of these APIs”指的是上一句中的“previous graphics APIs”,也就是先前的API。其“that”后面便是“The problem”的定语从句,也就是解释“The problem”到底是个什么问题。

从句关键是动词“feature”,对于程序员“feature”这个词作为名词时并不陌生,意思是“特性”。而作为动词比较罕见。作为动词时它的含义是“以什么为核心或目的来作某件事或制造某件东西”,其实也是“特性”的含义,比如一部电影的主演是XXX明星,那这部电影就是以“XXX明星”为核心来拍摄的。再如制造CPU的核心目的是用来计算和控制整个电脑的运行,那么CPU的特性(feature)就是“计算”和“控制”。“the era in which they were designed featured graphics hardware”的含义就是在“先前API被设计的时代是以图形硬件(的功能)为核心来设计API的”。而“that was mostly limited to configurable fixed functionality.”就是对这么作造成的后果的解释,“这么作的后果是API的功能受限于硬件的可配置的固定功能”。

背景解释

对于OpenGL来说,它提供的API都受限于GPU的固定流水线:顶点坐标变换->图元组合->光栅化->纹理处理->深度测试->像素点处理。这样就把图形编程的流程限定死了,不能充分利用现在CPU的并行能力。

第三句

Vulkan solves these problems by being designed from scratch for modern graphics architectures.

翻译:Vulkan解决这些问题的方法是针对现代图形架构进行了重新设计。

这句话很好理解,这里有个固定搭配“from scratch”意思是“重新/从零开始做某事”。

第四句

It reduces driver overhead by allowing programmers to clearly specify their intent using a more verbose API, and allows multiple threads to create and submit commands in parallel.

翻译:它(Vulkan)通过允许程序员使用冗长的API来明确表达自己的意图来减少了驱动的固定开销,并且允许创建多个线程来并行的向GPU发送命令。

这里要解释的一个词是“overhead”,查字典给出的意思是“开销”,通常指“固定开销”或“日常开销”。那么驱动的“花销”到底是什么呢。还是以OpenGL为例,程序员给OpenGL输入的只有顶点数据,这些数据包括顶点的位置、光照、纹理坐标等。当OpenGL将这些顶点组合成图元时,比如三角形,OpenGL会自动根据顶点数据进行插值计算来算出三角形面上每个像素的颜色和纹理坐标等信息。而在Vulkan里,Vulkan的驱动将减少此类固定的计算,而是将所有的计算步骤和方法都交给程序员,这样就减少了驱动要作的事情,也就是减少了驱动的开销。

为什么“overhead”有“固定开销”的意思。其实可以想象一下,将overhead想象成一条在驱动程序头上的一条线,这条线下面是驱动要做的事情。现在驱动要作的事减少了,这条头顶上的线也就下降了。再如我们每个月的固定花销,水电费、通信费、交通费、孩子的学费等都是在我们头顶上的一条固定的线,这就是我理解的“overhead”作为“固定开销”的含义。

,