基本数学运算

max(a,b)返回较大的那个
min(a,b)返回较小的那个
mul(a,b)两变量相乘,常用于矩阵运算
abs(a)返回a的绝对值
round(x)返回与x最近的整数
sqrt(x)返回x的平方根
rsqrt(x)返回x的平方根的倒数
degrees(x)将弧度转换成角度
radians(x)将角度转换成弧度
noise(x)噪声函数

幂指对函数

pow(x,y) x的y次幂(x和y均可为自变量或具体的数)
exp(x)返回以e为底的指数函数
exp2(value x)返回以2为底,x为指数的幂
ldexp(x,exp)返回x与2的exp次方的乘积
log(x)返回指定值的以e为底的对数
log10(x)求以10为底的对数
log2(x)求以2为底的对数
frexp(x,out exp)把浮点数X分解成尾数和指数,返回值是尾数,exp参数返回的值是指数(如果x参数为0,则此函数的尾数和指数均返回0)

三角函数与双曲函数

sin(x)、cos(x)、 tan(x) 
sincos(x,out S ,out c)返回x的正弦值和余弦值
tan(y,x)返回y/x的正切值
asin(x)返回输入值的反正弦值
acos(x)返回输入值反余弦值
atan(x)返回输入值的反正切值
atan2(y,x)返回y/x的反正切值
sinh(x)返回x的双曲正弦值,即(ex-e-x)/2
cosh(x)返回x的双曲余弦值,即(ex+e-x)/2
tanh(x)返回x的双曲正切值,即(ex-e-x)/(ex+e-x)

数据范围类

ceil(x)返回> =x的最小整数
floor(x)返回< =x的最大整数
step(x,y)x <=y为1,否则为0
saturate(x)返回将x钳制到0和1之间的值
clamp(x,min,max)把x限制在[min, max]范围内,小于返回min,大于返回max 
fmod(x;y)返回x对y取余的余数
frac(x)返回x的小数部分
modf(x,out ip)将值x分为小数和整数部分(各部分符号与x相同),ip返回整数部分,整体返回小数部分
lerp(x,y,s)按照s在x到y,之间插值,即返回x*(1-s)+y*s 
smoothstep(min,max,x)如果x在[min, max]范围内, 则返回介于0和1之间的平滑Herrmite插值,使用smoothstep在两个值之间创建平滑过渡。例如平滑地混合两种颜色

类型判断类

all(x)确定指定量的所有分量是否均为非零,均非零则返回true,否则返回false(处理由浮点型、整型、布尔型数据定义的标量、向量或者矩阵)
clip(x)如果输入值小于零,则丢弃当前像素常用于判定范围(不仅仅针对0,返回值为void),常用于测试alpha,如果每个分量代表到平面的距离,还可以用来模拟剪切平面
sign(x)返回x的正负性如果x小于零返回-1,如果x等于零返回0,如果x大于零返回1
isinf(x)如果x参数为+ INF或INF(无穷+无穷仍无穷,0x3f3f3f3f), 返回true,否则返回False 
isfinite(x)判断x参数是有限,即有界的,与isinf(x)相反相反
isnan(x)如果x参数为NAN(非数字),返回true,否则返回false

向量与矩阵类

length(v)返回向量的长度
normalize(V)向量归一化,x/length(x) 方向向量归一 化
distance(a,b)返回两个向量之间的距离,按理说应该为0,此处表示为根号下各分量之差的平方和
dot(a,b)返回a和b这两个向量的点积(又叫标积/内积/数量积) (a在b 上的投影长,ab=lal|b|cosθ)
cross(a,b)返回a和b这两个向量的叉积(又叫矢积/外积/向量积)(返回值是个向量,而且与a、b都垂直,大小上|axb|=|a|*|b|* sinθ )
determinant(m)返回矩阵m按行列式方式计算的值
transpose(m)返回矩阵m的转置矩阵

光线运算类

reflect(i,n)以i为入射向量n为法线方向的反射光
refract(i,n,ri)以i为入射向量n为法线方向,i为折射率的折射光
lit(n_ dot_ l,n_ dot_h, m)输入标量(normal,light,半角向量h,镜面反射系数m) ,返回光照向量(环境光,漫反射光,镜面高光反射,1)
faceforward(n,i,ng)得到面向视图方向的曲面法向量,输入输出为同元向量,返回-n*sign(dot(j,ng)) (normal,light,normal)

2D纹理查找

MipMap:MipMap是三维计算机图形贴图渲染中有常用的技术,为加快渲染进度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为MipMap。例如当你导入一张128x128的纹理后,计算机会自动生成以2的次幂为单位的所有规格小于128x128的贴图:64x64、32x32、16x16等。

缺点:会占用内存,因为mipmap会根据摄像机远近不同而生成对应的八个贴图,所以必然占内存!

优点:会优化显存带宽,用来减少渲染,因为可以根据实际情况,会选择适合的贴图来渲染,距离摄像机越远,显示的贴图像素越低,反之,像素越高!

tex2D(s,t)普通二维纹理查找 返回纹理采样器s在t(x,y)位置的颜色
tex2D(s,t,ddx,ddy)使用微分查询二维纹理t和ddx和ddy均为vector 
tex2Dlod(s, t) 使用LOD查找纹理s在t.w位置的color4
tex2Dbias(s, t)将t. w决定的某个MIP层偏置后的维纹理查找
tex2Dgrad(s,t,ddx,ddy)使用微分并指定MIP层的二维纹理查找
tex2Dproj(s, t)把纹理当做一-张幻灯片投影到场景中, 先使用投影纹理技术需要计算出投影纹理坐标t(坐标t.w除以透视值),然后使用投影纹理坐标进行查询

3D纹理查找

tex3D(s, t)普通三维纹理查找返回纹理采样器s在vector t位置的颜色
tex3D(s,t,ddx,ddy)使用微分查询三维纹理t和ddxy均为vector
tex3Dlod(s, t) 使用LOD查找纹理s在t.w位置的color4
tex3Dbias(s, t)将t.w决定的某个MIP层偏置后的三维纹理查找
tex3Dgrad(s,t,ddx,ddy)使用微分并指定MIP层的三维纹理查找
tex3Dproj(s, t)把纹理当做一张幻灯 片投影到场景中,先使用投影纹理技术需要计算出投影纹理坐标t(坐标t.w除以透视值,然后使用投影纹理坐标进行查询

立体纹理查找

texCUBE(s,t)返回纹理采样器s在vector t位置的颜色
texCUBE(s,t,ddx,ddy)使用微分查询立方体维纹理t和ddxy均为vector
texCUBEDload(s,t)使用LOD查找纹理s在t.w位置的color4
texCUBEbias(s,t)将t.w决定的某个MIP层偏置后的立方体纹理查找
texCUBEgrad(s,t,ddx,ddy)使用微分并指定MIP层的立方体纹理查找
texCUBEproj(s,t)使用投影方式的立方体纹理查找

HLSL常用函数介绍相关推荐

  1. 图形 2.3 HLSL常用函数介绍

    一.基本数学运算 max(a,b) 返回较大的 min(a,b) 返回较小的 mul(a,b) 两向量相乘,常用于矩阵运算 abs(a) 返回a的绝对值 round(x) 返回与x最近的整数 sqrt ...

  2. 【技术美术图形部分】2.3 HLSL常用函数

    --介绍HLSL常用函数,API的使用. 想要成为合格的技术美术,一定要具备Shader开发能力,满足性能的需求,无论是技术美术的哪一个方向,HLSL都是需要点满的技能点. 参考 微软官方HLSL库: ...

  3. TF:tensorflow框架中常用函数介绍—tf.Variable()和tf.get_variable()用法及其区别

    TF:tensorflow框架中常用函数介绍-tf.Variable()和tf.get_variable()用法及其区别 目录 tensorflow框架 tensorflow.Variable()函数 ...

  4. php spl函数,PHP SPL标准库中的常用函数介绍

    这篇文章主要介绍了PHP SPL标准库中的常用函数介绍,本文着重讲解了spl_autoload_extensions().spl_autoload_register().spl_autoload()三 ...

  5. R语言使用psych包进行主成分分析PCA和探索性因子分析EFA的常用函数介绍:principal、fa、fa.parallel、factor.plot、fa.diagram、scree

    R语言使用psych包进行主成分分析PCA和探索性因子分析EFA的常用函数介绍:principal.fa.fa.parallel.factor.plot.fa.diagram.scree 目录

  6. oracle常用函数number,Oracle 常用函数介绍

    Oracle常用函数介绍,包括日期函数.类型转换函数 常用日期函数 1.add_months()函数可以得到指定日期之前或之后n个月的日期 date_value:=add_months(date_va ...

  7. Pandas入门之常用函数介绍

    一.Pandas简介 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具. pan ...

  8. (转)postgis常用函数介绍(一)

    http://blog.csdn.net/gisshixisheng/article/details/47701237 概述: 在进行地理信息系统开发的过程中,常用的空间数据库有esri的sde,po ...

  9. mysql ceil,MySQL常用函数介绍

    前言: MySQL数据库中提供了很丰富的函数,比如我们常用的聚合函数,日期及字符串处理函数等.SELECT语句及其条件表达式都可以使用这些函数,函数可以帮助用户更加方便的处理表中的数据,使MySQL数 ...

最新文章

  1. 一段使用cURL实现的网页抓取源码,支持POST,Cookies,代理,自定义头.
  2. Nginx源码安装及应用
  3. 成为指标的“绝地武士”:tableau创建指标的 10 个技巧和窍门
  4. 项目: 图书管理系统 【C++ / C】
  5. 关于 SAP Spartacus 服务器端渲染 SSR 无法使用窗口宽度以进行自适应设计的问题
  6. 基于ABP落地领域驱动设计-04.领域服务和应用服务的最佳实践和原则
  7. 阿里巴巴研究员刘国华:阿里巴巴智能运维体系建设
  8. Linux下Gogs二进制安装配置
  9. 运放参数的详细解释和分析-part24, 输出阻抗Ro和Rout
  10. 消除ImageButton的灰色背景图片
  11. @order 注解用法
  12. [Codeforces Round #428 DIV2E (CF839E)] Mother of Dragons
  13. 本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列
  14. 小程序商城和社区团购小程序,商家应该选哪个?
  15. 上亿会员 为b站会员购众筹项目打下消费基础
  16. 例如筋斗云的效果,但不通过offset定位的flag标记
  17. python爬虫入门——13行代码制作英语翻译器教程,小白入门一点通
  18. 邮件服务器怎么填,如何配置邮箱客户端?
  19. c++ 关于heap的STL用法
  20. 微信营销软件可靠吗?

热门文章

  1. ssh断开连接后如何保持远程 SSH 会话运行
  2. fisheyedemo问题
  3. Laya Sprite
  4. 【声纹识别】适量量化(VQ)说话人门禁识别【含GUI Matlab源码 2608期】
  5. 利用Photoshop快速/批量清除纯色背景
  6. [图形学基础]关于齐次坐标的理解
  7. R语言与数据分析实战11-数据的删除
  8. 学习日志1-Java记事本输出HelloWorld
  9. Java异常机制的最佳实践
  10. KITTI数据集(概念版)