这个图:

vulkan管线学习7_vulkan

虽然渲染管线还是这么个样子,但是。。。

这个OpenGL的API:glEnable(GL_DEPTH_TEST) 好使吧

Vulkan里面写很多代码才能控制这个东西,以及这个graphic pipeline要手动一步步建立

vulkan管线学习7_字节码_02

教程有挺长的四部分 构造了这么多参数。。

vulkan管线学习7_字节码_03

最后才create出来

vulkan管线学习7_字节码_04

shader部分

Vulkan需要把shader编译成字节码,你可以用hlsl glsl编译出来只要这边用着不报错都行。

这块和OpenGL差不多读进来 create一下 

vulkan管线学习7_字节码_05

塞进shader stage,

vulkan管线学习7_ci_06

,顶点和片源叫两个stage

fix function

vulkan管线学习7_渲染管线_07

这是第一个结构体,因为这个也有很多内容,于是教程后面再专门细讲。

vulkan管线学习7_vulkan_08

第二部分是输入组件,就是ogl绘制drawarray那里设置那个triangle啊 point line什么的

vulkan管线学习7_字节码_09

vulkan管线学习7_ci_10

vulkan管线学习7_vulkan_11

然后设置viewport,上面那个是视口的大小,后面这个算可见区域吧,不在scissors范围内的像素就discard。

他俩组装出视口相关结构体参数

vulkan管线学习7_渲染管线_12

想不到吧 光栅化也要手动

vulkan管线学习7_vulkan_13

踢掉near far之外的内容

vulkan管线学习7_vulkan_14

这是。。是用来提升效率的吗?有待学习

vulkan管线学习7_字节码_15

这是填充方式,不过,前面好像读数据那。。有指定数据是什么格式。。好像再指定一下有点奇怪。有待学习

vulkan管线学习7_ci_16

线的话指定宽度,这个好像要看硬件????

vulkan管线学习7_vulkan_17

这个是剔除正面还是背面

vulkan管线学习7_字节码_18

这个shadowMap我倒是见过加bias,这好像放在这里了。

vulkan管线学习7_渲染管线_19

多重采样抗锯齿,硬件特性,教程说后面讲

vulkan管线学习7_字节码_20

深度和模板设置也是后面讲。

vulkan管线学习7_字节码_21

vulkan管线学习7_渲染管线_22

这个眼色混合方程和OpenGL差不多,就是src rgb a分开成系数 dst rgb a分开乘系数然后加减或什么混合

vulkan管线学习7_渲染管线_23

这里说也是后面讲,应该和UBO有关吧 下面的pipeline layout也是

vulkan管线学习7_字节码_24


这个pipeline就已经这么长,所有东西都要人工指定,还有个renderpass。