将GLSL着色器转换为SPIR-V组件

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

Vulkan API要求我们以SPIR-V组件的形式提供着色器。 它是一个二进制的中间表示,因此手动编写它是一项非常困难和繁琐的任务。 使用高级着色语言(如GLSL)编写着色器程序要容易得多,也更快捷。 之后我们只需要使用glslangValidator工具将它们转换为SPIR-V形式。

怎么做...

1.下载并安装Vulkan SDK(请参阅第1章,实例与设备 1 下载Vulkan SDK内容)。
2.打开命令提示符/终端并转到包含应转换的着色器文件的文件夹。
3.要将存储在<input>文件中的GLSL着色器转换为存储在<output>文件中的SPIR-V程序集,请运行以下命令:

glslangValidator -H -o <output> <input> > <output_txt>

译者注:上面这条命令不知道什么鬼可能作者写的有点问题要想将glsl生成为spir-v程序其使用:

glslangValidator -V <input filename>
或
glslangValidator -V <input filename> -o <output filename>例如:
glslangValidator -V vertexShaders.vert -o  vertexShaders.spv

这个怎么运作...

glslangValidator工具与Vulkan SDK一起分发。 它位于SDK的VulkanSDK/<version>/bin(对于64位版本)或VulkanSDK/ <version>/bin32(对于32位版本)子文件夹中。 它具有许多功能,但其主要功能之一是能够将GLSL着色器转换为可供Vulkan应用程序使用的SPIR-V程序集。

提示:将GLSL着色器转换为SPIR-V程序集的glslangValidator工具随Vulkan SDK一起分发。

该工具根据<input>文件的扩展名自动检测着色器阶段。 可用选项包括:
  ·vert为顶点着色器阶段
  ·tesc为曲面细分控制着色器阶段的
  ·tese为曲面细分评估着色器阶段
  ·geom为几何着色器阶段
  ·frag为片段着色器阶段
  ·comp用于计算着色器

该工具还可以以可读的文本形式显示SPIR-V组件。 执行命令后将此类表单存储在所选的<output_txt>文件中。

将GLSL着色器转换为SPIR-V后,可以将这些着色器加载到应用程序中并用于创建着色器模块(请参阅第8章“图形和计算管道”中的“创建着色器模块内容”)。

Vulkan Cookbook 第七章 1 将GLSL着色器转换为SPIR-V组件相关推荐

  1. 第四章:缓冲区、着色器、GLSL

    原文链接: http://www.rastertek.com/gl40tut04.html Tutorial 4: Buffers, Shaders, and GLSL 第四章:缓冲区.着色器.GLS ...

  2. HLSL CG 与glsl着色器编译及其原理

    导言:公司旧的渲染引擎用的结构无语了,要写一个渲染特效现在Unity 用shaderlab实现调试好,Unity插件导出GLTF格式(shader等已经包含在材质信息中),然后再导到自研引擎(用的OP ...

  3. GLSL着色器周记02

    GLSL着色器周记02 来源:网络    编辑:admin 这周学了好多.包括伪随机数.柏林噪声. 先说伪随机数.伪随机数我们用的是周期函数而不是那种由前一项乘一个超大的数取余数的方法.使用周期函数的 ...

  4. Learn OpenGL(七)——OpenGL中使用着色器的基本步骤及GLSL渲染简单示例

    OpenGL着色语言(OpenGL Shading Language,GLSL)是用来在OpenGL中着色编程的语言,是一种具有C/C++风格的高级过程语言,同样也以main函数开始,只不过执行过程是 ...

  5. openglshader实现虚拟场景_opengl – 如何使用GLSL着色器将径向模糊应用于整个场景?...

    我在GLSL中有一个径向模糊着色器,它采用纹理,对其进行径向模糊,并将结果呈现给屏幕.这个工作很好,到目前为止. 问题在于,它将径向模糊应用于场景中的第一个纹理.但是我实际上想做的就是将这个模糊应用于 ...

  6. 用vulkan写个引擎 (四)PBR着色器

    PBR全称(Physicallly-Based Rendering),基于物理的渲染.本文将提供一份GLSL实用型着色器.对于理论部分网络上已经有太多文章了. 仓库:https://bitbucket ...

  7. GLSL着色器的正确文件扩展名是什么?

    openGL系列文章目录 文章目录 openGL系列文章目录 前言 一.glslangValidator.exe工具使用 二.着色器程序后缀名 前言 我正在学习glsl着色,我遇到了不同的文件格式.我 ...

  8. [GLSL]着色器周记02——火焰特效

    这周学了好多.包括伪随机数.柏林噪声. 先说伪随机数.伪随机数我们用的是周期函数而不是那种由前一项乘一个超大的数取余数的方法.使用周期函数的好处就是可以让其随时间均匀变化.不过使用周期函数一定要保证周 ...

  9. Linux就该这么学---第七章(LVM逻辑卷管理器)

    第七章节-LVM技术 逻辑卷管理器(LVM,Logical Volume Manager) 1.物理卷(PV,physical Volumn) 2.卷组(VG,Volume Group) 3.逻辑卷( ...

  10. mysql第七章课后答案_mysql核心内幕第七章-查询解析与优化器

    查询优化器是指生成查询计划的子系统,该子系统通常完全处于服务器端,根据要参与连接(join)的表.数据读取方式(所殷读取或表扫描)和索引选择等因素制定查询计划.以基于开销的优化器为例,数据库查询优化器 ...

最新文章

  1. 用浏览器测试Get与Post Webservice,Post一直报405错误,而Get能够成功的原因与解决方法
  2. 初识vue+elementUi
  3. HailStone序列
  4. Subsequences (easy version)
  5. 线性表【项目 - 求集合并集C语言】
  6. 11、如何开启慢日志查询?
  7. ASP.NET获取真正的客户端IP地址的6种方法
  8. 转化率高的爆款文案都是如何写出来的?
  9. Python decorator
  10. 深入解析大数据虚拟化的架构(下)- 系统架构
  11. 基于STM32 HAL库硬件SPI的ST7789驱动(TFT-LCD 240*320)
  12. Xilinx FPGA配置clocking时钟动态相位输出
  13. 求大于200的最小质数
  14. vmware 常用知识
  15. Ceres Solver实现简单的光束法平差
  16. wordpress插件_2020年5个最佳WordPress电子商务插件比较
  17. 基于单幅图像的2D转3D算法研究(转)
  18. Ant工具 ant的安装与配置 ant作用
  19. 【嵌入式Linux应用开发】温湿度监控系统——绘制温湿度折线图
  20. 韩国KT/LG/SK机房服务器比较

热门文章

  1. WIN10下Apache启动失败
  2. 牛客网-调整数组顺序使奇数位于偶数前面
  3. W33 - 999、Web站点安全监控
  4. 绕口令 - 专项练习
  5. 【网页制作课作业】用HTML+CSS制作一个简单的学校网页(9页)
  6. Nginx网页优化(隐藏版本号,日志分割,更改进程数,网页压缩,防盗链详
  7. 教学中计算机软件的应用,计算机软件应用类课程教学方法
  8. C++出错_Heap corruption detected
  9. Google 正式开源 Paranoid
  10. iptables failed: iptables --wait -t nat -A DOCKER