当前位置: 首页 > news >正文

自主式响应网站企业宣传视频制作免费模板

自主式响应网站,企业宣传视频制作免费模板,网站维护中 源码,软件开发工具推荐目录 先叨叨Git信息关键代码TestPipeline::Initialize() 编译运行 先叨叨 到上篇为止已经创建了FrameBuffer和RenderPass。建立Pipeline的先决条件已经具备。本篇就来创建Pipeline。 Git信息 repository: https://gitee.com/J8_series/easy-car-uitag: 10-CreatePipelineurl… 目录 先叨叨Git信息关键代码TestPipeline::Initialize() 编译运行 先叨叨 到上篇为止已经创建了FrameBuffer和RenderPass。建立Pipeline的先决条件已经具备。本篇就来创建Pipeline。 Git信息 repository: https://gitee.com/J8_series/easy-car-uitag: 10-CreatePipelineurl: https://gitee.com/J8_series/easy-car-ui/tree/10-CreatePipeline 关键代码 TestPipeline::Initialize() 本方法很长对照【Vulkan入门】06-Pipeline介绍看会清晰一点。 通过shaderStages为Pipeline指定Shader程序VIEWPORT决定了Vulkan渲染图片的大小SCISSOR决定了Vulkan渲染后对图片的裁剪。我们希望这两个值随窗口大小改变而改变因此我们用dynamicStates告诉Vulkan这两个值在渲染时动态指定。通过vertexInputInfo给Pipeline提供顶点信息但目前我们还不需要任何顶点信息。通过inputAssembly告诉Pipeline我们的顶点是想画什么例子中我们需要Pipeline画三角形通过rasterizer告诉Pipeline如何光栅化通过multisampling告诉Pipeline如何采样通过colorBlending告诉Pipeline如何叠加同一个像素的多个颜色通过pipelineLayoutInfo告诉Pipeline全局变量目前我们不需要任何全局变量 void TestPipeline::Initialize(const std::string vertexShaderFile,const std::string fragmentShaderFile,const VkDevice device,uint32_t width,uint32_t height,uint32_t memroyTypeIndex){m_vertexShaderFile vertexShaderFile;m_fragmentShaderFile fragmentShaderFile;m_device device;m_width width;m_height height;m_memroyTypeIndex memroyTypeIndex;CreateRenderPass();CreateFramebuffers();std::vectorchar vertShaderCode ReadShader(m_vertexShaderFile);std::vectorchar fragShaderCode ReadShader(m_fragmentShaderFile);VkShaderModule vertShaderModule CreateShaderModule(vertShaderCode);VkShaderModule fragShaderModule CreateShaderModule(fragShaderCode);//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPipelineShaderStageCreateInfoVkPipelineShaderStageCreateInfo vertShaderStageInfo{};vertShaderStageInfo.sType VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;vertShaderStageInfo.stage VK_SHADER_STAGE_VERTEX_BIT;vertShaderStageInfo.module vertShaderModule;vertShaderStageInfo.pName main;VkPipelineShaderStageCreateInfo fragShaderStageInfo{};fragShaderStageInfo.sType VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;fragShaderStageInfo.stage VK_SHADER_STAGE_FRAGMENT_BIT;fragShaderStageInfo.module fragShaderModule;fragShaderStageInfo.pName main;VkPipelineShaderStageCreateInfo shaderStages[] {vertShaderStageInfo, fragShaderStageInfo};std::vectorVkDynamicState dynamicStates {VK_DYNAMIC_STATE_VIEWPORT,VK_DYNAMIC_STATE_SCISSOR};//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPipelineDynamicStateCreateInfoVkPipelineDynamicStateCreateInfo dynamicState{};dynamicState.sType VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;dynamicState.dynamicStateCount static_castuint32_t(dynamicStates.size());dynamicState.pDynamicStates dynamicStates.data();//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPipelineVertexInputStateCreateInfoVkPipelineVertexInputStateCreateInfo vertexInputInfo{};vertexInputInfo.sType VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;vertexInputInfo.vertexBindingDescriptionCount 0;vertexInputInfo.vertexAttributeDescriptionCount 0;//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPipelineInputAssemblyStateCreateInfoVkPipelineInputAssemblyStateCreateInfo inputAssembly{};inputAssembly.sType VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;inputAssembly.topology VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;inputAssembly.primitiveRestartEnable VK_FALSE;//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPipelineViewportStateCreateInfoVkPipelineViewportStateCreateInfo viewportState{};viewportState.sType VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO;viewportState.viewportCount 1;viewportState.scissorCount 1;//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPipelineRasterizationStateCreateInfoVkPipelineRasterizationStateCreateInfo rasterizer{};rasterizer.sType VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;rasterizer.depthClampEnable VK_FALSE;rasterizer.rasterizerDiscardEnable VK_FALSE;rasterizer.polygonMode VK_POLYGON_MODE_FILL;rasterizer.lineWidth 1.0f;rasterizer.cullMode VK_CULL_MODE_BACK_BIT;rasterizer.frontFace VK_FRONT_FACE_CLOCKWISE;rasterizer.depthBiasEnable VK_FALSE;//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPipelineMultisampleStateCreateInfoVkPipelineMultisampleStateCreateInfo multisampling{};multisampling.sType VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;multisampling.sampleShadingEnable VK_FALSE;multisampling.rasterizationSamples VK_SAMPLE_COUNT_1_BIT;//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPipelineColorBlendAttachmentStateVkPipelineColorBlendAttachmentState colorBlendAttachment{};colorBlendAttachment.colorWriteMask VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT;colorBlendAttachment.blendEnable VK_FALSE;//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPipelineColorBlendStateCreateInfoVkPipelineColorBlendStateCreateInfo colorBlending{};colorBlending.sType VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;colorBlending.logicOpEnable VK_FALSE;colorBlending.logicOp VK_LOGIC_OP_COPY;colorBlending.attachmentCount 1;colorBlending.pAttachments colorBlendAttachment;colorBlending.blendConstants[0] 0.0f;colorBlending.blendConstants[1] 0.0f;colorBlending.blendConstants[2] 0.0f;colorBlending.blendConstants[3] 0.0f;//https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkPipelineLayoutCreateInfoVkPipelineLayoutCreateInfo pipelineLayoutInfo{};pipelineLayoutInfo.sType VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;pipelineLayoutInfo.setLayoutCount 0;pipelineLayoutInfo.pushConstantRangeCount 0;if (vkCreatePipelineLayout(m_device, pipelineLayoutInfo, nullptr, m_pipelineLayout) ! VK_SUCCESS){throw std::runtime_error(To create pipeline layout is failed);}VkGraphicsPipelineCreateInfo pipelineInfo{};pipelineInfo.sType VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;pipelineInfo.stageCount 2;pipelineInfo.pStages shaderStages;pipelineInfo.pVertexInputState vertexInputInfo;pipelineInfo.pInputAssemblyState inputAssembly;pipelineInfo.pViewportState viewportState;pipelineInfo.pRasterizationState rasterizer;pipelineInfo.pMultisampleState multisampling;pipelineInfo.pColorBlendState colorBlending;pipelineInfo.pDynamicState dynamicState;pipelineInfo.layout m_pipelineLayout;pipelineInfo.renderPass m_renderPass;pipelineInfo.subpass 0;pipelineInfo.basePipelineHandle VK_NULL_HANDLE;if (vkCreateGraphicsPipelines(m_device, VK_NULL_HANDLE, 1, pipelineInfo, nullptr, m_graphicsPipeline) ! VK_SUCCESS) {throw std::runtime_error(To create graphics pipeline is failed!);}vkDestroyShaderModule(m_device, fragShaderModule, nullptr);vkDestroyShaderModule(m_device, vertShaderModule, nullptr);}编译运行 没有出现错误就是最好的现象
http://www.eeditor.cn/news/121389/

相关文章:

  • 没有数据怎么做网站lol网站建设
  • 创建一个自己的网站做网站怎么自定义背景图片
  • 制作网站的公司怎么样模板网站建设的公司
  • 重庆需要网站建设关键词排名查询网站
  • 做综合类网站好不好纺织网站制作123纺织网
  • 网上商城网站怎么做封面制作网站
  • 宁波市北仑区建设局网站洛阳seo
  • wap网站 html5微官网和公众号的区别
  • wordpress 网站标题北京室内设计公司
  • 建设个网站需要什么做网站如何组建域名
  • 宁波网站建设官网电子商务网站建设与管理的考试
  • 外贸怎么用网站开发新客户孟村住房建设局网站
  • 做维修注册网站酒店预订网站建设
  • 网站添加视频建筑网格布搭接
  • 长春企业网站如何建设重庆网站建设公司是什么
  • 嘉兴做网站赚钱么电商网站设计风格和内容
  • 张家界网站建设公司广州十大电商公司
  • 济南网站建设cn un上海网站建设方案策划
  • 无锡seo网站管理小学托管班
  • 如何部署thinkphp网站营销战略咨询公司
  • 做网站拍幕布照是什么意思互联网营销师题库及答案
  • 淘客网站app建设天津公共资源交易平台官网
  • 下载可以做动漫的我的世界视频网站做lgoo的网站一般有哪些
  • 做外贸一般用哪些网站wordpress 4.9.8中文
  • 网站无法排版怎样做下载网站
  • 个体工商户经营范围网站开发wordpress 关键字 插件
  • 电影网站怎么做的涿州吧
  • 黑龙江 网站建设深圳市宝安区松岗街道
  • 东城网站开发公司学习做网站只学过c
  • 建网站浩森宇特长安商城网站建设