Vulkan Cookbook 第八章 4 指定管线输入程序集状态

指定管道输入程序集状态

译者注:示例代码点击此处

制几何图形(3D模型)涉及指定从提供的顶点形成的图元的类型。这是通过输入程序集状态完成的。

怎么做...

1.创建名为input_assembly_state_create_info的VkPipelineInputAssemblyStateCreateInfo类型变量。 使用以下值初始化其成员:
    ·sType为VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
    ·pNext为nullptr
    ·flags为0
    ·topology为从顶点形成的所选基元类型(点列表(point list),线列表(line list),线条(line strip),三角形列表(triangle list),三角形条带(triangle strip),三角形扇形(triangle fan),具有相邻性的线条列表(line list with adjacency),具有相邻性的线条条带(line strip with adjacency),具有相邻性的三角形列表(triangle list with adjacency),具有相邻性的三角形条带(triangle strip with adjacency),或者patch lis。
2.对于primitiveRestartEnable成员,在绘制使用顶点索引的命令的情况下,指定特殊索引值是否应重新启动基元(VK_TRUE,不能用于列表基元)或是否应禁用基元重启(VK_FALSE)。

这个怎么运作...

通过输入装配状态,我们定义从绘制的顶点形成什么类型的多边形。 最常用的基元是三角形条或列表(triangle strips or lists),但使用的拓扑结构取决于我们想要实现的结果。

提示:创建图形管道需要输入装配状态。

在选择如何组装顶点时,我们只需要记住一些要求:
    ·我们不能使用带有基元重启选项的列表(list)基元。
    ·具有邻接(adjacency)的基元只能与几何着色器一起使用。 为使其正常工作,必须在创建逻辑设备期间启用geometryShader功能。
    ·当我们想要使用曲面细分着色器时,我们只能使用patch基元。 此外,我们还需要记住,在创建逻辑设备期间必须启用tessellationShader功能。

以下是初始化VkPipelineInputAssemblyStateCreateInfo类型的变量的源代码示例:

input_assembly_state_create_info = { 
  VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, 
  nullptr, 
  0, 
  topology, 
  primitive_restart_enable 
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值