位置: 编程技术 - 正文

Unity Shader 常用函数列表(unity shader saturate)

编辑:rootadmin
CG标准函数库 和C的标准函数库类&#;,Cg提供了一系列内建的标准函数。这些函数用于执行数学上的通用计算或通用算法(纹理映射等),例如,需要求取入射光线的反射光线方向向量可以使用标准函数库中的reflect函数,求取折射光线方向向量可以使用refract 函数,做矩阵乘法运算时可以使用mul函数。 有些函数直接和 GPU 指令相对应,所以执行效率非常高。绝大部分标准函数都被重载过,用于支持不同长度的数组和向量作为输入参数。 Cg标准函数会随着未来GPU硬件的发展而不断优化,所以基于标准函数库写的程序是可以用在以后的GPU硬件上的。 Cg标准函数库主要分为五个部分: 数学函数(Mathematical Functions); 几何函数(Geometric Functions); 纹理映射函数(Texture Map Functions) 偏导数函数(Derivative Functions); 调试函数(Debugging Function)数学函数(Mathematical Functions) 数学函数用于执行数学上常用计算,包括:三角函数、幂函数、园函数、向量和矩阵的操作函数。这些函数都被重载,以支持标量数据和不同长度的向量作为输入参数。 函数 功能abs(x) 返回输入参数的绝对&#;acos(x) 反余切函数,输入参数范围为[-1,1],返回[0,π]区间的角度&#;all(x) 如果输入参数均不为0,则返回ture;否则返回flase。&&运算any(x) 输入参数只要有其中一个不为0,则返回true。||运算asin(x) 反正弦函数,输入参数取&#;区间为[−1,1],返回角度&#;范围为[−π/2 ,π/2 ] atan(x) 反正切函数,返回角度&#;范围为⎡−π/2 ,π/2⎤atan2(y,x) 计算y/x的反正切&#;。实际上和atan(x)函数功能完全一样,至少输入参数不同。atan(x) = atan2(x, float(1))ceil(x) 对输入参数向上取整。例如:ceil(float(1.3)),其返回&#;为2.0clamp(x,a,b) 如果x&#;小于 a,则返回a;如果x &#;大于 b,返回b;否则,返回xcos(x) 返回弧度 x的余弦&#;。返回&#;范围为[−1,1]osh(x) 双曲余弦(hyperbolic cosine)函数,计算x的双曲余弦&#;cross(A,B) 返回两个三元向量的叉积(cross product)。注意,输入参数必须是三元向量degrees(x) 输入参数为弧度&#;(radians),函数将其转换为角度&#;(degrees)determinant(m) 计算矩阵的行列式因子dot(A,B) 返回A和 B的点积(dot product)。参数A和 B 可以是标量,也可以是向量(输入参数方面,点 积和叉积函数有很大不同)exp(x) 计算ex的&#;,e= 2.exp2(x) 计算2x的&#;floor(x) 对输入参数向下取整。例如floor(float(1.3))返回的&#;为1.0;但是floor(float(-1.3))返回的&#;为-2.0。fmod(x,y) 返回x/y的余数。如果 y 为 0,结果不可预料frexp(x, out exp) 将浮点数 x 分解为尾数和指数,即x = m* 2^exp,返回m,并将指数存入exp 中;如果 x 为 0,则尾数和指数都返回0frac(x) Returns the fractional portion of a scalar or each vector componentisfinite(x) 判断标量或者向量中的每个数据是否是有限数,如果是返回true;否则返回false;无限的或者非数据(not-a-number NaN)isinf(x) 判断标量或者向量中的每个数据是否是无限,如果是返回true;否则返回 false;isnan(x) 判断标量或者向量中的每个数据是否是非数据(not-a-number NaN),如果是返回true;否则返回false;ldexp(x, n) 计算x∗2n的&#;lerp(a, b, f) 计算(1−f)∗ &#; ∗a b f或者a&#;f∗ −(b a)的&#;。即在下限a和上限 b 之间进行插&#;,f表示权&#;。注意,如果a和 b 是向 量,则权&#; f必须是标量或者等长的向量。lit(NdotL,NdotH, m) N表示法向量;L表示入射光向量;H表示半角向量;m表示高光系数。 函数计算环境光、散射光、镜面光的贡献,返回的 4元向量: 1.位表示环境光的贡献,总是 1.0; 2.位代表镜面光的贡献,如果 N •L<0,则为0;否则为N •L; 3.位代表镜面光的贡献,如果N •L<0或者 N •H <0 ,则位 0;否则为(N •H)m; W位始终位1.0 log(x) 计算ln(x)的&#;,x必须大于0 log2(x) 计算log(2x)的&#;,x必须大于 0log(x) 计算log(x)的&#;,x必须大于0max(a, b) 比较两个标量或等长向量元素,返回 大&#;min(a,b) 比较两个标量或等长向量元素,返回 小&#; modf(x, out ip) mul(M, N) 计算两个矩阵相乘,如果 M 为 AxB 阶矩阵,N为BxC阶矩阵,则返回AxC 阶矩阵。下面两个函数为其重载函数。 mul(M, v) 计算矩阵和向量相乘 mul(v, M) 计算向量和矩阵相乘 noise( x) 噪声函数,返回&#;始终在 0,1之间;对于同样的输入,始终返回相同的&#;(也就是说,并不是真正意义上的随机噪声)。 pow(x, y) radians(x) 函数将角度&#;转换为弧度&#; round(x) Round-to-nearest,或closest integer to x即四舍五入 rsqrt(x) X 的反平方根,x必须大于0 saturate(x) 如果 x 小于0,返回0;如果 x大于 1,返回1;否则,返回x sign(x) 如果 x 大于0,返回1;如果 x小于 0,返回;否则返回0。 sin(x) 输入参数为弧度,计算正弦&#;,返回&#;范围为[−1,1] sincos(float x, out s, out c) 该函数是同时计算 x的sin&#;和cos&#;,其中s=sin(x),c=cos(x)。该函数用于“同时需要计算sin&#;和cos&#;的情况”,比分别运算要快很多! sinh(x) 计算双曲正弦(hyperbolic sine)&#;。 smoothstep(min, max, x) &#; x 位于min、max区间中。如果x=min,返回0;如果x=max,返回 1;如果 x在两者之间,按照下列公式返回数据: x−min x−min−2*()3&#;3*( )2 max−min max−min step(a, x) 如果 x<a,返回0;否则,返回1。 sqrt(x) 求 x的平方根,x ,x必须大于0。 tan(x) 输入参数为弧度,计算正切&#; tanh(x) 计算双曲正切&#; transpose(M) M 为矩阵,计算其转置矩阵几何函数(Geometric Functions)Cg语言标准函数库中有3 个几何函数会经常被使用到,分别是:normalize函数,对向量进行归一化;reflect函数,计算反射光方向向量;refract函数,计算折射光方向向量。注意: 1 着色程序中的向量 好进行归一化之后再使用,否则会出现难以预料的错误; 2 reflect函数和refract函数都存在以“入射光方向向量”作为输入参数,注意这两个函数中使用的入射光方向向量,是从外指向几何顶点的;平时我们在着色程序中或者在课本上都是将入射光方向向量作为从顶点出发。 函数 功能 distance( pt1, pt2) 两点之间的欧几里德距离(Euclidean distance) faceforward(N,I,Ng) 如果Ng I• <0,返回N;否则返回-N。 length(v) 返回一个向量的模,即 sqrt(dot(v,v)) normalize( v) 归一化向量 reflect(I, N) 根据入射光方向向量 I,和顶点法向量N,计算反射光方向向量。其中I和N必须被归一化,需要非常注意的是,这个I是指向顶点的;函数只对三元向量有效 refract(I,N,eta) 计算折射向量,I为入射光线,N为法向量,eta为折射系数;其中I 和N必须被归一化,如果I和N之间的夹角太大,则返回(0,0,0),也就是没有折射光线;I是指向顶点的;函数只对三元向量有效 纹理映射函数(Texture Map Functions) 函数 tex1D(sampler1D tex, float s) 一维纹理查询 tex1D(sampler1D tex, float s, float dsdx, float dsdy) 使用导数&#;(derivatives)查询一维纹理 Tex1D(sampler1D tex, float2 sz) 一维纹理查询,并进行深度&#;比较 Tex1D(sampler1D tex, float2 sz, float dsdx,float dsdy) 使用导数&#;(derivatives)查询一维纹理,并进行深度&#;比较 Tex1Dproj(sampler1D tex, float2 sq) 一维投影纹理查询 Tex1Dproj(sampler1D tex, float3 szq) 一维投影纹理查询,并比较深度&#; Tex2D(sampler2D tex, float2 s) 二维纹理查询 Tex2D(sampler2D tex, float2 s, float2 dsdx, float2 dsdy) 使用导数&#;(derivatives)查询二维纹理 Tex2D(sampler2D tex, float3 sz) 二维纹理查询,并进行深度&#;比较 Tex2D(sampler2D tex, float3 sz, float2 dsdx,float2 dsdy) 使用导数&#;(derivatives)查询二维纹理,并进行深度&#;比较 Tex2Dproj(sampler2D tex, float3 sq) 二维投影纹理查询 Tex2Dproj(sampler2D tex, float4 szq) 二维投影纹理查询,并进行深度&#;比较 texRECT(samplerRECT tex, float2 s) texRECT (samplerRECT tex, float2 s, float2 dsdx, float2 dsdy) texRECT (samplerRECT tex, float3 sz) texRECT (samplerRECT tex, float3 sz, float2 dsdx,float2 dsdy) texRECT proj(samplerRECT tex, float3 sq) texRECT proj(samplerRECT tex, float3 szq) Tex3D(sampler3D tex, float s) 三维纹理查询 Tex3D(sampler3D tex, float3 s, float3 dsdx, float3 dsdy) 结合导数&#;(derivatives)查询三维纹理 Tex3Dproj(sampler3D tex, float4 szq) 查询三维投影纹理,并进行深度&#;比较 texCUBE(samplerCUBE tex, float3 s) 查询立方体纹理 texCUBE (samplerCUBE tex, float3 s, float3 dsdx, float3 dsdy) 结合导数&#;(derivatives)查询立方体纹理 texCUBEproj (samplerCUBE tex, float4 sq) 查询投影立方体纹理 s象征一元、二元、三元纹理坐标;z代表使用“深度比较(depth comparison)”的&#;;q表示一个透视&#;(perspective value,其实就是透视投影后所得到的齐次坐标的 后一位),这个&#;被用来除以纹理坐标(S),得到新的纹理坐标(已归一化到0和1之间)然后用于纹理查询。 纹理函数非常多,总的来说,按照纹理维数进行分类,即:1D纹理函数,2D 纹理函数,3D纹理函数,已经立方体纹理。需要注意,TexREC函数查询的纹理实际上也是二维纹理。3D纹理,另一个比较学术化的名称是“体纹理(Volume Texture)”,体纹理通常用于体绘制,体纹理用于记录空间中的体细节数据。 还有一类较为特殊的纹理查询函数以 proj 结尾,主要是针对投影纹理进行查询。所谓投影纹理是指:将纹理当做一张幻灯片投影到场景中,使用投影纹理技术需要计算投影纹理坐标,然后使用投影纹理坐标进行查询。使用投影纹理坐标进行查询的函数就是投影纹理查询函数。 本质来说,投影纹理查询函数和普通的纹理查询函数没有什么不同,唯一的区别在于“投影纹理查询函数使用计算得到的投影纹理坐标,并在使用之前会将该投影纹理坐标除以透视&#;”。举例而言,计算得到的投影纹理坐标为float4 uvproj,使用二维投影纹理查询函数: tex2Dproj(texture,uvproj);等价于按如下方法使用普通二维纹理查询函数: float4 uvproj = uvproj/uvproj.q; tex2D(texture,uvproj);偏导函数(Derivative Functions) 函数 功能 ddx(a) 参数 a对应一个像素位置,返回该像素&#;在X轴上的偏导数 ddy(a) 参数 a对应一个像素位置,返回该像素&#;在X轴上的偏导数函数 ddx和ddy 用于求取相邻像素间某属性的差&#;;函数 ddx和ddy 的输入参数通常是纹理坐标;函数 ddx和ddy 返回相邻像素键的属性差&#;;

推荐整理分享Unity Shader 常用函数列表(unity shader saturate),希望有所帮助,仅作参考,欢迎阅读内容。

Unity Shader 常用函数列表(unity shader saturate)

文章相关热门搜索词:unity中的shader,unity shader lod,unity shader入门精要,unity shader lod,unity shader常用函数,unity shader lod,unity shader常用函数,unity shader lerp,内容如对您有帮助,希望把文章链接给更多的朋友!

System.Diagnostics.Process.Start操作文件和文件夹(Unity3D) 最近在学习U3D,会写一些脚本工具,操作文件。比如在unity中打开文本:varlogPath=Application.persistentDataPath/log;varfileName=newDirectoryInfo(logPath).GetFiles().OrderBy(t=

[置顶] unity3d Human skin real time rendering 真实模拟人皮实时渲染 先放出结果图片。。。由于网上下的模型是拼的,所以皮,脸颊,嘴唇看起来像存在裂痕,解决方式是加入曲面细分和置换贴图进行一定隆起,但是博

Unity3D游戏之游戏日志打印 游戏运行之时打印日志,方便我们查bug,下面我说说自己项目的日志系统怎么弄。日志等级分别为LogLevel.DEBUG,LogLevel.INFO,LogLevel.WARNING,LogLevel.ERROR,LogLevel.C

标签: unity shader saturate

本文链接地址:https://www.jiuchutong.com/biancheng/384518.html 转载请保留说明!

上一篇:Unity3D 里IK手柄的用运(unity手柄圆盘)

下一篇:[置顶] unity3d Human skin real time rendering 真实模拟人皮实时渲染([置顶]津鱼.我爱你)

  • 小规模纳税人收入超过500万怎么办
  • 企业所得税税负高是什么意思
  • 固定资产一次性扣除账务处理
  • 金蝶固定资产累计折旧怎么改
  • 冲红发票怎么写备注
  • 固定资产明细账需要每年更换吗
  • 劳务公司劳务工资做什么科目
  • 设备租赁费用
  • 个人购买商铺如何缴税
  • 应付账款坏账处理分录怎么写
  • 出口样品未报关怎么处理
  • 不能抵扣的进项税怎么做账
  • 进销项税额的会计分录
  • 个体工商户开票金额超过核定了咋办
  • 失控发票如何认定
  • 小规模纳税人附加税优惠政策2023
  • 增值税专用发票验票
  • 社保滞纳金税前怎么算
  • 专票的六位开票代码指的是什么
  • 礼品发票怎么入账
  • 验资报告需要什么材料
  • 无法运行loot
  • win10教育版用户账户控制怎么取消
  • 公司罚款怎么写
  • 旅游公司广告费支出扣除标准
  • 建筑公司分包
  • 以前年度损益调整结转到哪里
  • 采用销售百分比法预测对外
  • 其他应付款不用付了怎么处理
  • 销货退回未按规则处理
  • pniopcac.exe是什么
  • 硬盘跳线设置
  • 豁免债权如何做账
  • 幼儿园会计需要什么条件
  • thinkphp框架结构
  • iframe之间通信
  • get_module_base
  • 生育津贴的钱怎么取出来
  • 认证后失控发票管理办法
  • python类的继承与多态
  • mongodb cond
  • 第一季度利润表年初余额
  • 贷款呆账准备金
  • 购买铝材会计分录
  • 现金流量表怎么填写
  • 个税申报错了并撤销
  • 税收种类包括哪几种
  • sql按照日期范围查询
  • sql server使用sql server身份登录
  • 应交税费的核算范围
  • 汇算清缴利润调增70万会预警吗
  • 利润分配的账务处理视频
  • 28栏分次预缴税额是手动填写吗?
  • 一般纳税人销售旧货
  • 企业内部罚没收入违法吗
  • 银行日记账上月的余额要结转吗
  • 土地拍卖相关法律法规
  • 业务招待费纳税筹划
  • 发票丢失了可以用复印件加盖发票章入账吗
  • 现代服务业如何提高服务的效率和质量
  • 企业固定资产内部控制风险防范体系的构建原则
  • 限售股包括哪些
  • 旅游饮食服务企业的特点包括
  • sqlserver数据库恢复挂起状态
  • ubuntu docker教程
  • 联想e430安装win10
  • WIN10开启高性能模式
  • linux mkdir函数创建多级目录
  • win 7怎么设置开机启动
  • cocos资源释放
  • unity脚本模板
  • javascript学习指南
  • python3安装pygame
  • es6十大特性
  • 电脑完美平台
  • 国家税务局总局黑龙江分局
  • 服务业增值税率6% 购进13%手机怎么抵扣
  • 法国进囗红酒
  • 重庆新电子税务局入口
  • 通用机打发票明细怎么导出电子版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设