Vulkan Cookbook 第七章 着色器

着色器

本章中,我们将介绍一下内容:

  • 将GLSL着色器转换为SPIR-V组件
  • 编写顶点着色器
  • 编写曲面细分控制着色器
  • 编写曲面细分评估着色器
  • 编写几何着色器
  • 编写片段着色器
  • 编写计算着色器
  • 编写顶点着色器,将顶点位置乘以投影矩阵
  • 在着色器中使用推式常量
  • 编写纹理顶点和片段着色器
  • 使用几何着色器显示多边形法线

介绍 

大多数现代图形硬件平台使用可编程管线渲染图像 3D图形数据(例如顶点和片段/像素)在称为阶段的一系列步骤中处理。 某些阶段始终执行相同的操作,我们只能在一定程度上进行配置。 但是,还有其他阶段需要编程。 控制这些阶段行为的小程序称为着色器。

在Vulkan中,有五个可编程图形管线阶段 - 顶点,曲面细分控制,评估,几何和片段。 我们还可以为计算管线编写计算着色器程序。 在核心Vulkan API中,我们使用SPIR-V编写的程序控制这些阶段。 它是一种中间语言,允许我们处理图形数据并对矢量,矩阵,图像,缓冲区或采样器执行数学计算。 这种语言的低级特性可以缩短编译时间。 但是,它也使编写着色器更难。 这就是Vulkan SDK包含一个名为glslangValidator的工具的原因。

glslangvalidator允许我们将用OpenGL着色语言(简称glsl)编写的着色程序转换为spir-v程序集。这样,我们可以用更方便的高级着色语言编写着色程序,也可以轻松地验证它们,然后转换为Vulkan API接受的表示,然后再将它们与Vulkan应用程序一起发布。

在本章中,我们将学习如何使用glsl编写着色器。我们将了解如何为所有可编程阶段实现着色,如何实现镶嵌或纹理,以及如何使用几何着色进行调试。我们还将了解如何使用与vulkan sdk一起分发的glslangvalidator程序将用glsl编写的着色器转换为spir-v程序集。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值