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

网站禁用右键wordpress mycred汉化

网站禁用右键,wordpress mycred汉化,网站开发常见面试,网页设计作业 介绍家乡Vulkan 中的着色器代码必须在字节码中指定格式,而不是 GLSL 和 HLSL 等可读语法。顶点着色器与片元着色器,我这里使用的是GLSL语法格式。这个不做过多解释了。自己查阅GLSL相关资料。当你写好比如:shader.vert 与 shader.frag 着色器文件。用…

        Vulkan 中的着色器代码必须在字节码中指定格式,而不是 GLSL 和 HLSL 等可读语法。顶点着色器与片元着色器,我这里使用的是GLSL语法格式。这个不做过多解释了。自己查阅GLSL相关资料。当你写好比如:shader.vert 与 shader.frag 着色器文件。用Vulkan SDK bin目录下的编译工具转换成字节码格式。创建一个compile.bat脚本文件执行。如下绘制一个三角形硬编码的着色器文件。绘制三角形的着色器代码。

shader.vert

#version 450
layout(location = 0) out vec3 fragColor;
vec2 positions[3] = vec2[](vec2(0.0, -0.5),vec2(0.5, 0.5),vec2(-0.5, 0.5)
);
vec3 colors[3] = vec3[](vec3(1.0, 0.0, 0.0),vec3(0.0, 1.0, 0.0),vec3(0.0, 0.0, 1.0)
);
void main() {gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0);fragColor = colors[gl_VertexIndex];
}

shader.frag


#version 450
layout(location = 0) in vec3 fragColor;
layout(location = 0) out vec4 outColor;
void main() {outColor = vec4(fragColor, 1.0);
}

编译字节码执行脚本

C:/VulkanSDK/x.x.x.x/Bin/glslc.exe shader.vert -o vert.spv
C:/VulkanSDK/x.x.x.x/Bin/glslc.exe shader.frag -o frag.spv
pause

创建shader着色器 就是两块内存设置顶点着色器与片元着色器字节码数据

VkShaderModule CVulkanApp::createShaderModule(const std::string strShader)
{VkShaderModuleCreateInfo createInfo{};createInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;createInfo.codeSize = strShader.size();createInfo.pCode = reinterpret_cast<const uint32_t*>(strShader.data());VkShaderModule shaderModule;if (vkCreateShaderModule(logicDevice_, &createInfo, nullptr, &shaderModule) != VK_SUCCESS){throw std::runtime_error("failed to create shader module!!!");}return shaderModule;
}

渲染管道创建的时候要把着色器创建对象赋值给管道,通过设置VkPipelineShaderStageCreateInfo分别按照不同类型设置着色器。

CShader shader = CShader("shaders/test.vs.spv", "shaders/test.fs.spv");VkShaderModule vsModule = createShaderModule(shader.GetVS());VkShaderModule fsModule = createShaderModule(shader.GetFS());VkPipelineShaderStageCreateInfo vsShaderStageInfo{};vsShaderStageInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;vsShaderStageInfo.stage = VK_SHADER_STAGE_VERTEX_BIT;vsShaderStageInfo.module = vsModule;vsShaderStageInfo.pName = "main";vsShaderStageInfo.flags = 0;vsShaderStageInfo.pNext = nullptr;vsShaderStageInfo.pSpecializationInfo = nullptr;VkPipelineShaderStageCreateInfo fsShaderStageInfo{};fsShaderStageInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;fsShaderStageInfo.stage = VK_SHADER_STAGE_FRAGMENT_BIT;fsShaderStageInfo.module = fsModule;fsShaderStageInfo.pName = "main";fsShaderStageInfo.flags = 0;fsShaderStageInfo.pNext = nullptr;fsShaderStageInfo.pSpecializationInfo = nullptr;

最后把fsShaderStageInfo填充给图形管道。

销毁着色器

 vkDestroyShaderModule(logicDevice_, vsModule, nullptr);vkDestroyShaderModule(logicDevice_, fsModule, nullptr);

http://www.dtcms.com/a/532343.html

相关文章:

  • 音视频处理(二): 一文讲清楚音频处理流程:采样、压缩和播放
  • 基于单片机的篮球比赛计时与比分控制系统设计
  • C++容器set
  • 网站建设主机耗电量怎么写代码自己制作网站
  • 超越低功耗:TMS320C6000 DSP的能效架构设计与IoT节点部署实践
  • 西安网站开发工资首都之窗门户网站首页
  • 中药电商平台是什么?主要具有哪些创新特征与应用场景?
  • Python模块(Module)详解:从基础使用到工程化实践
  • DTD 属性详解
  • 随身WiFi助手
  • 安卓网络请求详解:Retrofit + OkHttp 高效通信方案
  • centos建设网站营销系统平台
  • 华为OD机试双机位A卷 - 统计差异值大于相似值二元组个数 (C++ Python JAVA JS GO)
  • bug:realsense-viewer 找不到已识别的设备
  • Mac安装VisualVM 2.2启动闪退
  • 在macOS上搭建C#集成开发环境指南
  • 郑州市城乡建设规划网站苏州园区两学一做网站
  • 音乐网站 模板手游app平台排行榜
  • vue通信加密解密完整方案实现
  • 大模型模板输出与优化技术指南
  • 2026蓝桥杯
  • 让我用一个非常通俗易懂的方式来解
  • 搞一个卖东西的网站怎么做婚庆网站开发计划书
  • 迅雷之家是迅雷做的网站吗学校网站建设的意义和应用
  • 织梦建站教程全集房山营销型网站制作开发
  • 非齐次方程解的结构与几何意义的探讨
  • 【YashanDB】单机版数据库升级测试
  • 张家口百度免费做网站可以做家装设计的网站
  • F-INR: Functional Tensor Decomposition for Implicit Neural Representations
  • 电容的串联、并联