HLSL

Hlsl是编写unity着色器的“丰富多彩”部分的语言。这些部分包含自定义逻辑,并最终决定在屏幕上的何处绘制内容。这是Microsoft与其Direct3D API配合使用以编写gpu程序的语言。严格来讲,大多数Unity着色器被标记为用CG编写,而CG是Graphs的缩写,但是CG与hlsl共享了大多数语法和功能,并于2012年弃用。从理论上讲,Unity还支持编写为OpenGL设计的语言glsl shader,但是由于有更多hlsl的示例。最终这些语言将转换为我们要导出到的平台所需要的任何语言,无论如何我们都会坚持使用hlsl。

对于在Unity中学习着色器,我建议您不要在此处开始编程。着色器调试起来很棘手,它们可以做的事情非常有限,而且在许多情况下,您必须朝与大多数编程上下文稍有不同的方向进行操作。因此,我假设您知道类型,变量,类,方法,循环,if语句等基础知识。

Builtin Types
下面是一些我们在写shader时候用到的HLSL的内置类型

标量值
在unity HLSL中数值类型不同的是,对于浮点数,为fixed half和float;对于整数,则为int和uint。在移动GPU上,fixed表示的是-2至2之间的数字,精度为1/256,half是16位浮点数,而float32位浮点数。 在台式机GPU上,所有这些值都是32位浮点数,因此你会看到我经常在各处使用float,但这是以后进行优化的一个不错的工具。整数是只能包含整数的数字,int可以包含正值和负值,uint只能包含负值,这可能会带来一点性能上的好处。此外,还有一个简单数据类型bool,它简单地保存值true或false,因此我们可

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值