【速查手册:ShaderLab】函数

 

【速查手册:ShaderLab】函数_第1张图片

http://www.cppblog.com/lai3d/archive/2008/10/23/64889.html

http://www.cnblogs.com/leave-one-blood/p/CGShader.html

http://www.cnblogs.com/Yellow0-0River/p/4262467.html

函数

https://docs.microsoft.com/zh-cn/windows/desktop/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions

函数 简介 附加

abs()

取绝对值

 

clamp(x,low,high )

若X在[low,high]范围内,则等于X;如果X小于low,则返回low;如果X大于high,则返回high。

 

lerp(a, b, a.a)

 

【插值】return a + w*(b-a)

 

saturate(x)

【防止溢出 】如果x取值小于0,则返回值为0。如果x取值大于1,则返回值为1。若x在0到1之间,则直接返回x的值.

 

GetOverlayColor( reflectColor, combinedColor )

计算原光照结果和反射颜色混合后的结果

 

reflect(i,n)

【反射方向】i:入射方向,n: 法线方向

公式:反射方向=光源方向 - 2 dot(表面法线 , 光源方向)表面法线

 

lit(n•l,n•h,m)

【光照系数】

返回一个四元向量(环境光系数,漫反射系数,高光反射系数,1.0)

 

GetOverlayColor()

【混合颜色】

 

TRANSFORM_TEX(v.texcoord,_RampTex)

拿顶点的uv去和材质的tiling offset做运算,确保材质球里的缩放和偏移设置是正确的

 

coss( , )

返回两个三维向量的交叉积

 

floor(x)

【向下取整】返回不大于X的最大整数

 

ceil(x)

【向上取整】返回不小于x的最小整数

 

fabs(x)

【绝对值】返回x的绝对值

 

log(x)

【自然对数】返回x的自然对数(低为e)

 

log 10(x)

【对数】返回x的对数(低为10)

 

lenght(v)

【长度】返回向量v的长度

 

pow(x,y)

【次幂】返回x的y次方

 

sqrt(number)

【平方根】返回正平方根。如果参数 Number 为负值,返回错误值 #Num!。

 

atan2 (x_num,y_num)

【反正切值】计算给定横坐标和纵坐标点的反正切值。函数返回的结果是-π~π之间的弧度值。函数返回的结果是用弧度表示的值,可以用DEGREES函数将弧度转换为角度。如果结果为正,表示此直线沿x轴逆时针旋转;如果结果为负,表示此直线沿x轴顺时针旋转。float angle = atan2( y2-y1, x2-x1 );

 

ATAN(number)

【反正切值】 返回参数的反正切值。返回的数值以弧度表示,大小在-π/2~π/2之间。float angle = atan( (y2-y1)/(x2-x1) )

 

frac()

返回小数部分

 
half3 ShadeSH9(half4 normal) 解光传输的积分方程,计算Unity在CPU中通过线性插值后传递到GPU的一个Probe上的数据 UnityCG。cginc

https://docs.unity3d.com/Manual/SL-BuiltinMacros.html

FALLOFF_POWER

衰减功率

   
   
   

矩阵

   
   
   
   

 

 

 

 

 

 

Shader target model

SHADER_TARGET is defined to a numeric value that matches the Shader target compilation model (that is, matching #pragma target directive). For example, SHADER_TARGET is 30 when compiling into Shader model 3.0. You can use it in Shader code to do conditional checks. For example:

#if SHADER_TARGET < 30 // less than Shader model 3.0: // very limited Shader capabilities, do some approximation #else // decent capabilities, do a better thing #endif

 

UnityStandardUtils包含的函数

   

UnpackScaleNormal(tex2D(_NormalMap, i.uv), _BumpScale);

自动对法线贴图使用正确的的解码,并缩放法线。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(功能使用手册,shader,lab,轩的笔记,速查手册)