从0开始的技术美术之路(八)HLSL常用函数

本文介绍了CG、GLSL和HLSL的基础知识,重点讲解了HLSL中的常用函数,包括数学运算、幂指对函数、三角与双曲函数、数据范围、类型判断、向量矩阵操作、纹理查找等,并提到了额外课题如ddx和ddy函数的应用。适合初学者了解和实验GPU编程。
摘要由CSDN通过智能技术生成

本篇参考B站视频
“技术美术百人计划”·霜狼_may
《Shader入门精要》·冯乐乐女神著;

本篇主要用于自我复习,如有疑问或发现有什么错误,请多指教~


一.CG/HLSL/GLSL

1.CG

Unity shader的入门时,不管是《入门精要》还是庄老师的课,都是从CG语言开始学习的。它是由NVIDIA公司所开发的,基于C语言同时被OpenGL和Direct3D所支持的开发语言,其语法和HLSL类似。在《GPU编程与CG语言之阳春白雪》中虽然曾认为CG会越来越受欢迎,但遗憾的是,NVIDIA还是抛弃了CG,目前CG的最终版本是3.1。虽然在一些简单的shader编写上还是可以使用,但是在新的硬件环境下还是可能不支持,且对一些新功能的支持较差。

2.GLSL
GLSL是基于OpenGL的接口,其语法体系自成一家。闫老师的Games课程,以及学校的图形学教学中,一般还是使用GLSL。但是它不支持DirectX,就不得不放弃仅支持DirectX的Xbox等平台。

3.HLSL
HLSL是由微软开发的,在Windows平台上一家独大,多用于游戏领域。语法类似CG语言,在Unity中CG和HLSL等价。


二.HLSL常用函数

分为以下几类:
1.基本数学运算

函数 说明
max(a,b) 返回较大的
min(a,b) 返回较小的
mul(a,b) 两变量相乘,用于矩阵运算
abs(a) 返回a的 绝对值
round(a) 返回与a最接近的整数(取整)
sqrt(a) 返回a的平方根
rsqrt(a) 返回a的平方根的倒数
degress(a) 弧度值转换为角度值
redians(a) 角度值转换为弧度值
noise(a) 噪声函数,在每个像素点上输出0/1可形成噪波图

可以试验数学函数效果的网站:https://graphtoy.com/

2.幂指对函数

函数 说明
pow(a,b) a的b次幂,ab
exp(a) 返回以e为底的指数函数,ea
exp2(value a) 返回以2为底,a为指数的幂2a
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值